300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 构建根文件系统_Linux之构建文件系统

构建根文件系统_Linux之构建文件系统

时间:2023-01-16 20:36:15

相关推荐

构建根文件系统_Linux之构建文件系统

01

下载busybox

busybox从诞生至今已有近的历史,目前已经成为嵌入式行业主流的文件系统。官网是/,点击GetBusyBox下面的Download Source进入到源码下载界面。

02

busybox的配置及编译

下载源码之后将源码拷贝到编译环境中,在编译前需要对busybox进行配置,主要涉及三方面的内容:

1)编译工具链设置2)编译模式设置3)文件系统支持的功能前两项为必须完成的,而第三点根据用户自己的需求自行制定。执行 makemenuconfig进入到配置界面。

编译工具链设置

设定的交叉编译工具链最好和kernel编译时使用的工具链一样,例如将交叉编译工具链设置为arm-linux-gnueabi-,则进入到build options中进行设置。

当然,也可以进入到根目录下的Makefile文件中修改对应的交叉编译工具链以及平台信息等。

编译模式设置

设置编译出的镜像文件是静态还是动态的,若是动态编译,需要手动将交叉编译工具链下的lib库拷贝到最终的_install文件夹下面,反之则不需要。

静态编译的配置如下,可以看到括号内的提示是不包含共享库。该项不使能则编译方式为动态的。

文件系统支持的功能剪裁

busybox可以支持上百种命令行及其他功能,根据自己的需求可进行增减,例如增加devmem命令行,则勾选上对应的使能框。

执行make、makeinstall后,在编译路径下会生成_install文件夹,里面包含bin、sbin、usr等文件。查看刚添加的devmem命令,发现已编译出。

此时将busybox下编译出来的_install拷贝出来作为文件系统的基本框架,然后再增添文件系统其他必须的组件即可。

03

构建文件系统

配置lib目录

将_install下的所有文件拷出并创建lib、etc文件夹,然后将交叉编译工具链arm-linux-gnueabi下的lib库拷贝到创建的lib文件夹下。

然后再依次创建home、opt、run、sys、var、boot、dev 、media、proc、tmp、usr。

配置lib目录

创建fstab文件

创建inittab文件

创建rcS文件

在创建rcS文件前需要在etc目录下手动创建init.d文件夹,并在init.d文件夹下创建rcS。

至此,执行tar -jcvf rootfs.tar.bz2 *,已经构建了一个可以基本运行的根文件系统了。

03

文件系统验证

使用mfgtools将压缩好的rootfs.tar.bz2下载到mmc中,再次启动系统,可以看到制作的根文件系统已经可以正常工作,我们之前添加的devmem命令也可以正常执行。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。