第四章 建立根文件系统      1、建立目录      构建工作空间时,rootfs文件夹用来存放根文件系统,      #cd rootfs      根据根文件系统的基本结构,建立各个对应的目录:      # mkdir bin dev etc lib proc sbin tmp usr var root home   # chmod 1777 tmp   # mkdir usr/bin usr/lib usr/sbin   # ls   dev etc lib proc sbin tmp usr var   # mkdir var/lib var/lock var/log var/run var/tmp   # chmod 1777 var/tmp      对于单用户系统来说,root和home并不是必须的。      准备好根文件系统的骨架后,把前面建立的文件安装到对应的目录中去。      2、拷贝链接库      把uclibc的库文件拷贝到刚才建立的lib文件夹中:      # cd ${PREFIX}/lib   [root@skynet lib]# cp *-*.so ${PRJROOT}/rootfs/lib   [root@skynet lib]# cp -d *.so.[*0-9] ${PRJROOT}/rootfs/lib      3、 拷贝内核映像和内核模块      因为没有模块,所以拷贝模块就省了,      新建boot目录,把刚才建立好的内核拷贝过来      # cd /home/kendo/control-project/daq-module/rootfs/   # mkdir boot   # cd ${PRJROOT}/images   # cp bzImages-2.4.18-rmk5 /home/kendo/control-project/daq-module/rootfs/boot      4、 建立/dev下边的设备文件      在linux中,所有的的设备文件都存放在/dev中,使用mknod命令创建基本的设备文件。      mknod命令需要root权限,不过偶本身就是用的root用户,本来是新建了一个用户专门用于嵌入式制作的,不过后来忘记用了……      # mknod -m 600 mem c 1 1   # mknod -m 666 null c 1 3   # mknod -m 666 zero c 1 5   # mknod -m 644 random c 1 8   # mknod -m 600 tty0 c 4 0   # mknod -m 600 tty1 c 4 1   # mknod -m 600 ttyS0 c 4 64   # mknod -m 666 tty c 5 0   # mknod -m 600 console c 5 1      基本的设备文件建立好后,再创建必要的符号链接:      # ln -s /proc/self/fd fd   # ln -s fd/0 stdin   # ln -s fd/1 stdout   # ln -s fd/2 stderr   # ls   console fd mem null random stderr stdin stdout tty tty0 tty1 ttyS0 zero      设备文件也可以不用手动创建,听说RedHat /dev下的脚本MAKEDEV 可以实现这一功能,不过没有试过……      基本上差不多了,不过打算用硬盘/CF卡来做存储设备,还需要为它们建立相关文件,因为我的CF在目标机器上是CF-to-IDE,可以把它们等同来对待,先看看Redhat 下边had的相关属性:      # ls -l /dev/hda   brw-rw----  1 root   disk    3,  0 Jan 30 2003 /dev/hda   # ls -l /dev/hda1   brw-rw----  1 root   disk    3,  1 Jan 30 2003 /dev/hda1      对比一下,可以看出,had类型是b,即块设备,主编号为3,次编号从0递增,根限位是rw-rw----,即660,所以:      # mknod -m 660 hda b 3 0   # mknod -m 660 hda1 b 3 1   # mknod -m 660 hda2 b 3 2   # mknod -m 660 hda3 b 3 3      5、添加基本的应用程序      未来系统的应用程序,基本上可以分为三类:      基本系统工具,如ls、ifconfig这些……      一些服务程序,管理工具,如WEB、Telnet……      自己开发的应用程序      这里先添加基本的系统工具,有想过把这些工具的代码下载下来交叉编译,不过实在是麻烦,用BusyBox,又精简又好用……      将busybox-1.00.tar.gz下载至sysapps目录下,解压: 
     本新闻共 6页,当前在第 4页   1  2  3  4  5  6   |