Linux下用Busy Box制作Ramdisk全過(guò)程
#mkdir rootfs
#cd rootfs
#mkdir bin dev etc lib proc sbin tmp usr var
#chmod 1777 tmp
#mkdir usr/bin usr/lib usr/sbin
#mkdir var/lib var/lock var/log var/run var/tmp
#chmod 1777 var/tmp
2 準(zhǔn)備鏈接庫(kù)
#cd ${OBJ_LIB}/lib (${OBJ_LIB}是交叉編譯環(huán)境的目錄)
#for file in libc libcrypt libdl libm
>libpthread libresolv libutil
>do
>cp $file-*.so /home/fortis/rootfs/lib
>cp -d $file.so.[*0-9] /home/fortis/rootfs/lib
>done
#cp -d ld*.so* /home/fortis/rootfs/lib
3 使用busybox制作系統(tǒng)應(yīng)用程序
3.1 下載busybox(http://www.busybox.net/)并解壓。
3.2 進(jìn)入解壓后的目錄,配置Busybox
$make menuconfig
Busybox Settings >
General Configuration >
[*] Support for devfs
Build Options >
[*] Build BusyBox as a static binary (no shared libs)
/* 將busybox編譯為靜態(tài)連接,少了啟動(dòng)時(shí)找動(dòng)態(tài)庫(kù)的麻煩 */
[*] Do you want to build BusyBox with a Cross Compiler?
(/usr/local/arm/3.3.2/bin/armlinux)
Cross Compiler prefix/* 指定交叉編譯工具路徑 */
Init Utilities >
[*] init
[*] Support reading an inittab file
/* 支持init讀取/etc/inittab配置文件,一定要選上 */
Shells >
Choose your default shell (ash) >
/* (X) ash 選中ash,這樣生成的時(shí)候才會(huì)生成bin/sh文件
* 看看我們前頭的linuxrc腳本的頭一句:
* #!/bin/sh 是由bin/sh來(lái)解釋執(zhí)行的
*/
[*] ash
Coreutils >
[*] cp
[*] cat
[*] ls
[*] mkdir
[*] echo (basic SuSv3 version taking no options)
[*] env
[*] mv
[*] pwd
[*] rm
[*] touch
Editors >
[*] vi
Linux System Utilities >
[*] mount
[*] umount
[*] Support loopback mounts
[*] Support for the old /etc/mtab file
Networking Utilities >
[*] inetd
/*
* 支持inetd超級(jí)服務(wù)器
*/
3.3 編譯并安裝Busybox
$make TARGET_ARCH=arm CROSS=armlinux
PREFIX=/home/arm/dev_home/rootfs/my_rootfs/ all install
PREFIX指明安裝路徑:就是我們根文件系統(tǒng)所在路徑。
4 準(zhǔn)備所需的設(shè)備文件
可以直接拷貝宿主機(jī)上的,或者自建幾個(gè)就是。
#cd rootfs/dev
#mknod -m 600 console c 5 1
5 創(chuàng)建linuxrc文件
內(nèi)容如下:
$ vim rootfs/linuxrc
#!/bin/sh
echo Hello linux ,gggggg
exec /sbin/init
然后修改權(quán)限:chmod 775 linuxrc
6 制作initrd映象文件
#mkdir initrd
#dd if=/dev/zero of=initrd.img bs=1k count=8192
#/sbin/mke2fs -F -v -m0 initrd.img
#mount -o loop initrd.img initrd
#cp -av rootfs/* initrd
#umount
#gzip -9 initrd.img
評(píng)論