构建最小根文件系统需要:
①/dev/console
②/dev/null(如果不设置initab里的id,标准输入输出的内容就会到dev/null这个文件里)
③/etc/inittab
④配置文件里指定的应用程序
⑤c库
构建①和②:
1)用ls /dev/console /dev/null -l查看pc机上的设备文件信息,知道pc机上console和null的主设备号和次设备号
crw------- 1 root root 5, 1 5月 21 22:48 /dev/console
crw-rw-rw- 1 root root 1, 3 5月 21 22:46 /dev/null
2) 用mkdir dev 创建dev文件夹
cd 到dev文件夹:cd dev
创建console设备文件: mknod console c 5 1(权限不够用sudo)
创建null设备文件: mknod null c 1 3(权限不够用sudo)
3)ls可看到dev文件夹下多了两个设备文件
构建③:
/etc/inittab配置文件中,表明了init进程在某个时机下启动相应进程,如果没有这个配置文件,init进程就会执行默认的进程。
为了构建简单的根文件系统,/etc/inittab配置文件只包含一行脚本:console::askfirst:-/bin/sh
1、创建etc文件夹:mkdir etc
2、cd 到etc文件夹:cd etc
3、创建inittab配置文件:vi inittab(权限不够用sudo)
构建④:
因为没有应用程序,所以暂时没必要
构建⑤:
参考嵌入式linux应用开发完全手册 17.3.2章
1、在资料中找到arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2解压缩
2、把解压后的文件上传服务器
3、创建lib文件夹:mkdir lib
3、把gcc-3.4.5-glibc-2.3.6/arm-linux/lib目录下的动态库都拷贝到lib目录下:sudo cp *.so* ~/share/elinux/fs/lib/ -d
至此,最小根文件系统就完成了:
如何制作yaffs2映像文件?
都是用工具生成,步骤就不写了。