首页 » 技术文章 » 基于S3C2440的嵌入式Linux根文件系统构建

基于S3C2440的嵌入式Linux根文件系统构建

作者:  时间:2010-12-15 14:58  来源:EDN

  412 创建etcinitdrcS文件

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

  注意最后还要改变它的属性使它能够执行,执行chmod+x etcinitdrcS命令。

  413 创建etcfstab文件

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

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

  42 用户和组文件的创建

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

  passwd的内容为rootx00root:/root:/binsh

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

  /homeworkrootbyetcgroup内容如下:

  rootx0

  43 构建dev目录

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

  #mknod devconsole C 5 1

  #mknod devnull C 1 3

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

  44 安装glibc

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

  $mkdir-phomeworkrootbylib

  $cdhometoolsgcc-345-glibc-236arm-linuxlib

  $cp*SO*homeworkrootbylib-d

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

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

  在yaffs源码中有个uTIls目录,里面有mkyaffsimagemkyaffs2image的源代码,前者可制作yaffs映像文件,后者制作yaffs2映像文件,将下载的yaffs2解压出来在目录/Development下有两个文件夹:yaffsyaffs2,进入yaffs2utils目录,此目录下有3个文件。在加入两个文件:nand-ecccyaffs_packed-tagslc,具体文件这里不列出,源码可参见文献。

  修改Makefile文件:

  加入MKYAFFSSOURCES=mkyaffsimagec yaffs_packedtagslC nand-eccc因为yaffs_packedtagslcnand-eccc是加上去的。然后执行make命令后生成mkyaffs2image工具,复制此工具到PCusrlocalbin目录下,利用makyaffs2image工具,执行#mkyaffsimage2 rootbypyaffs2img命令可生成文件系统映像文件。执行#gzip-9 pyaffs2img最终生成嵌入式Linux根文件系统的映像文件为pyaffs2-imggz。至此,整个根文件系统就制作完成,最后可以通过上面制作的pyaffs2imggz启动整个系统。

  6 下载映像文件并执行

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

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

  #fftp 30800000 pyaffs2imggz*下载根文件系统映像到目标板内存*

  #go 30008000*启动目标板Linux*

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

  7 结束语

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

相关推荐

Ctrack选用u-blox GPS和蜂巢式模组开发车队管理解决方案

u-blox  嵌入式  Ctrack  2014-05-21

动作撷取追踪的嵌入式体感控制新技术

嵌入式  体感控制  2013-12-06

嵌入式系统的固件更新

嵌入式  Flash  RAM  缓冲区  2013-09-12

Linux将进军汽车智能系统领域

Linux  汽车智能系统  2013-07-09

汽车电子向一体化集成、网络化与智能化发展

汽车电子  嵌入式  2013-05-23

东芝开发嵌入式SRAM低功耗技术智能手机

东芝  嵌入式  SRAM  2013-02-23
在线研讨会
焦点