首页>计算机>Linux认证>应用技术>正文
我也来学做嵌入式Linux系统V0.1

www.zige365.com 2007-8-21 16:48:16 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
 第四章 建立根文件系统
  
  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  

我要投稿 新闻来源:chinaitlab 编辑: 作者:
相关新闻
红旗linux认证模拟题库仅供参考(1)
红旗linux认证模拟题库仅供参考(2)
红旗linux认证模拟题库仅供参考(3)
红旗linux认证模拟题库仅供参考(5)
红旗linux认证模拟题库仅供参考(6)
红旗linux认证模拟题库仅供参考(7)