一、开发环境
1、内核:Linux 2.6.22.6;
2、JZ2440;
3、ubuntu 9.10;
4、busybox-1.7.0.tar.bz2。
5、mkyaffs2image
二、构建过程(先建好自己想放文件系统的目录,我起的目录命字myfs,命令mkdir myfs)
1、用busy box构建/bin,/sbin,/linuxrc,/usr目录。请见《构建根文件系统-busybox》
2、构建/ect目录。
book@book-desktop:~/workspace/myfs$ mkdir etc
(1)创建inittab文件。这是系统正常启动后首先执行的的程序。
book@book-desktop:~/workspace/myfs$ vi etc/inittab
添加 ::sysinit:etc/init.d/rcS
console::askfirst:-bin/sh ,按esc:wq保存离开。
(2)创建etc/init.d/rcS文件。这是一个脚本文件,可以在里面添加想自动执行的命令。在系统执行inittab文件的:: sysinit:etc/init.d/rcS时,就会执行这个rcS文件。
book@book-desktop:~/workspace/myfs$ vi etc/init.d/rcS
在rcS添加 mount-a ,这个命令会根据/etc/fstab文件挂载文件系统。所以还要创建/etc/fstab文件。
(3)创建/etc/fstab文件。在这里添加要挂载的文件系统。
book@book-desktop:~/workspace/myfs$ vi /etc/fstab
如添加,
#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
这样就可以自动挂载proc、tmpfs文件系统了。
3、构建/dev目录。
book@book-desktop:~/workspace/myfs$ mkdir dev
(1)建两个设备文件系统就可以启动。
book@book-desktop:~/workspace/myfs$ cd dev
book@book-desktop:~/workspace/myfs/dev$ sudo mknod console c 5 1
book@book-desktop:~/workspace/myfs/dev$ sudo mknod null c 1 3
查看一下:
book@book-desktop:~/workspace/myfs/dev$ ls -l
crw-r--r-- 1 root root 5, 1 2017-02-19 20:54 console
crw-r--r-- 1 root root 1, 3 2017-02-19 20:55 null
(2)另外,想动态更新/dev目录,还要支持mdev。它还支持初始化/dev目录和热插拔。
建sys目录:mkdir sys
在/etc/fstab文件中添加
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
在etc/init.d/rcS文件中添加。
mk dir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
4、安装glibc。
制作交叉编译工具链时,已经生成glibc库,这里直接拷过来即可。
先建/lib目录。
book@book-desktop:~/workspace/myfs$ mkdir lib
找到安装gcc的目录。进入arm-linux-->lib。拷贝到刚建的目录。
book@book-desktop:~/workspace/myfs$ cd /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib
book@book-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp *.so* /home/book/workspace/myfs/lib -d
5、构建其他目录,可以是空目录,如/proc,/mnt,/tmp,/sys,/root。
book@book-desktop:~/workspace/myfs$ mkdir proc mnt tmp sys root
三、制作映像文件
使用工具mkyaffs2image制作。先把mkyaffs2image文件拷到/usr/local/bin/目录下,然后使用命令:
book@book-desktop:~/workspace$ mkyaffs2image myfs myfs.yaffs2
四、下载验证
选j,使用dnw下载。或者使用tftp下载。
下载完成,重新启动。进入刚才设置的-bin/sh。就可以使用shell命令了,如ls。
进入到/dev目录,使用ls命令。可以看到很多设备文件,这就是mdev自动创建的。
使用cat命令,可以看到我们刚才挂载的文件系统。