2012年2月12日 星期日

吃盡苦頭編譯busybox(2)

了解了一些開機流程之後,大概知道要補足那些東西了,進入_install目錄,開始建立缺乏的目錄跟檔案
mkdir etc dev tmp proc sys
跟著在etc底下在建立init.d,新增檔案etc/init.d/rcS,內容是
#!/bin/sh
mount -t proc none /proc
mount -t sysfs none /sys
/sbin/mdev -s
/bin/sh
把rcS加上可執行權限
chmod +x rcS
接著把busybox連結到_install\init,你可以看到_install底下有linuxrc,這是2.4的名稱,在2.6之後使用init
ln -s bin/busybox init
接下來進入/dev底下建立裝置,必須用root權限
mknod console c 5 1
mknod null c 1 3
還有補上etc/inittab,內容是
::sysinit:/etc/init.d/rcS
這樣就都完成了,重新打包image吧
find . | cpio -o --format=newc > ../rootfs.img
回到busybox目錄,使用qemu測試
qemu-system-arm -kernel zImage -initrd rootfs.img

後話:這裡我都沒有把image做壓縮的動作,因為測試方便,如果要放上去,壓縮一下可以節省空間,另外裡面還有個小小的錯誤,我想以後再說吧:P

沒有留言:

張貼留言