微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于busybox的嵌入式Linux根文件系统的的制作方法

基于busybox的嵌入式Linux根文件系统的的制作方法

时间:08-11 来源:互联网 点击:

用s3c2410_serialx做为设备名,使用串口0作为控制台,这里使用s3c2410_serialO作为控制台。

4.1.2 创建etc/init.d/rcS文件

rcS文件是一个脚本文件,借助启动脚本可以设置各种程序开机后自动运行,也可进行其他系统设置,这有点类似于Windows系统中的Autobat自动批处理文件。创建的文件内容如下(实际内容可能与此不完全一致):

注意最后还要改变它的属性使它能够执行,执行chmod+x etc/init.d/rcS命令。

4.1.3 创建etc/fstab文件

fstab文件描述系统中各种文件系统的信息,应用程序读取这个文件,然后根据其内容进行自动挂载的工作。创建的代码如下:

文件中各字段的意义如下:1)device:要挂接的设备,如/dev/mtdblockl;2)mount-point:挂接点;3)type:文件系统类型;4)opt-ions:挂接参数,以逗号隔开;5)dump和fsck order:用来决定控制dump、fsck程序的行为。
4.2 用户和组文件的创建

需要在etc目录下增加passwd和group两个文件。首先增加passwd文件,passwd一共由7个字段组成,6个冒号将其隔开。其含义分别为:1)用户名;2)是否有加密口令,x表示有,不填表示无,采用MD5、DES加密;3)用户ID;4)组ID;5)注释字段;6)登录目录;7)所使用的shell程序。

passwd的内容为root:x:0:0:root:/root:/bin/sh

增加group文件,group共由4个字段组成,3个冒号将其隔开。含义分别为:1)组名;2)是否有加密口令,同passwd;3)组ID;4)指向各用户名指针的数组。

/home/work/rootby/etc/group内容如下:

root:x:0:

4.3 构建dev目录

从Linux-2.6.18开始,负责旧版本的设备管理系统devfs已被废除,但新版本的udev是一个基于用户空间的设备管理系统。在内核启动时并不能自动创建设备节点,固需手动创建console和null两个启动过程必须的设备节点。将采用busybox中内置的mdev,一个简化的udev版本。

#mknod dev/console C 5 1

#mknod dev/null C 1 3

如果不创建这两个设备文件,在文件系统启动时会出现错误信息,不能初始化控制台。

4.4 安装glibc库

在开发板上需要加载器和动态库,执行如下几个命令:

$mkdir-p/home/work/rootby/lib

$cd/home/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib

$cp*.SO*/home/work/rootby/lib-d

5 制作yaffs2文件系统映像文件

所谓制作文件系统映像文件,就是将一个目录下的所有内容按照一定的格式存放到一个文件中,这个文件可以直接烧写到存储设备上去。

在yaffs源码中有个utils目录,里面有mkyaffsimage和mkyaffs2image的源代码,前者可制作yaffs映像文件,后者制作yaffs2映像文件,将下载的yaffs2解压出来在目录/Development下有两个文件夹:yaffs和yaffs2,进入yaffs2/utils目录,此目录下有3个文件。在加入两个文件:nand-ecc.c和yaffs_packed-tagsl.c,具体文件这里不列出,源码可参见文献。

修改Makefile文件:

加入MKYAFFSSOURCES=mkyaffsimage.c yaffs_packedtagsl.C nand-ecc.c因为yaffs_packedtagsl.c和nand-ecc.c是加上去的。然后执行make命令后生成mkyaffs2image工具,复制此工具到PC机usr/local/bin目录下,利用makyaffs2image工具,执行#mkyaffsimage2 rootby/pyaffs2.img命令可生成文件系统映像文件。执行#gzip-9 pyaffs2.img最终生成嵌入式Linux根文件系统的映像文件为pyaffs2-.img.gz。至此,整个根文件系统就制作完成,最后可以通过上面制作的pyaffs2.img.gz启动整个系统。

6 下载映像文件并执行

以下命令为通过Windows的超级终端工具下载Linux内核映像和根文件系统映像到目标板(基于S3C2440微处理器的开发板)。

#tftp 30008000 zImage/*下载Linux内核映像到目标板内存*/

#fftp 30800000 pyaffs2.img.gz/*下载根文件系统映像到目标板内存*/

#go 30008000/*启动目标板Linux*/

目标板的嵌入式Linux系统启动后在超级终端中显示的结果如图3所示。可见用busybox制作的根文件系统已经正常启动。

  7 结束语

对用busybox制作嵌入式Linux根文件系统的方法进行归纳和总结,给出制作嵌入式Linux根文件系统的一般方法,适用于ARM架构处理器的嵌入式系统。利用此方法制作的文件系统可在S3C2440上成功运行,意在给嵌入式系统平台的搭建有个整体把握和认识,以降低进入ARM嵌入式开发应用领域的门槛,提供的方法组建的文件系统非常简单且配置灵活。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top