根文件系统ROOTFS
一、根文件系统的概述
根文件系统rootfs仅仅就是一个代名词,什么都不是从它包含的内容角度考虑,根文件系统rootfs包含的内容如下: 也就是进入linux系统之后执行:cd /然后ls看到的内容,组成根文件系统,例如:
bin目录:保存普通用户命令的目录
sbin目录:保存超级用户命令的目录
etc目录:保存系统配置文件的目录
lib目录:保存各种库文件的目录
等等
注意:EXT4,NTFS,FAT32等他们都是一种文件系统格式,就是一种管理目录和文件的方式方法,例如:单个文件超过4GB,NTFS文件系统格式可以管理,而FAT32文件系统格式无法管理,说明不同的文件系统格式管理目录和文件的方式方法不一样而根文件系统rootfs就是由一堆的目录和文件组成,用户想要看到所以必须采用一种文件系统格式
总结:根文件系统并不等价于文件系统,根文件系统是软件层面上的解释,但是根文件系统要想展示其目录和文件必须使用某一个文件系统。
必要的八大目录:
bin目录:保存普通用户命令的目录
sbin目录:保存超级用户命令的目录
lib目录:保存各种库文件的目录
etc目录:保存系统配置文件的目录
usr目录:保存其它命令或者库文件的目录
dev目录:保存设备文件,跟驱动相关
proc目录:跟驱动相关
sys目录:跟驱动相关
注意:dev,proc,sys跟驱动相关,里面的内容由驱动自动创建!
所以这三个目录只要创建好即可,里面的内容无需关注!
可选目录:
home:作为普通用户主目录
mnt:作为U盘,TF卡,SD卡,闪存分区的挂节点
var:作为临时文件的存放目录
opt:存放自己的可执行文件等 其它目录根据用户需求自行创建
二、利用busybox制作根文件系统rootfs中的bin、sbin、usr
bin目录:保存普通用户命令的目录
sbin目录:保存超级用户命令的目录
lib目录:保存各种库文件的目录
etc目录:保存系统配置文件的目录
usr目录:保存其它命令或者库文件的目录
dev目录:保存设备文件,跟驱动相关
proc目录:跟驱动相关
sys目录:跟驱动相关
注意:dev,proc,sys跟驱动相关,里面的内容由驱动自动创建!
获取正确的交叉编译器
注意版本要匹配
从www.busybox.net自己下载一个busybox源码(用新的)
修改busybox的Makefile指定处理器架构和交叉编译器
vim Makefile +190
将: ARCH ?= $(SUBARCH)
修改为: ARCH = arm 保存退出 说明:指定将来运行在ARM架构
vim Makefile +164
将:CROSS_COMPILE ?=
修改:CROSS_COMPILE = arm-cortex_a9-linux-gnueabi- 保存退出 说明:指定交叉编译器
配置busybox源码,采用完整版驱动操作命令
Linux Module Utilities --->
//按N键去除简化版的insmod和rmmod命令
[ ] Simplified modutils
//一旦将上面选项去除,立马出现以下完整版的命令无脑全部选中:
[*] insmod
[*] rmmod
[*] lsmod
[*] Pretty output
[*] modprobe
[*] Blacklist support
[*] depmod
保存退出
正式交叉编译busybox
安装busybox
make install
何为“安装”
答:安装就是将编译busybox生成的二进制文件统一的拷贝到指定的某个目录下busybox指定的默认安装目录为_install目录
ls /opt/busybox/_install //查看编译生成的二进制文件内容
bin sbin usr //三大必要目录
获取三大目录后,通过命令发现三大目录里面的,busybox仅仅给你提供各种命令而已!并且这些命令都是软连接文件,最终都链接到同一个实体文件:/opt/busybox/_install/bin/busybox交叉编译busybox仅仅生成一个可执行文件bin/busybox命令就是他的链接而已。
三、根文件系统rootfs添加动态库到lib中