カーネル リビルド への旅 (3)

DELL inspiron mini 9 (Ubuntu) メモリ2GB対応 カーネルリビルドできたので、まとめておく。


1. SSD が 4GB とかの場合は、あらかじめ gimp とか open office とかのパッケージを synaptic で削除して空きを確保しておく。


2. 必要なパッケージを用意(かなり適当)

$ sudo apt-get install kernel-package ncurses ncurses-base libncurses5-dev


3. カーネルソースを用意して展開
面倒なので root になっておく。

$ sudo su -
# apt-get install linux-source-2.6.24
# cd /usr/src
# tar jxvf linux-source-2.6.24.tar.bz2
# ln -s linux-2.6.24 ./linux


4. カーネル設定
いろいろいじると、後で収集がつかなくなるので、とりあえずメモリ2GB 対応だけを設定

# cd linux
# cp /boot/config-2.6.24-19lpia .config
# make oldconfig
# make menuconfig
  General setup  ---> 
    Local version - append to kernel release
      -mini9_2GB
  Processor type and features  --->
    High Memory Support --->
      4GB
  Save an Alternate Configuration File 
    .config

Local version の文字列は適当。
ただしvmlinuz とかの サフィックスとの一致させる必要があるので注意。
e.g. -mini9_2GB --> vmlinuz-2.6.24.3-mini9_2GB


5. カーネルを make

# make clean
# make

2時間くらいで make は終わった。


6. モジュールを入れる

# make modules_install

これは1分ほど。


7. ブートイメージを手動でコピる

# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.24.3-mini9_2GB
# cp System.map /boot/System.map-2.6.24.3-mini9_2GB
# cp .config /boot/config-2.6.24.3-mini9_2GB


8. 新しく作ったモジュールをコピって、mini 9 用の既存モジュールを追加する

# cd /lib/modules/
# cp -r 2.6.24-19-lpia/volatile 2.6.24.3-mini9_2GB/
# cp -r 2.6.24-19-lpia/ubuntu 2.6.24.3-mini9_2GB/
# update-initramfs -c -k 2.6.24.3-mini9_2GB

/bootにinitrd.img-2.6.24.3-mini9_2GB ができていればOK


9. grubのブート設定を追加

# cd /boot/grub
# vi menu.lst

とかして、下記をファイルの末尾に追加(title は適当)

### CUSTOME BUILD KERNEL
title           Ubuntu 8.04.1, kernel 2.6.24.3 for mini9 /w 2GB memory
root            (hd0,1)
kernel          /boot/vmlinuz-2.6.24.3-mini9_2GB ro root=/dev/sda2 ht=on hpet=disabled quiet splash
initrd          /boot/initrd.img-2.6.24.3-mini9_2GB

上の方にある timeout を 10 とかにしておく


10. リブートしてみる

# reboot

grub のカウントダウンが始まったら、 ESC を押して リビルドしたカーネルイメージを選択

11. 確認してみる
リビルドしたカーネルで無事に起動できたら下記のようにして確認

$ free -m
$ uname -r

メモリの total が 2017 とかで、カーネルサフィックス番号が合ってたら 成功。


12. 無線LAN のドライバを追加
このままでは、たぶん無線LANが死んでるので

$ sudo su
# depmod -a wl
# modprobe wl

として無線LANドライバを有効にする。


以上。
ちょっと使ってみて問題ないようなら、grub の menu.lst の default をリビルドしたカーネルイメージの番号(記述順に上から 0, 1, 2, ...)に変更し、timeout もゼロに戻しておく。


追記: でも音が鳴らないんだなあ。これは別の理由かも。ま、いいか。