i.MX6ULL(十五) 根文件系统

本文详细介绍了Linux根文件系统(rootfs)的组成和构建过程,包括BusyBox的集成、内核启动流程、根文件系统的结构,以及如何从交叉编译器获取库文件添加到rootfs中。通过NFS挂载测试了根文件系统的功能,同时提到了rcS、fstab和inittab等重要配置文件的作用。
Linux“三巨头”已经完成了 2 个了,就剩最后一个 rootfs( 根文件系统 ) 了,本章我们就来学
习一下根文件系统的组成以及如何构建根文件系统。这是 Linux 移植的最后一步,根文件系统
构建好以后就意味着我们已经拥有了一个完整的、可以运行的最小系统。以后我们就在这个最
小系统上编写、测试 Linux 驱动,移植一些第三方组件,逐步的完善这个最小系统。最终得到
一个功能完善、驱动齐全、相对完善的操作系统
uboot  kernel 部分特别是内核启动流程比较复杂,设计模块较多 待后续进一步了解

一 根文件系统简介

根文件系统一般也叫做 rootfs,Linux 中的根文件系统一般是 EXT4。

根文件系统首先是内核启动时所 mount(挂载)的第一个文件系统,内核代码映像文件

并没有保存在 根文件系统中,一般保存在

NAND Flash 的指定存储地址、 EMMC 专用分区中。
而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本(和 服务等加载到内存中去运行。  比如 rcS inittab
根文件系统和 Linux 内核是分开的,单独 的 Linux 内核是没法正常工作的,必须要搭配根文件系统。如果不提供根文件系统, Linux 内核 在启动的时候就会提示内核崩溃(Kernel panic) 的提示

1.1 根文件系统结构 

proc 目录
此目录一般是空的,当 Linux 系统启动以后会将此目录作为 proc 文件系统的挂载点, proc
是个虚拟文件系统,没有实际的存储设备。 proc 里面的文件都是临时存在的,一般用来存储系
统运行信息文件
opt
可选的文件、软件存放区,由用户选择将哪些文件或软件放到此目录中。一般编译过程中的产物 存放位置

二  BusyBox 构建根文件系统

BusyBox 是一个集成了大量
Linux 命令和工具的软件,像 ls mv ifconfig 等命令 BusyBox 都会提供。 BusyBox 就是一
个大的工具箱,这个工具箱里面集成了 Linux 的许多工具和命令。一般下载 BusyBox 的源码,
然后配置 BusyBox ,选择自己想要的功能,最后编译即可。
1 、例程源码 ->6 BusyBox 源码 ->busybox-1.29.0.tar.bz2  buidroot

2.1 编译根文件小系统

2.1.1、修改 Makefile,添加编译器
Uboot Linux 移植一样,打开 busybox 的顶层 Makefile ,添加 ARCH CROSS_COMPILE
的值,如下所示:
164 CROSS_COMPILE ?= /usr/local / arm / gcc - linaro - 4.9.4 - 2017.01 -
x86_64_arm - linux - gnueabihf / bin / arm - linux - gnueabihf -
......
190 ARCH ?= arm
2.1.2busybox 中文字符支持
如果默认直接编译 busybox 的话,在使用 SecureCRT 的时候中文字符是显示不正常的,中文字
符会显示为“ ? ”,比如你的中文目录,中文文件都显示为“ ? ”。不知道从哪个版本开始 busybox
中的 shell 命令对中文输入即显示做了限制,即使内核支持中文但在 shell </
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值