构建arm linux 的根文件系统 root filesystem

一个基本的文件系统应该包括:

busybox(提供 shell, 工具, 目录 /bin /sbin)。 

配置文件(用来初始化和布局你的文件系统 主要目录/etc)。

设备文件(udev  目录 /dev)。 

必要的库文件系统(目录 /lib /usr/lib)。 

其他系统目录(  /mnt /proc /sys /tmp /usr  /home  /root  /var )。

1. 生成目录: mkdir rootfs cd rootfs mkdir  bin sbin etc dev lib mnt proc sys tmp usr home root var mnt/usb mnt/mtdblock...

2.  busybox 的配置和编译: 

make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig 配置自己的busybox, 

make ARCH=arm CROSS_COMPILE=arm-linux- make install

生成 bin sbin 两个目录,

 cp -a bin sbin rootfs 

注意:在配置busybox时,安装路径要设置好。

3. udev的编译和安装: make ARCH=arm CROSS_COMPILE=arm-linux- 

生成几个可执行文件,这里我们只需要udevadm  udevd这两个文件。   

把这两个文件复制到/sbin下。

4.  依赖库文件的安装: 

对于放在根文件里的可执行文件 

在这里用 arm-linux-readelf -a 可执行文件 | grep "Shared library" 

可以找到可执行文件所需要的动态库,把需要用到的动态库复制到lib目录下。 

因为工具链中动态库包含调试信息,size比较大,可以用以下命令去除调试信息. 

arm-linux-strip 动态库。

 二、 再来说一下配置文件的问题   

大部分的配置文件都在/etc目录里,系统启动的过程是首先linux内核挂载根文件系统,

运行/etc/inittab脚本, 根据fstab的内容挂载个文件系统。

启动udev生成设备文件,启动shell等. 

简单的/etc目录包括fstab inittab mtab 和 udev配置信息,

这些就可以启动一个较小的系统了。 关于这几个配置文件,以后再说。

三、 经过以上准备, 就生成了一个根文件系统, 

mkcramfs rootfs  root.cramfs生成基于cramfs的文件系统,

然后下载到板子上就可以启动运行了,当然这样的一个系统已经可以作很多事情了,

 但是有了这个基础,还可以一步一步添加更多的库和应用在里面

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值