Vine Linux 3.1でkernelの再構成(コンパイル)

現在使用しているLinuxマシンは、Fujitsu LOOX S73AWというノートPCです。
CPUに今は亡き(?)Crusoeを使用しており、AirH”を搭載しています。

通常、VineをインストールしただけではCrusoe特有の省電力機能Longrunが使えず、使用するためにはkernelの再構成が必要とのこと。

あわせて、AirH”なんぞ使用してないので、背面にあるminiPCIモジュールをAirH”のものから無線LANモジュール(Intel 2200BG)に変更しました(アンテナはAirH”のをそのままつけています。アンテナの使用上感度は悪いそうですが、代えのアンテナはないので)。

これもまた、動作させるにはkernelの再構成が必要です。

情報があるんだかないんだかよくわからない状況でしたが、なんとかメドが立ったのでここに記録します。

基本的には、便利なaptを使います。

# apt-get install kernel-source kernel-headers kernel-doc

linuxのソースがあるディレクトリに移動します。

# cd /usr/src

次にkernelのconfigを行いますが、configの方法には4種類あり、

  • config:従来の方法。一つ一つ確認しながら設定していく。面倒。
  • menuconfig:コンソール上でメニュー形式のような形態で設定していく方法。リモート上からできて楽。
  • xconfig:GUI上で設定する方法。見やすく設定しやすいがXwindowが起動している必要があり、リモートでは行えない(VNCで無理やりっていう方法はあるでしょうけども)。
  • .config編集:上記のツールに頼らず直接編集する方法。神向け。

というわけで、ここではmenuconfigを使って設定しますが、このままの状態だと設定するためのツール一式がないのでmenuconfigが起動できません。

以下のコマンドを入力してツールをインストールします。

# apt-get script install-devel.lua

さっそくmenuconfigしてもよいのですが、今までの設定を引き継いだほうが問題がおきにくいので以下のコマンドで対応します。

# cp linux-2.4.27/configs/kernel-2.4.27-i586.config linux-2.4.31/.config
※linux-2.4.27は現在のソース。
※Crusoeはi586らしいのでそのconfigを持ってきます。i686のでもOKらしい。
# cd linux-2.4.31
# make oldconfig
※新しい項目は確認メッセージが出ますが、ほとんどSATA関係なのでEnterを押して飛ばします。

展開したソースに移動してmenuconfigします。変更部位は以下のとおり。

# make mrproper ※make前のお約束
# make menuconfig
Processor type and features —>
(Crusoe) Processor family ※586/K5うんたらを変更
<*> /dev/cpu/*/msr – Model-specific register support ※Longrun関係
<*> /dev/cpu/*/cpuid – CPU information support ※Longrun関係
Cryptographic options —>
[*] Cryptographic API ※これにチェックを入れると以降の選択肢が出る
<*> ARC4 cipher algorithm (NEW) ※2200BG関係
Library routines —>
<*> CRC32 functions ※2200BG関係
<*> Hotplug firmware loading support (EXPERIMENTAL) ※2200BG関係

ほかに変更はありません。ESCを2回押してYesを押して保存します。
ちなみに、manuconfigにあるチェックの種類は、*(kernelに組み込む)、M(モジュール、必要時に呼び出す)となっています。

いよいよ再構成(コンパイル)の開始です。以下のコマンドを入力していきます。結構時間がかかります。

# make dep
# make clean
# make bzImage
# make modules
# make madules_install
# make install

次に、2.4.31で動くようにlilo.confを編集します。基本的には前のコードをコピーして一部編集するだけです。

# vi /etc/lilo.conf
※新しいkernelの記述
image=/boot/vmlinuz-2.4.31
label=linux
read-only
root=/dev/hda2
append=”ide0=ata66 ide1=ata66 apm=power-off acpi=off resume2=swap:/dev/hda3″
※前回設定したkernel
image=/boot/vmlinuz-2.4.27-0vl7.6
label=linux-old
read-only
root=/dev/hda2
append=”ide0=ata66 ide1=ata66 apm=power-off acpi=off resume2=swap:/dev/hda3″
※Vineのインストール直後にあるカーネル
image=/boot/vmlinuz-2.4.27-0vl7
label=linux-old2
initrd=/boot/initrd-2.4.27-0vl7.img
read-only
root=/dev/hda2
append=”ide0=ata66 ide1=ata66 apm=power-off acpi=off resume2=swap:/dev/hda3″
# /sbin/lilo ※保存後に実行

これで新しいkernelの実行準備はできました。再起動してバージョンが変わっているか確認してください。

i586で再構成したのですが、結局i686で動いているようです。動作には支障なさそうなのでいいですが。
longrunと無線LANのインストールは次回。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中