読者です 読者をやめる 読者になる 読者になる

Linuxカーネル再構築

10年程前に買ったノートPCがあるのですが
WindowsXPsp3を入れていると
動作がすごく重いので
数年前からOSをLinuxにして使用しています。

スペックは以下です。

CPU:AMD Athlon4 1.1GHz
メモリ:128MB + 256MB
チップセット:VIA社製 ProSavage KN133

といったところです。

ディストリビューションは、Ubuntuを使用していたのですが
Ubuntu11.04からインストールしても起動直後にフリーズする状態で
他の軽いディストリビューションでも同じ状態にたっていました。

しかし、半年程前に試しにVineLinux6をインストールしてみたら
問題なく動作するではないですか。
それからは、VineLinux6を使っています。

UbuntuとVineの違いは、
Ubuntuでは、kernel3系が使われているのに対し
Vineでは、kernel2.6系だったのです。

そこで、昨日1日かけでkernel3.3.2を再構築してみました。
その手順を以下に書いておきます。

                                    • -

1. The Linux Kernel Archives(http://www.kernel.org/)からlinux-3.3.2.tar.bz2をダウンロードします。
2. /usr/srcへダウンロードしたtarボールを移動します。

#mv ~/linux-3.3.2.tar.bz2 /usr/src

3. tarボールを展開します。

#tar xvfj linux-3.3.2.tar.bz2

4. シンボリックリンクを付けます。

#ln -s linux-3.3.2 linux

5. ディレクトリを移動します。

#cd /usr/src/linux

7. 設定ファイルをコピーします。

#cp /boot/config-2.6.35-21v16 ./.config

8. 古い設定を新しい設定へ変更します。

#make oldconfig

9. core kernelをコンパイルします。

#make -j2 bzImage

10. kernel modulesをコンパイルします。

#make -j2 modules

11. kernel modulesのインストールします。

#make modules_install

12. core kernelのインストールします。

#make install

これで、kernelのインストールは完了です。

#ls /boot/
System.map-3.3.2 initrd-3.3.2.img vmlinuz-3.3.2

後は、grubの設定を書き換えて再起動します。
私は、/boot/grub/menu.lstに以下を追加しました。

title Vine Linux (kernel 3.3.2)
root(hd0,0)
kernel /boot/vmlinuz-3.3.2 ro root=LABEL=/ resume=swap:/dev/hda2 vga=0x314 splash=silent quiet
initrd /boot/initrd-3.3.2.img

                                    • -

kernel3.3.2で再起動したら、予想に反し正常に動作しました。
それどころか、kernel2.6.35では、ACPIでエラーが発生していたのですが
そのエラーも発生しなくなっていました。

そうなると、Ubuntu11.10がフリーズする理由が分からなくなってしまいました。

Ubuntu12.04 LTSは、kernel3.2.0が搭載されるようなので
リリースされたら一度インストールしてみよう。