LV.13 D12 Linux内核调试及rootfs移植 学习笔记

一、根文件系统

1.1 根文件系统

根文件系统是内核启动后挂载的第一个文件系统系统引导程序会在根文件系统挂载后从中把一些基本的初始化脚本和服务等加载到内存中去运行

1.2 根文件系统内容

bin shell命令(elf格式)(通过busybox编译生成)

dev 设备文件(内核启动后会将设备信息写入该目录)

etc 内核配置文件

lib 共享库(elf格式)(从交叉编译工具链中获取)

注:因为程序还在ubuntu编译,静态库是编译时链接的,ubuntu中有静态库,而程序是在开发板执行,所以开发板上只需要有动态库就可以。

linuxrc 内核运行的第一个应用程序(通过busybox编译生成)

mnt 挂载目录(非必要)

proc 进程相关文件(内核启动后会将进程信息写入该目录)

root 超级用户家目录(非必要)

sbin 系统管理shell命令(elf格式)(通过busybox编译生成)

sys 驱动相关文件(内核启动后会将驱动信息写入该目录)

usr shell命令(elf格式)(通过busybox编译生成)

bin目录:

**注:**我们不能把ubuntu里的shell命令直接给开发板用,应为ubuntu里的shell命令是x86架构的,而开发板要的是ARM架构的。

二、根文件系统移植

具体步骤在实验12中。

BusyBox

BusyBox将很多常用的工具集成到一个很小的可执行文件中,为普通用户提供大多数常用的命令,BusyBox实现的命令都是精简版的,很多扩展都不支持。BusyBox被称为Linux工具里的瑞士军刀

BusyBox的获取

https://busybox.net/downloads/

用make命令编译后,得到busybox_unstripped文件,该文件进行瘦身后,得到busybox文件。

相关推荐
王俊山IT16 分钟前
C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(5)
开发语言·c++·笔记·学习
AndyFrank29 分钟前
mac crontab 不能使用问题简记
linux·运维·macos
筱源源1 小时前
Kafka-linux环境部署
linux·kafka
Mephisto.java1 小时前
【大数据学习 | kafka高级部分】kafka中的选举机制
大数据·学习·kafka
Yawesh_best1 小时前
思源笔记轻松连接本地Ollama大语言模型,开启AI写作新体验!
笔记·语言模型·ai写作
算法与编程之美1 小时前
文件的写入与读取
linux·运维·服务器
南宫生2 小时前
贪心算法习题其三【力扣】【算法学习day.20】
java·数据结构·学习·算法·leetcode·贪心算法
xianwu5432 小时前
反向代理模块
linux·开发语言·网络·git
Amelio_Ming2 小时前
Permissions 0755 for ‘/etc/ssh/ssh_host_rsa_key‘ are too open.问题解决
linux·运维·ssh
武子康3 小时前
大数据-212 数据挖掘 机器学习理论 - 无监督学习算法 KMeans 基本原理 簇内误差平方和
大数据·人工智能·学习·算法·机器学习·数据挖掘