根文件系统实验指导.doc
文本预览下载声明
嵌入式系统根文件系统制作
一、主机环境?Linux vm-dev 2.6.9-42.EL RedHatEL4, VMWare6.0.3;?gcc version 3.4.6(Red Hat 3.4.6-3) Thread model: posixgcc version 3.4.6?所需源文件:?busybox-1.12.2.tar.bz2;
二、用Busybox创建nfs文件系统
1、解压busybox-1.12.2.tar.bz2,路径为[root@vm-dev rootfs]# ls
busybox-1.12.0.tar.bz2
[root@vm-dev rootfs]# tar -vxjf busybox-1.12.2.tar.bz2
[root@vm-dev rootfs]# cd busybox-1.12.2
[root@vm-dev busybox-1.12.2]# pwd
/opt/develop/lyj/common/porting/rootfs/busybox-1.12.2
[root@vm-dev busybox-1.12.2]# vi Makefile
[root@vm-dev busybox-1.12.2]#
修改Makefile中的ARCH和CROSS_COMPILE与本机的路径一致:
CROSS_COMPILE ?= arm-linux- ...ARCH ?= arm
2、编译busybox。先make menuconfig,修改以下: [root@vm-dev busybox-1.12.2]# make menuconfig
Busybox Settings ????Build Options ????????[*] Build BusyBox as a static binary (no shared libs)????????//直接编译成静态库,省事点????????(/opt/crosstool/bin/arm-s3c2410-linux-gnu-) Cross Compiler prefix????????//这里和Makefile里保持一致,应该写一处就行了????Installation Options ????????[ ] Dont use /usr????????//使用usr目录Busybox Library Tuning
[*] Fancy shell prompts
//一定要选上,否则很多转意字符无法识别Shells ????Choose your default shell (ash) ????//这里选择shell为ash,应该是默认选中的???????? ash????????//把ash这档的选项全部选上Miscellaneous Utilities
[ ] inotifyd
//不选
保存退出,直接make,make install。[root@vm-dev busybox-1.12.2]# ls _install/
bin linuxrc sbin usr
[root@vm-dev busybox-1.12.2]#
3、用shell脚本创建根文件系统的目录结构,并在想要建立根文件系统的地方运行此脚本。我是用root用户登陆的,直接创建了设备节点。[root@vm-dev root_stand]# cat build_fs.sh
#!/bin/sh
echo makeing rootdir
mkdir rootfs
cd rootfs
echo makeing dir: bin dev etc lib proc sbin sys usr
mkdir bin dev etc lib proc sbin sys usr #8 dirs
mkdir usr/bin usr/lib usr/sbin lib/modules
#Dont use mknod, unless you run this Script as
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/jiffs2 mnt/yaffs mnt/data mnt/temp
mkdir var/lib var/lock var/log var/run var/tmp
chmod 1777 var/tmp
echo making dir: home root boot
mkdir
显示全部