所以我最近购买了基于君正SoC的RS-97游戏,它运行MIPS指令集。供应商含糊地提供了如何为目标 SoC 编译 Linux 内核的说明。因此,根据供应商说明和在线搜索,需要以下内容才能获得该平台的嵌入式 Linux 映像。
- 编译工具链(mipsel 用于基于 mips 的架构)
- 使用工具链使用给定的驱动程序/BSP 编译 Linux 内核
- 编译根文件系统 - Busybox 建议(不知道为什么)
- 为目标SoC编译uBoot
- 使用目标特定分区表对存储(例如 sd)进行分区
- 将整个图像闪存到 SD 中
那么问题是,为什么根文件系统与内核映像是分开的? busybox在生成文件系统中起什么作用?另外,如果 Linux 映像是在没有根文件系统的情况下编译的,如何将两者合并以使驱动程序位于根文件系统的 /sys 目录中?
答案1
这些都是非常大的问题,我将尽力简单地总结一下。
为什么根文件系统与内核映像分开?
内核映像是 kernel.org 提供的可执行文件(如果您愿意,您可以修改它,但大多数人不会),它为您的嵌入式 Linux 项目提供了框架。根文件系统是您的代码和配置所在的位置:内核加载根文件系统。
busybox在生成文件系统中起什么作用?
Busybox 是一个提供许多有用功能的应用程序,例如命令行界面、列出文件、列出进程、复制文件等。Busybox 的功能根据其命名方式而变化:您重命名该应用程序,它会执行不同的功能。这是一种将大量实用程序打包到小型文件系统中的非常有效的方法。
另外,如果 Linux 映像是在没有根文件系统的情况下编译的,如何将两者合并以使驱动程序位于根文件系统的 /sys 目录中
您可以向内核提供一些参数来告诉它在哪里可以找到其根文件系统。你要设置root
参数。看内核的命令行参数。