祝你有美好的一天。我刚刚开始学习和使用 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/