0

我想在 android 模拟器 (avd- Nexus 5) 上测试自定义 ubifs 文件系统的功能。我已经编译并部署了一个支持 ubifs 的金鱼内核(3.4)。但没有找到将 ubifs 安装到模拟器上的正确步骤。我尝试过使用 adb 的 mount 命令,但没有用。关于如何进行的任何想法?或者,如果您想将 ubifs 安装到真正的 Nexus 5 设备上,请分享。

提前致谢..

4

1 回答 1

0

UbiFs需要UBI才能工作。 UBI反过来需要闪存设备或 MTD(内存技术设备)。为了挂载它,您可以使用nand_sim驱动程序。以下是一些设置UbiFs文件系统的命令,

# nandsim emulating Micron 3.3V 256MiB, 2048 bytes page.
modprobe nandsim first_id_byte=0x2c second_id_byte=0xda third_id_byte=0x90 \
  fourth_id_byte=0x95
flash_erase /dev/mtd0 0 0
ubiformat /dev/mtd0
modprobe ubi mtd=0
ubiupdatevol /dev/ubi0_0 ubi.img
mount -t ubifs -o ro /dev/ubi0_0 /mnt/ubifs

这需要将nand_sim作为一个模块;将ubiubifsmtd作为模块可能会有所帮助。至少上述命令可以在 Debian/Ubuntu 系统上验证UbiFs映像以及诊断损坏的映像。可能会有一些Android 模拟器特定的方式来创建模块。或者,您可以将nand_sim构建到内核中并为其提供参数以创建虚拟闪存设备。

有关更多信息和资源,请参阅UBI Wiki 条目。至少给出的概念应该让你走上正确的道路。

注意:您的 ubi.img将使用一些闪存参数(例如擦除块大小)创建。这是 NAND 设备的属性。您需要为与您的测试图像匹配的设备提供nand_sim参数。Linux 内核文件nand_ids.c具有可接受的first_id_bytesecond_id_byte 等值的表。有一个 NAND 硬件命令来识别闪存nand_sim将模拟该命令以创建正确的 NAND 几何结构。第一个字节是制造商 ID参考:nand_sim 上的 UbiFs

于 2014-06-05T14:55:51.377 回答