一、编译busybox:
1. 配置编译busybox,首先解压busybox
tar xjf busybox-1.7.0.tar.bz2
2. 打开Makefile文件对交叉编译工具进行配置
vi makefile
/CROSS_COMPILE 搜索关键字
然后添加 arm-linux-
保存退出。
3. 进入busybox-1.7.0 进行配置
make menuconfig
4. make 编译busybox。
5. 创建一个文件系统Nguhyw_fs
6. make CONFIG_PREFIX=/home/Nguhyw/Nguhyw_fs install
安装的路径为/home/Nguhyw/Nguhyw_fs 也就是根文件系统的所在地。
二、制作根文件系统:
1. 进入根文件系统的所在目录这里以/home/Nguhyw/Nguhyw_fs为例:
2. 先创建dev目录、mkdir dev
3. 进入dev目录
mknod +x console c 5 1
mknod +x null c 1 3
4. 构造inittab文件
进入根文件系统目录
mkdir etc
vi etc/inittab
在inittab里面添加内容如下:
console::askfirst:-/bin/sh(最简单的配置文件)
5. 安装c库:
进入/home/Nguhyw/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib目录
在根文件系统主目录下创建lib目录
复制所有.so文件 cp *.so* /home/Nguhyw/Nguhyw_fs/lib -d
(-d的意思是是这些文件拷贝为原本的连接文件)
然后进入根文件系统主目录:/home/Nguhyw/Nguhyw_fs
制作yaffs2镜像文件:
1. 解压制作工具yaffs_source_util_larger_small_page_nand.tar.bz2
tar xjf yaffs_source_util_larger_small_page_nand.tar.bz2
解压完成后会生成一个文件夹叫Development_util_ok
然后进入Development_util_ok/yaffs2/utils目录执行make命令
然后就编译出 mkyaffs2image 这个应用程序(工具)
把这个工具复制到linux的系统目录里面去:
cp mkyaffs2image /usr/local/bin/
加上可执行属性chmod +x /usr/local/bin/mkyaffs2image
至此就可以去创建文件系统映像了做法如下:
mkyaffs2image Nguhyw_fs Nguhyw_fs.yaffs2
现在最小根文件系统已经制作完成,下一步就是继续完善。
继续完善刚才制作的根文件系统:
1. 根文件系统主目录下创建proc文件夹 mkdir proc
题外话
{
在开发板上挂接proc 然后使用ps命令方法如下:
# mount -t proc none /proc
# ps
PID Uid VSZ Stat Command
1 0 3092 S init
2 0 SW< [kthreadd]
3 0 SWN [ksoftirqd/0]
4 0 SW< [watchdog/0]
5 0 SW< [events/0]
6 0 SW< [khelper]
55 0 SW< [kblockd/0]
56 0 SW< [ksuspend_usbd]
59 0 SW< [khubd]
61 0 SW< [kseriod]
73 0 SW [pdflush]
74 0 SW [pdflush]
75 0 SW< [kswapd0]
76 0 SW< [aio/0]
707 0 SW< [mtdblockd]
742 0 SW< [kmmcd]
760 0 3096 S -sh
771 0 3096 R ps
可见挂接上去之后就可以使用ps命令查看当前运行的程序了。但是有没有更方便的方法可以
让它自己创建好呢? 答案是当然的 预知详情请听下面分解:
}
2. 打开etc目录下的inittab文件 vi etc/inittab
加入一个脚本:
::sysinit:/etc/init.d/rcS
保存退出!
3. 既然上面添加了一个脚本文件,那么现在就要创建一个脚本文件(/etc/init.d/rcS)。
mkdir etc/init.d
vi etc/init.d/rcS
在rcS文件中添加内容为:
mount -t proc none /proc
4. 给文件添加可执行的属性:chmod +x etc/init.d/rcS
此时如果制作文件系统映像并烧写进开发板的话第一个就会自动创建好proc目录而且其相关
的功能也可以使用。(ps命令)
5. 挂载文件的方法不仅仅是上述这个方法,还有一个就是mount -a 修改
修改rcS文件改为:
#mount -t proc none /proc
mount -a
6. 新建文件fstab vi etc/fstab
写入内容为:
#device mount-point type options dump fask order
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
7. 根文件系统主目录下创建sys文件夹
mkdir sys (重要)
8. 修改rcS文件为:
#mount -t proc none /proc
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
9. 制作根文件系统然后下载,现在根文件系统的制作已经基本完成接下来介绍使用网络根文件系统的启动法式。
10. 要想让文件系统支持网络则把etc/init.d/rcS文件修改为下列内容:
#mount -t proc none /proc
ifconfig eth0 192.168.1.119
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s