1.下载busybox
http://www.busybox.net/downloads/busybox-1.9.2.tar.bz2
# tar jxvf busybox-1.9.2.tar.bz2
# cd busybox-1.9.2
# vi Makefile +176
ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/3.3.2/bin/arm-linux-
#Make menuconfig
做如下定制:
Busybox setting -> build option ->
[*]build busybox as a static binary
Init Utilities ->
[*]init
[*]Support reading as inittab file
Shells ->
choose your devifault shell(ash) ->
(X) ash
Linux Module Utilities->
[]Support version 2.6.x Linux kernels
applets/applets.c:21:2: error: #error Aborting compilation.
#make
#make CONFIG_PREFIX=/root_01 install
busybox 就被安装到根目录/root_01下了(/root_01下生成 bin linuxrc sbin usr)
/root_01是自己在主机根目录下建的一空文件。
2.在/root_01中
创建文件dev、/etc、/home、/home/usr、/lib、/mnt、/var、/tmp、/proc、/opt、/www
#mkdir dev etc home lib mnt var tmp proc sys opt www
将库文件拷到/lib下,这里是在3.4.1的目录里的库,别的编译器库行不行没试过。
#cd /usr/local/arm/3.4.1/arm-linux/lib
拷下面的库就行
ld-2.3.2.so libcrypt.so.1 libm-2.3.2.so libresolv-2.3.2.so
ld-linux.so.2 libc.so.6 libm.so.6 libresolv.so.2
libc-2.3.2.so libdl-2.3.2.so libpthread-0.10.so libutil-2.3.2.so
libcrypt-2.3.2.so libdl.so.2 libpthread.so.0 libutil.so.1
3.创建etc目录下文件
在root_01/etc目录下创建一个inittab文件
内容如下:
#vi /etc/inittab
::sysinit:/etc/init.d/rcS
s3c2410_serial0::askfirst:-/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
创建etc/mdev.conf文件,内容为空
4.同样的方法创建etc/init.d/rcS文件:
#!/bin/sh
ifconfig eth0 192.168.1.17
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
mount -t yaffs /dev/mtdblock4 /mnt/yaffs
最后还要改变它的属性使它能够执行。
chmod +x etc/init.d/rcS
5.创建etc/fstab文件:
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
6.在/root_01/dev 建立节点文件:
#mknod console c 5 1
#mknod null c 1 3
7.下载cramfs-1.1.tar.gz解压后在其顶层make
得到mkcramfs 与root_01放在一起。
执行
#./mkcramfs root_01 myroot01.cramfs
生成根文件 myroot01.cramfs。