从编译嵌入式Linux内核到生成目标平台镜像

从编译嵌入式Linux内核到生成目标平台镜像

所以我最近购买了基于君正SoC的RS-97游戏,它运行MIPS指令集。供应商含糊地提供了如何为目标 SoC 编译 Linux 内核的说明。因此,根据供应商说明和在线搜索,需要以下内容才能获得该平台的嵌入式 Linux 映像。

  1. 编译工具链(mipsel 用于基于 mips 的架构)
  2. 使用工具链使用给定的驱动程序/BSP 编译 Linux 内核
  3. 编译根文件系统 - Busybox 建议(不知道为什么)
  4. 为目标SoC编译uBoot
  5. 使用目标特定分区表对存储(例如 sd)进行分区
  6. 将整个图像闪存到 SD 中

那么问题是,为什么根文件系统与内核映像是分开的? busybox在生成文件系统中起什么作用?另外,如果 Linux 映像是在没有根文件系统的情况下编译的,如何将两者合并以使驱动程序位于根文件系统的 /sys 目录中?

答案1

这些都是非常大的问题,我将尽力简单地总结一下。

为什么根文件系统与内核映像分开?

内核映像是 kernel.org 提供的可执行文件(如果您愿意,您可以修改它,但大多数人不会),它为您的嵌入式 Linux 项目提供了框架。根文件系统是您的代码和配置所在的位置:内核加载根文件系统。

busybox在生成文件系统中起什么作用?

Busybox 是一个提供许多有用功能的应用程序,例如命令行界面、列出文件、列出进程、复制文件等。Busybox 的功能根据其命名方式而变化:您重命名该应用程序,它会执行不同的功能。这是一种将大量实用程序打包到小型文件系统中的非常有效的方法。

另外,如果 Linux 映像是在没有根文件系统的情况下编译的,如何将两者合并以使驱动程序位于根文件系统的 /sys 目录中

您可以向内核提供一些参数来告诉它在哪里可以找到其根文件系统。你要设置root参数。看内核的命令行参数

相关内容