一、制作根文件系统
1.下载最新版的 busybox 地址:http://www.busybox.net/downloads/2、编译busybox。先make menuconfig ,修改以下:Busybox Settings ---> Build Options ---> Build BusyBox as a static binary //我们使用动态链接的方式生成需要的命令,所以不选 (arm-linux-) Cross Compiler prefix //这里和Makefile里保持一致,应该写一处就行了Busybox Settings ---> Installation Options---> (./_install)Busybox Installation Prefix //安装路径前缀,可以保留默认路径(./_install)Busybox Settings ---> Installation Options---> Fancy shell prompts //选中可以使我们在profile这个中设置的命令行提示符PS1中的转义字符生效。 Tab completion也选上Init Utilities---> Support reading an inittab file //选中可以使我们放在/etc下的inittab这个文件被busybox的init进程解析保存退出,直接make,make install。 3、用shell脚本创建根文件系统的目录结构,并在想要建立根文件系统的地方运行此脚本。我是用root用户登陆的,直接创建了设备节点。root@li-ace:/# vim makedir.sh#!/bin/sh echo "makeing rootdir" cd /home/li mkdir rootfs cd rootfs echo "makeing dir: bin dev etc lib proc sbin sys usr mnt tmp var home root ..." mkdir bin dev etc lib proc sbin sys usr mnt tmp var home root #13 dirs mkdir usr/bin usr/lib usr/sbin usr/share lib/modules#Don't use mknod, unless you run this Script as mknod -m 777 dev/console c 5 1 mknod -m 777 dev/null c 1 3 echo "done"执行这个sh:root@li-ace:/# sh makedir.sh创建出一个主文件夹rootfs,里面有一批文件:root@li-ace:/home/li/rootfs:/# lsbin dev etc home lib mnt proc root sbin sys tmp usr varPS:mknod -m 777 dev/console c 5 1mknod -m 777 dev/null c 1 3//这两个节点文件一定要全部解开,不然挂载时就会出现下面的错误Freeing init memory: 1428K mount: RPC: Remote system error - No route to host /init: line 103: can't open /r/dev/console: no such file Kernel panic - not syncing: Attempted to kill init! 4、 把busybox源码目录下的etc的内容拷贝到这里的etc下root@li-ace:/# cd etc/root@ etc:/# cp -a /home/li/busybox-1.17.2/examples/bootfloppy/etc TCP cubic registered NET: Registered protocol family 17 VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5 drivers/rtc/hctosys.c: unable to open rtc device (rtc0) dm9000 dm9000: eth0: link down IP-Config: Guessing netmask 255.255.255.0 IP-Config: Complete: device=eth0, addr=192.168.1.230, mask=255.255.255.0, gw=255.255.255.255, host=192.168.1.230, domain=, nis-domain=(none) dm9000 dm9000: eth0: link up, 100Mbps, full-duplex, lpa 0x4DE1 , bootserver=255.255.255.255, rootserver=192.168.1.101, rootpath= Freeing init memory: 1428K Please press Enter to activate this console. [root@Enjoylinux /]#OK,这样就启动完成了,ls查看下可以看到文件系统里的目录Please press Enter to activate this console. [root@Enjoylinux /]# ls bin etc lib mnt root sys usr dev home linuxrc proc sbin tmp var [root@Enjoylinux /]#