使用busy-box制作Yaffs2根文件系统

2011-08-07 13:59

使用busy-box制作Yaffs2根文件系统

<!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } -->

内核支持yaffs2文件系统

下载yaffs2源码cvs-root.tar.gz,解压,进入yaffs2目录:

给内核打上yaffs2文件系统的补丁,执行:

#./patch-ker.shc/………/linux-2.6.32/<—这个是你的内核源码的目录

这时内核源码fs目录下多了一个yaffs2目录,同时Makefile文件和Kconfig文件也增加了yaffs2的配置和编译条件。

配置对yaffs2支持

这部分配置的比较多,可根据自己的需要进行配置,把不用的文件系统都去掉,下面是几个

主要的配置:

Filesystems --->

DOS/FAT/NTFilesystems --->

<*>MSDOS fs support

<*>VFAT (Windows95) fs support

Miscellaneousfilesystems --->

<*>YAFFS2 file system support

[*]Autoselectyaffs2format

配置语言选项:

NativeLanguage support --->

(iso8859-1)Default NLS Option

<*>Codepage 437(United States, Canada)

<*>Simplified Chinese charset(CP936, GB2312)

<*>NLS ISO8859-1 (Latin 1; Western European Language)

<*>NLS UTF-8


制作根文件系统

http://www.busybox.net/downloads/ 上选择一个版本的busybox,这里选择busybox-1.12.4

的源码;

编译环境:ubuntu 9.04

编译yaffs文件系统的交叉编译器使用TQ的mkyaffs2image

关于busybox的配置主要注意:是使用动态编译还是动态编译

静态编译不需要共享库,但如果自己写的arm-linux程序在这个根文件系统中就不能运行

的,缺少库的支持,但可以使用NFS,来实现主机到目标板的挂接共享库

通常采用静态编译,这样产生的文件系统比较小,当需要程序需要库运行时才加入。

 

 

1.解压busybox-1.12.4

tar xvfj busybox-1.12.4.tar.bz2 -C ./

指定交叉编译器和目标体系

CROSS_COMPILE ?= arm-linux-

ARCH ?= $(arm)

打开配置单只需要把静态编译选上,其他的默认就好

另外在linux modules配置菜单中去掉简单加载卸载模块选项,然后把后面的全选上。

现在编译make;make install

出现错误提示如下

。。。neric/fcntl.h:140: error: redefinition of 'struct flock64'
make[1]: *** [miscutils/inotifyd.o] Error 1
make: *** [miscutils] Error 2
去挑配置单对应的miscutils/inotifyd文件编译的条件在make

编译成功!安装busybox ,make install

现在新建一个root_yaffs2目录

拷贝busybox安装目录下的全部文件到root_yaffs2目录下

cp -p /opt/busybox-1.12.4/_install/*  ./

2.制作Yaffs2文件系统

现在还需要构建一些目录比如home dev etc lib mnt opt proc root tmp var sys

在原有的usr目录下构建share,lib目录

这里主要配置

etc和dev目录

etc目录截图如下


dev目录需要构建console和null设备文件,用于mdev动态启动

还需要复制交叉编译器的常用库

将其复制到lib/目录下(只选择常用的库,不需要的可以不复制)

最后使用

mkyaffs2image root_yaffs2.bin

编译生成根文件系统下载至NAND,重启,能进入控制台!

注意:要在linux控制台显示自己设置的主机名字  需要这样设置

 按照上面的方法修改我们的根文件系统中的命令行提示符。首先我们需要修改buxybox中配置,添加如下两个选项:
  Busybox Settings --->
    Busybox Library Tuning --->
    [*] Username completion
    [*] Fancy shell prompts
 如果不选择上面两项,文件系统是不是别PS1这个环境变量的参数的。
   创建/etc/hostname添加如下内容(我们的主机名):
 xxxx
 修改/etc/init.d/rcS添加如下内容(导入主机名配置文件):
 /bin/hostname –F /etc/hostname
 修改根文件系统中/etc/profile文件添加如下内容:
 HOSTNAM=`/bin/hostname`
 PS1=`[\u@\h \W]\# `
 exPORT PS1 HOSTNAME

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值