2010年8月28日土曜日

Debianカーネルパッケージの再構築

debianのカーネルを再構築をしたいのだが、これまで make-kpkg を使った再構築方法しか知らずちょっと調べたのでメモ

make-kpkg を使ったカーネルパッケージの作成方法はここに書いてある。

http://www.debian.org/releases/stable/i386/ch08s06.html.ja

なにをやりたいかというと、今あるカーネルパッケージと同じパッケージを再構築すること。
もしくは、もとから少しだけ変えたい。

make-kpkg を使った方法だと、自分でカーネルのコンフィグレーションをやるようになる。

それの方法は、"Debian Linux Kernel Handbook" にちゃんと書いてあった。
http://kernel-handbook.alioth.debian.org/ch-common-tasks.html#s-common-official


準備


カーネルパッケージをインストール

$ apt-get source linux-2.6

再構築に必要なパッケージをインストール

# apt-get install build-essential fakeroot
# apt-get build-dep linux-2.6

パッチの適用

展開したディレクトリに移動してパッチを当てる。

ソースを展開
$ dpkg-source -x linux-2.6.......dsc

$ fakeroot debian/rules source
$ fakeroot debian/rules setup

お目当てのパッケージを作る

$ fakeroot debian/rules source
$ fakeroot make -f debian/rules.gen binary-arch_i386_none_686

rules.gen の後ろの引数は rules.gen の中身を見て決める。
お目当ては、 binary-arch_i386_vserver_686-bigmem

変更したいときは、url の続きをやるのだが、今日はここまで

2010年8月10日火曜日

squeeze でフォルダ名を日本語にする

$ sudo apt-get install xdg-user-dirs-gtk
$ LANG=C xdg-user-dirs-gtk-update
(vi .config/user-dirs.dirs が編集される)
ログインしなおす。

フォルダをリネームしてくれるわけではないみたい。
日本語フォルダ内にファイルがあるとそのままになっているのであとで自分で移動する。

再ログイン後、ファルダ名を日本語にするか聞かれるが、古いままにする。

squeeze amd64 環境内で i386 の環境を schrootで作成

開発環境を squeeze に入れ替えた。
build は i386 なので、schroot の環境を作成


$ sudo aptitude install cdebootstrap schroot



$ sudo cdebootstrap --arch=i386 --flavour=build squeeze squeeze-i386 \ http://ftp.jp.debian.org/debian



$ sudo groupadd pnuts

自分をpnuts グループに追加


[sarge-i386]
# Optional. The chroot with alias 'default' is used if you just type
# 'schroot' without the -c option.
aliases=testing,default
# Whatever you like
description=Debian sarge
# Relative to what was /mnt until a moment ago
location=/sarge-i386
# Below here is standard for all the chroots
# Adjust according to the space available and size of builds you'll do
lvm-snapshot-options=--size 2G
device=/dev/デバイス
type=lvm-snapshot
priority=3
groups=pnuts,root
root-groups=pnuts,root
source-groups=pnuts,root
source-root-groups=root


$ sudo schroot -c squeeze-i386-source
(squeeze-i386-source)root@debian:~# apt-get upgrade
(squeeze-i386-source)root@debian:~# apt-get install devscripts vim-tiny sudo \ fakeroot aptitude build-essential
(squeeze-i386-source)root@debian:~# apt-get clean


ここから、pnut 用の環境作成

デフォルトの設定をコピー

$ cd /etc/schroot
$ sudo cp -a defaults pnut

schroot.conf を編集して、

script-config=pnut/config

を追加。
pnut/config を編集

FSTAB="/etc/schroot/pnut/fstab"
COPYFILES="/etc/schroot/pnut/copyfiles"


pnut/fstab に次の行を追加

/mnt/src /mnt/src none rw,rbind 0 0

(適当にbind でマウントする.)

pnut/copyfiles も適当に追加