基于S3C2440的嵌入式Linux根文件系统(2)
- UID
- 1029342
- 性别
- 男
|
基于S3C2440的嵌入式Linux根文件系统(2)
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嵌入式开发应用领域的门槛,提供的方法组建的文件系统非常简单且配置灵活。 |
|
|
|
|
|