嵌入式Linux根文件系统制做步骤

 

1:文件系统分类:
   基于flash的文件系统:flash有两种,一种是NOR,另一种NAND。NOR型 FLASH主要用于存放程序。NAND型 FLASH主要用于存放数据。NOR的特点是可在芯片内执行。这样应用程序可以直接在flash内存内运行,不必再把代码读到系统的RAM中。NOR的传输效率很高,但写入和擦除速度较低。而NAND结构能提供极高的单元密度。并且写入和擦除也很快。是提高数据存储密度的最佳选择。JFFS2型文件系统主要用于NOR型flash。其特点为可读写,支持数据压缩的日志型文件系统.而yaffs文件系统一般是基于NAND FLASH上。yaffs文件系统与jffs相比,减少了一些功能(如支持数据压缩),所以挂载时间更短,速度更快,对内存占用更小。cramfs文件系统既可以用在NOR型flash上,也可以用在NAND型FLASH上。其特点为只读的压缩文件系统。

    基于RAM的文件系统:ramdisk文件系统,严格的讲ramdisk并不是一种文件系统,而只是一种磁盘访问技术。是将内存中一块区域当作磁盘来用。是一种将实际的文件系统(如ext2)装入内存的机制。还有一种initramfs文件系统,也是基于RAM的。不做介绍了。进入主题。

2:根文件系统的制作

(1):新建一个目录,取名为rootfs,在其文件夹下创建根文件系统必须的目录。这些目录有:bin,dev,etc,lib,proc,sbin,sys,usr,mnt,tmp,var.usr/bin,usr/lib,usr/sbin,lib/modules。

(2):创建设备文件,以下两个设备文件必须创建。

   mknod -m 666 console c 5 1 (说明:C为字符型设备的意思,5为主设备号,1为次设备号)

   mknod -m 666 null c 1 3

(3)在/etc目录下装以上文件。inittab ,profile,fstab,init.d(文件夹),init.d/rcS.这几个文件必须要有,我做实验的时候是直接拷的开发箱上的这几个文件。

(4)编译内核模块          make modules

(5)安装内核模块

make modules_install INSTALL_MOD_PATH=/XXX/rootfs(后面跟根文件系统路径,为什么要安装模块到根文件系统,是因为这些模块是用的时候才加入内核中。保存在根文件系统的lib/modules目录中)

(6)配置busybox

  busybox主要是制作根文件系统下面的命令,如ls,mkdir等。这是一个很好用的工具。最后编译成功会生成一个busybox文件,然后这些命令最后都是链结到这个busybox文件上。busybox配置中注意的选项有:编译选项中选择使用静态链接库,交叉编译环境的选择。特别注意里面有一个installation option.里面有一个busybox installation prefix,把你建的rootfs的路径填进去。

(7)如果busybox成功配置好,那么你转到rootfs下的bin目录就可以看到很多的命令和一个busybox文件。最后一步就是把rootfs打包成适合开发板的镜像文件了,这一步根据你要选择的文件系统,开发板的文件系统地址有关。我用的是jffs2文件系统。最后的命令为./mkfs.jffs2 -r rootfs -o rootfs.img -e 0x20000 --pad=0xd00000

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值