6410根文件系统的制作

本文详细介绍了如何制作6410根文件系统,包括搭建开发环境、根目录结构解析、创建目录、建立动态链接库和 Busybox 的配置与编译,以及设备文件的制作。通过这些步骤,读者可以了解到嵌入式Linux系统根文件系统构建的基本流程。
摘要由CSDN通过智能技术生成

1.搭建开发环境

    开发环境(主要指linux、虚拟机的安装和交叉编译环境的搭建)完全按照mini6410用户手册4.3节操作,在此不再赘述。

2.根文件系统的目录说明

    根文件系统是Linux启动的时候使用的第一个文件系统,没有它系统将无法正常的启动,然而在这个根文件系统中又包含了一系列的目录,接下来对这些目录做一个简单的介绍。

bin       存放所有用户都可以使用的、基本的命令。
sbin     存放的是基本的系统命令,它们用于启动系统、修复系统等。
Usr      里面存放的是共享、只读的程序和数据。
proc     这是个空目录,常作为proc 文件系统的挂载点。
dev      该目录存放设备文件和其它特殊文件。
etc       存放系统配置文件,包括启动文件。
lib        存放共享库和可加载块(即驱动程序),共享库用于启动系统、运行根文件系统中的可执行程序
boot     引导加载程序使用的静态文件。
home   用户主目录,包括供服务账号锁使用的主目录,如FTP。
mnt      用于临时挂接某个文件系统的挂接点,通常是空目录。也可以在里面创建空的子目录。
opt      给主机额外安装软件所摆放的目录。
root      root 用户的主目录
tmp      存放临时文件,通常是空目录。
var       存放可变的数据,如日志等。

3 建立根文件系统的目录

进入到自己要放置文件系统的目录,采用《mini2440 Linux移植开发实战指南》,新根文件系统目录的脚本文件create_rootfs_bash,使用命令chmod +x create_rootfs_bash  ,改变文件的可执行权限,执行“./create_rootfs_bash ”运行脚本,就完成了根文件系统目录的创建。脚本create_rootfs_bash文件的内容为:

[cpp]  view plain copy
  1. #!/bin/sh  
  2. echo "------Create rootfs directons start...--------"  
  3. mkdir rootfs  
  4. cd rootfs  
  5. echo "--------Create root,dev....----------"  
  6. mkdir root dev etc boot tmp var sys proc lib usr mnt home  
  7. mkdir etc/init.d etc/rc.d etc/sysconfig  
  8. mkdir usr/sbin usr/bin usr/lib usr/modules  
  9. echo "make node in dev/console dev/null"  
  10. mknod -m 600 dev/console c 5 1  
  11. mknod -m 600 dev/null c 1 3  
  12. mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp  
  13. mkdir var/lib var/lock var/run var/tmp  
  14. chmod 1777 tmp  
  15. chmod 1777 var/tmp  
  16. echo "-------make direction done---------"  

在脚本中改变了tmp 目录的使用权,让它开启sticky 位,为tmp 目录的使用权开启此位,可确保tmp 目录底下建立的文件,只有建立它的用户有权删除。尽管嵌入式系统多半是单用户,不过有些嵌入式应用不一定用root 的权限来执行,因此需要遵照根文件系统权限位的基本规定来设计。

4.建立动态链接库(即lib目录)

动态链接库直接用友善之臂的,先解压友善之臂的根文件包,拷贝lib的内容到新建的根文件目录lib内。

[cpp]  view plain copy
  1. cp -rfd /opt/FriendlyARM/mini6410/rootfs_qtopia_qt4 /opt/FriendlyARM/mini6410/rootfs/lib  

6.交叉编译busybox(即根文件系统内bin,sbin等目录)

Busybox 是一个遵循GPL v2 协议的开源项目,它在编写过程总对文件大小进行优化,并考虑了系统资源有限(比如内存等)的情况,使用Busybox 可以自动生成根文件系统所需的bin、sbin、usr 目录和linuxrc 文件。具体介绍可以参考韦东山完全手册的346页。
   (1)、解压busybox
         cd /opt/FriendlyARM
         tar –zxvf busybox-1.17.2-20101120.tgz  
    (2)、进入源码,修改Makefile 文件:(这个地方是很重要的一步,必须做,有的教程或者文章参考内核的配置与编译,即在make menuconfig和make后面添加ARCH、CROSS_COMPILE等,而对此不做修改,将可能会导致“request_module: runaway   loop modprobe binfmt-464c”等错误出现)
      cd /opt/studyarm/busybox-1.17.2
      修改:
      CROSS_COMPILE ?=arm-linux- //第164 行
      ARCH ?=arm //第189 行
   (3)、配置busybox
     提示:友善之臂已经在光盘中提供了busybox 的源代码包,在光盘\linux 目录中,busybox-1.17.2-20101120.tgz解压后里面包含了友善之臂提供的缺省配置文件:fa_config     (输入命令“cp fa.config .config”可以调用该配置),一般用户直接使用缺省文件就可以了,这样生成的busybox 和root_qtopia_qt4 中的是完全一致的。但为了对它的配置了解       更多一些,可以参考 《mini2440 Linux移植开发实战指南》 的如下步骤:

    输入 make menuconfig进行配置

    下面的配置和busybox1.17.2的配置基本一样,部分地方不太一样。

[cpp]  view plain copy
  1. Busybox Settings--->  
  2.   
  3.              General Configuration--->  
  4.   
  5.                             [*] Show verbose applet usage messages //这个是现实程序的详细信息吧  
  6.   
  7.                             [*] Store applet usage messages in compressed form  
  8.   
  9.                             [*] Support –install [-s] to install applet links at runtime  
  10.   
  11.                             [*] Enable locale support(system needs locale for this to work)  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值