基于S3C2440的busybox的移植 yaffs根文件系统制

系统 1872 0

硬件平台: FL2440

操作系统: Linux2.6.28.7

交叉编译工具: arm-linux-gcc-3.4.1

飞凌公司默认的文件系统,不具有文件延伸功能,比如在 /dev 下有 mmcblk0p1 这个文件,在 挂载 SD 卡驱动时,需要敲入命令 mount /dev/mmcblk0p1 ,如果具有延伸功能,在敲入 mm 后,可以直接按 TAB 键,如果 /dev 目录下只有一个以 mm 形状的文件,将会自动补全后面的字符。初步推断该功能应该为 busybox 集成,从网上下载 busybox-1.9.2.tar.bz2 ,计划安装该版本的 busybox

第一步: 下载 busybox 源代码: http://busybox.net/downloads/busybox-1.9.2.tar.bz2

解压:

tar jxf busybox-1.9.2.tar.bz2

第二步:修改 makefile 中的 174 行的 arch 和编译工具链头:

ARCH ?= arm

CROSS_COMPILE ?= /usr/local/arm/3.4.1/bin/arm-linux-

第三步: make menuconfig. 修改编译配置选项,参考如下设置:

基于S3C2440的busybox的移植 yaffs根文件系统制作

基于S3C2440的busybox的移植 yaffs根文件系统制作

基于S3C2440的busybox的移植 yaffs根文件系统制作

基于S3C2440的busybox的移植 yaffs根文件系统制作

其他使用默认设置。

第四步: 编译 busybox

make install

busybox/_install 目录下会生成 busybox 文件。同时,在解压的当前目录也会存在该文件。

第五步:修改 busybox 的文件属性

chmod 777 busybox

必须要修改属性,否则可能造成无法启动文件系统。

第六步:将新生成的 busybox 替换掉原来的文件,在文件系统根目录的 bin 目录下。

第七步:替换 busybox 所需要的库文件。这一步很关键,使用不同版本的交叉编译工具编译出来的 busybox ,所使用的库是不同的。 FL2440 提供的 busybox 使用的 3.3.2 的交叉编译工具,这里我们使用的 3.4.1 的版本,因此有必要替换掉原来的 lib 文件。如果不替换,启动系统时将出现如下错误:

Failed to execute /linuxrc. Attempting defaults...

busybox 使用的库在如下路径:

/usr/local/arm/3.4.1/arm-linux/lib

这里因交叉编译环境安装路径不同而有所差异。将该目录下的 *.so,*.so.*,*.a, 全拷备到根文件系统的 lib 目录下,有文件重命名的直接覆盖,删除里面一些不必要的库文件,如 *jpeg* 等,否则会出现压缩的文件系统过大而烧不进去的现象。

第八步:使用 mkyaffs2image 工具制作文件系统:

./mkyaffs2image qte_yaffs qte.yaffs

第九步:擦除开发板上的 rootfs 文件系统分区,重新下载新生成的文件系统,重启开发板。

第十步:这时已经能够正常进入控制台,但是弹出如下错误提示:

mdev: /etc/mdev.conf: No such file or directory

在文件系统的 etc 下新建一个空文件 mdev.conf ,另外修改 /etc/init.d 下的 rcS 文件的最后一行为 exec /usr/etc/rc.touch ,以支持触摸屏,默认为支持鼠标。

第十一步:再次制作文件系统,同第八步,然后擦除 rootfs 文件系统分区,重新下载最新的文件系统,重启开发板。这时一切正常。

第十二步:尝试挂载 SD 卡驱动,或者使用 busybox 提供的相关命令,这次已经具备敲命令按 TAB 键延伸的功能了。

注:

制作过程中可能遇到文件系统大于64M,由于fl2440内存64M,不可能下载下来,所以可以先删除/usr目录下有关图片等文件,烧完之后,再copy回去即可。

基于S3C2440的busybox的移植 yaffs根文件系统制作


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论