qemuで組込みLinuxを起動
BusyBoxのコンパイル - keropoの備忘録で作成したコマンドを使って、実際にルートファイルシステムを作成し、qemu上で実際にコマンドが打てる状態にするための手順。
カーネルはlinuxカーネルのコンパイル - keropoの備忘録で作成したものを使用。
ルートフォルダの作成
とりあえず、適当な場所にqemuで起動するLinuxのルートフォルダを作成する。
一応、自分の環境では以下に設定
$export ROOTFS=~/rootfs mkdir -p $ROOTFS
ツールチェーンからライブラリ群をコピー
カーネルやBusyBoxをクロスコンパイルしたツールチェーンからライブラリ群をコピーする。
$cp -Rp ${CROSS}/arm-unknown-linux-guneabi/sysroot/lib ${ROOTFS} $cp -Rp ${CROSS}/arm-unknown-linux-guneabi/sysroot/usr/lib ${ROOTFS}/usr
その他、必要なフォルダ作成
$mkdir -p ${ROOTFS}/dev/input $mkdir -p ${ROOTFS}/etc/init.d $mkdir proc $mkdir sys
デバイスファイルの作成
とりあえず、最低限必要そうなデバイスファイルを作成しておく。
スーパーユーザでないとmknodeコマンドは叩けないので注意
#mknod dev/null c 1 3 #mknod dev/zero c 1 5 #mknod dev/fb0 c 29 0 #mknod dev/sda b 8 0 #mknod dev/sda1 b 8 1 #mknod dev/sda2 b 8 2 #mknod dev/sda3 b 8 3 #mknod dev/sda4 b 8 4 #mknod dev/sr0 b 11 0 #mknod dev/tty c 5 0 #mknod dev/tty0 c 4 0 #mknod dev/tty1 c 4 1 #mknod dev/tty2 c 4 2 #mknod dev/tty3 c 4 3 #mknod dev/tty4 c 4 4 #mknod dev/ttyAMA0 c 204 64 #mknod dev/ttyAMA1 c 204 65 #mknod dev/ttyS0 c 4 64 #mknod dev/ttyS1 c 4 65 #mknod dev/input/mouse0 c 13 32 #mknod dev/input/mouse1 c 13 33 #mknod dev/input/mouse2 c 13 34 #mknod dev/input/mouse3 c 13 35 #mknod dev/input/misc c 13 63 #mknod dev/input/event0 c 13 64 #mknod dev/input/event1 c 13 65 #mknod dev/input/event2 c 13 66 #mknod dev/input/event3 c 13 67 #mknod dev/input/event4 c 13 68
inittabの作成
initプロセスで参照されるinittabをとりあえず、下記のように作成