一.下载源码
二.解压源码
tar xvzf busybox-1.13.tgz
tar -zvf mktools-20110720.tar.gz
三.修改架构,编译器
修改 164行CROSS_COMPILE ?=arm-linux-
修改 190行ARCH ?= arm
四.修改配置
make menuconfig
Busybox Settings
-----à>Build Option
----------------à>
Build BusyBox as a static binary (no sharedlibs)
选择上,其他的默认即可。
然后一直退出,保存即可
接着执行 make
接着执行 make install
最终生成的文件在_install 中
cd _install
ls
查看
存在这四个文件,即编译成功。
五.编写脚本文件,生成文件系统基本框架
gedit mkrootfs.sh
将如下内容复制到mkrootfs.sh中
#!/bin/sh
echo "creatint rootfs dir......"
mkdir rootfs
cd rootfs
echo "making dir : bin dev etc libproc sbin sys usr"
mkdir bin dev etc lib proc sbin sys usr #必备的8个目录
mkdir usr/bin usr/lib usr/sbin lib/modules
# Don'tuse mknod ,unless you run this Script as root !
# mknod-m 600 dev/console c 5 1
# mknod-m 666 dev/null c 1 3
echo "making dir : mnt tmp var"
mkdir mnt tmp var
chmod 1777 tmp
mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/datamnt/temp
mkdir var/lib var/lock var/log var/runvar/tmp
chmod 1777 var/tmp
echo "making dir : home rootboot"
mkdir home root boot
echo "done"
然后修改mkrootfs.sh的权限
chmod 777 mkrootfs.sh
然后执行 ./mkrootfs.sh
生成如上文件
cd rootf
会看到相应的文件框架都已经做好了
接着把编译busybox 生成的四个文件,拷贝到该目录下即可。
六、添加文件系统的配置信息和启动项
进入 etc目录
增加如下文件
直接从主机/etc目录中拷贝group passwd shadow 到当前目录
剩余文件需要人为填写
profile文件:
#!/bin/sh
#/etc/profile:system-wide .profile file for the Bourne shells
echo
echo -n "Processing /etc/profile......"
# Set search library path
export LD_LIBRARY_PATH=/lib:/usr/lib
# set user path
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
#Set PS1
echo"Set PS1 in /etc/profile"
export PS1="[\u@\h\W]\$"
echo "Done!"
inittab文件:
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::restart:/sbin/init
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
fstab文件:
proc/proc proc defaults 0 0
none /tmp ramfs defaults 0 0
none/var ramfs defaults 0 0
mdev /dev ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0
先创建目录init.d,然后在该目录中创建rcS。并修改权限
chomd 777 rcS
init.d/rcS
#!/bin/sh
echo "----------mount all"
/bin/mount -a
echo"----------Starting mdev......"
/bin/echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
echo"*********************************************************"
echo " Be yourself"
echo " Do what you want"
echo "********************************************************"
到这里文件系统就算基本上搭建起来了。
可以在上面直接的使用了。
如果需要的话,可以在/lib目录中添加相应的库,比如数学函数库,比如图形界面库
然后通过环境变量指向他们就好了
七、编译
我要把文件系统编译成为yaffs2文件系统格式
将工具mkyaffs2image拷贝到rootfs的同级目录
使用的工具是
不同的文件系统采用不同的工具制作即可,以上的步骤是相同的。
# ./mkyaffs2image rootfs rootfs.bin
然后把rootfs.bin文件烧写到开发板中即可。