linux根文件系统创建过程

步骤一:创建根文件系统基本目录
1.在home目录下创建:mkdir rootfs,然后,

2.在usr/下面建立子目录

3.在dev/下面建立字符设备文件


4安装/etc,系统所有配置文件都在这里,注意在不同平台(x86 arm PowerPC等)这些配置文件基本都是差不多的,所以只需要拿别人的修改就可以。(这里直接把别人的配置目录做成一个包,拿过来直接解压cp到rootfs里面就可以了。)

步骤二:下载内核源码并编译
1.从https://www.kernel.org/下载自己想要编译的内核版本(我编译的是linux-2.6.29)
解压放到rootfs目录下,然后执行:
make menuconfig //按照自己的要求进行配置得到.config文件
然后对内核进行编译,执行:
make uImage ARCH=arm CROSS_COMPILE=arm-linux-
最后得到我们的镜像文件:
https://i-blog.csdnimg.cn/blog_migrate/043a368df2cfbcc64ce917e8e1d88549.png

2.编译内核模块,执行:
make modules ARCH=arm CROSS_COMPILE=arm-linux-
在此过程,遇到的各种问题请参考:
https://blog.csdn.net/JustDoIt_201603/article/details/87556900

步骤三:busybox的编译和安装
busybox(称为嵌入式开发中的瑞士军刀)是一个工具集(例如我们常用ls,pwd命令,及vi或vim工具),对于这些常用的命令和工具,我们没有必要重新去开发,直接利用busybox进行移植即可。这里我用的是busybox-1.13.3,解压到rootfs目录下:

1.配置busybox,执行make menuconfig
提示如下错误:

意思是混合隐式规则和常规规则:弃用语法,起初以为是busybox包的问题,换了低版本也报同样的错误,百度上说可能是由于系统make工具太新(系统:Ubuntu16.04),make旧版   的一些规则已经无法兼容新版make
将原来的config %config: scripts_basic outputmakefile FORCE改为:

将原来的/ %/: prepare scripts FORCE,改为:

然后重新执行:make menuconfig,进入这个Busybox Settings --->

首先设置下面第一项为yes(*表示yes),然后设置最后一项Cross Compiler prefix(交叉编译器的前缀)的内容为arm-linux
然后进入第四项busybox的安装选项中

设置busybox安装路径前缀,这里我选择安装到rootfs目录下

然后退出保存设置。后面最好source /etc/profile一下。

2.编译busybox,执行:
make ARCH=arm CROSS_COMPILE=arm-linux-
编译完成:

3.busybox安装
安装之前我们/home/wangz/rootfs/bin/目录下都是空的,然后执行安装:

编译完成后,会发现/home/wangz/rootfs/bin/bin多了很多指令工具:

这些指令都是链接命令,连接到了busybox的bin下面去了。

4.内核模块的安装
前面的内核模块都只是编译了,还没有安装,现在来安装,执行:

make modules_install ARCH=arm INSTALL_MOD_PATH=/home/wangz/rootfs

5.到这里整个根文件系统都完成了。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值