Android 内核编译 - 文件

标签 android linux compilation filesystems kernel

祝你有美好的一天。我刚刚开始学习和使用 Android 内核开发或内部结构。我在网上购买了一 block 使用 AM3359 - TI 处理器的开发板。与工厂镜像配合良好,我从 SD_CARD 启动。

后来我阅读了文档并尝试编译内核。一切都如预期般顺利。我确实有一些关于创建的文件的问题想澄清。

文档中有一个部分要求我创建一个根文件系统,该系统为我提供了一个名为 ubi.img 的文件 - 这个文件是什么?

后来我被要求创建一个 tarball 文件,提供根路径,该文件为我创建了另一个文件 rootfs.tar.bz2 - 这个文件是什么?

我的问题是...这两个文件都使用 rootfs 目录中的文件来创建这些文件。这些文件有什么用? ubi.img 到底有什么作用以及它的用途是什么?如果我从 SD_CARD 启动,它是否用于将其刷新到 nand 并且 rootfs.tar.bz2 用于启动???

感谢和问候

最佳答案

我对 AM3359 - TI 处理器了解不多,但在大多数智能手机以及 Linux 内核中都需要一个 ramdisk,该 ramdisk 通常被压缩,主要是一个 .gz 文件。 根据我的经验,当文件被解压缩时,通常它包含硬件初始化例程,内核在启动期间首先运行这些例程。 .img 文件是存储所有内容的地方。

最常见的是: BOOT.img - 只读包含 ramdisk 和 rootfs 通常是 zImage + rootfs.tar.bz2

System.img - 虽然可以重新挂载为读+写,但也是只读的 包含 操作系统文件,例如 su、busybox 等二进制文件。

Userdata.img - 这是存储所有用户数据和设置的位置。

以上是系统启动和运行所需的全部内容。但是我们可能还有其他的,例如 Uboot.img Preloader 等,它根据平台的不同而有所不同。

关于Android 内核编译 - 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27521066/

相关文章:

emacs - 如何自动(重新)编译 ELPA 包?

java - <identifier> 预期 & .class 预期 java

c - 验证枚举的所有设置值是否不同

android - 从脚本加载不同的查看器配置文件

android - android有多少种context,用什么比较好

android - 文件的父目录不可写

android - 为什么我不能将 AndroidJUnit4 和 ActivityTestRule 导入我的单元测试类?

linux - 取反数 : what is the fastest operation? 使用位运算还是使用 if 语句?

linux - Bash/SH,相同的命令不同的输出?

C# + 单声道 : Error while running Azure-Storage SDK