read INSTALL rirst.
总结:应用程序所需要的文件
1./dev/console /dev/null
2.配置文件/etc/inittab
3.配置文件里面指定的应用程序
4.库文件
5.init本身,即busybox
以上就是最小根文件系统所需要的项
编译busybox
先阅读install文件可知道如何编译它
make menuconfig
make
make install(这里安装要注意)
安装到我们指定的某个文件里面
使用make CONFIG_PREFIX=/path/from/root install
编译需要在makefile里面加上cross_compiler里面加上arm-linux-
一、创建console
现在上面编译后busybox目录是work/FL_fs/first_fs
在此目录下:ls /dev/console /dev/null -l
crw------- 1 root root 5, 1 2015-01-05 20:57 /dev/console
crw-rw-rw- 1 root root 1, 3 2015-01-05 20:30 /dev/null
那么根据它来创建console null等设备
#mkdir dev
#cd dev
#mknod console c 5 1
#mknod null c 1 3
#ls -l
显示:
crw-r--r-- 1 root root 5, 1 2015-05-06 20:39 console
crw-r--r-- 1 root root 1, 3 2015-05-06 20:40 null
表示创建成功
二、配置项
#cd work/FL_fs/first_fs
#mkdir etc
#vim etc/inittab
输入:
console::askfirst:-/bin/sh
三、安装c库
#cd lib
#cp /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib *.so* /work/FL_fs/first_fs/lib -d
end
最小根文件系统已经完成。
此时需要制作镜像文件以烧写到硬件。
yaffs2和jffs文件系统
1.制作yaffs2
#cd work/system
yaffs_source_util_large_smmall_page_nand.tar.bz2
#tar xjf yaffs_source_util_large_small_page_nand.tar.bz2
#cd Developement_util_ok
#cd yaffs2
#cd utils
#make
#cp mkyaffs2image /usr/local/bin
#chmod +x /usr/local/bin/mkyaffs2image
#cd /work/FL_fs
#mkyaffs2image first_fs first_fs.yaffs2
此后烧写到开发板里面。
可以启动,并能使用ls,cd等命令。
如何改进?
#cd ../first_fs
#mkdir proc
单板上有虚拟系统
#mkdir proc
#mount -t proc none /proc
#ps
可以看到哪些程序及其内容
PID TTY TIME CMD
383 pts/2 00:00:00 ps
30564 pts/2 00:00:00 su
30573 pts/2 00:00:00 bash
383 进程号
#cd 383
如果不想 手动挂载 #mount -t proc none /proc
也可以写到配置文件里面
#vim inittab
++ ::sysinit:/etc/init.d/rcS 需要脚本
#mkdir etc/init.d
#vim rcS
##mount -t proc none /proc
#chmod +x /etc/init.d/rcS
就可以了
上面#mount -t proc none /proc
也可以使用#mount -a
#mount -a是什么意思?
读出/etc/fstab内容来挂载
怎么使用呢?
#mount -a会依赖fstab文件
fstab文件内容有哪些呢?
#device mount-point type options dump fsck
proc /proc proc defaults 0 0
那么,在/etc/fstab里面输入:
proc /proc default 0 0
然后在脚本rcS里面使用#mount -a
然后再制作yaffs镜像文件就和第一种方法是一样的。
可以使用#cat /proc/mounts查看挂载了哪些文件系统
继续
上面的dev是手工创建
那么怎么自动创建dev下面的设备节点呢
方法:使用mdev
怎么使用mdev? 在/
可以查看mdev.txt
[1] mount -t sysfs sysfs /sys
[2] echo /bin/mdev > /proc/sys/kernel/hotplug
[3] mdev -s
[4] mount -t tmpfs mdev /dev
[5] mkdir /dev/pts
[6] mount -t devpts devpts /dev/pts
这6步就可以了。
所以:
1、#cd ../first_fs
#mkdir sys
[1] mount -t sysfs sysfs /sys
[4] mount -t tmpfs mdev /dev
应该怎么做?
#vim /etc/fstab
#device mount-point type options dump fsck
proc /proc proc defaults 0 0
sysfs /sys sysfs default 0 0
tmpfs /dev tmpfs default 0 0
[2] echo /bin/mdev > /proc/sys/kernel/hotplug
[3] mdev -s
[5] mkdir /dev/pts
[6] mount -t devpts devpts /dev/pts
怎么做呢?
#cd /etc/init.d/rcS
mount -a
mkdir /dev/pts/
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s