Linux From Scratch + pkgsrc 移行メモ3
ハードウェアの自動認識
LFS ではサポートされていないハードウェアの自動認識を行いたかったので、
仙石浩明の日記: 10行でできる高精度ハードウェア自動認識 (initramfs の init を busybox だけで書く)
を参考に、initramfs を作成しました。
initramfs は、init 起動前にメモリ上に展開・実行する仕組みです。
linux で initramfs を有効化すると、展開された initramfs のファイルシステム上の /init が実行可能の場合、実行されます。*1
その /init でハードディスクを認識させ、必要なカーネルモジュールをロードし、ハードディスク上の /init につなげます。
initramfs の実体は、cpio で固められたファイルで、僕の場合、/boot/initramfs.cpio.gz に置きました。
initramfs のファイルに必要なものは、
- ルートファイルシステムと同じディレクトリ構造
- initramfsのルート/init のスクリプト
- 起動するシステムのカーネルモジュール /lib/modules/linux-2.6.*.*
- procfs
- busybox*2
procfs は、認識するハードディスク情報をここから取得するために必要です。
busybox は /init スクリプトのコマンドとして必要です。