1.下載busybox源碼包busybox-1.15.0.tar.bz2,網址:https://busybox.net/downloads/。
2.tar jxf busybox-1.15.0.tar.bz2,cd busybox-1.15.0/,修改Makefile,164行改為CROSS_COMPILE ?= arm-linux-,190行改為ARCH ?= arm。
3.make menuconfig,配置busybox。
Busybox Settings --->
[*] Username completion
[*] Fancy shell prompts
4.復制glibc庫文件到根文件系統。
mkdir rootfs
cd rootfs
mkdir lib
cp ~/work/Tools/arm-linux-gcc-4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib/*so* lib/ -rf -d
cp ~/work/Tools/arm-linux-gcc-4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/*so* lib/ -rf -d
arm-linux-strip -s lib/lib*
5.創建相關文件、目錄和節點:etc/inittab、etc/fstab、etc/profile、etc/init.d/rcS。
inittab文件內容為:
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:umount -a -r
fstab文件內容為:
#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /temp tmpfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
profile文件內容為:
#!/bin/sh
export HOSTNAME=hyt
export USER=root
export HOME=root
export PS1="[$USER@$HOSTNAME \W]\#"
PATH=/bin:/sbin:/usr/bin:/usr/sbin
LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH
export PATH LD_LIBRARY_PATH
rcS文件內容為:
mount -a
mkdir /dev/pts
mount -tdevpts devpts /dev/pts
mount -t tmpfs -o size=32m none /tmp
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
增加rcS文件的可執行權限:chmod +x rcS,在根目錄下創建其他目錄dev、home、temp、proc、sys、tmp。進入dev目錄,並用根用戶創建兩個基本的設備文件。
sudo mknod console c 5 1
sudo mknod console
c 1 3
6.復制rz,sz工具到文件系統,下載rz,sz源碼包rzsz-3.48.tar.gz。
tar zxf rzsz-3.48.tar.gz
cd src/
修改Makefile,第3行改為CC=arm-linux-gcc,第4行改為OFLAG= -O -DREGISTERED,然後執行make posix編譯,拷貝rz,sz工具到文件系的/bin目錄即可。
7.利用mkyaffs2image工具生成yaffs2鏡像。
./mkyaffs2image rootfs/ rootfs.yaffs2