Pylone Blog - 2008年03月
busybox-staticによるinitramfs
Mon, 10 Mar 2008 10:41 GMT, Posted by Seiichi SATO
カスタムボードへのLinuxカーネル移植の初期段階で とりあえずのrootfsが必要になる場合は多いと思います。 とりあえずのものにそれほど手間はかけたくないですが、 カーネルのデバッグや動作確認のために機能はそれなりに欲しいところです。
方法は色々あると思いますが、パイロンではDebianの busybox-staticパッケージと initramfsを使うことが多いです。 手順は以下の通りです。
(例としてrootfsのディレクトリを/PATH/TO/ROOTFS/とします)
- busybox-staticパッケージをdpkg -xでばらしてbin/busyboxを/PATH/TO/ROOTFS/bin/busyboxにコピー
- /PATH/TO/ROOTFS/bin/busyboxへのシンボリックリンクPATH/TO/ROOTFS/initを追加
- mkdir /PATH/TO/ROOTFS/{dev,etc,proc}
- mknod /PATH/TO/ROOTFS/dev/console c 5 1
busyboxのinitは/etc/init.d/rcSを読み込むので起動直後の処理はrcSに加えます。最低でも/procのマウントさえしておけばよいでしょう。
/PATH/TO/ROOTFS/etc/init.d/rcS:
#!/bin/sh mount -t proc proc proc
カーネルにinitramfsとして組み込むにはCONFIG_BLK_DEV_INITRDとCONFIG_INITRAMFS_SOURCEを指定します。
CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE=/PATH/TO/ROOTFS/