我想在Android模拟器(avd-Nexus 5)上测试自定义ubifs文件系统的功能。我已经编译并部署了一个支持ubifs的金鱼内核(3.4)。但没有找到将ubifs挂载到模拟器上的正确步骤。我尝试过使用adb的mount命令,但没有用。关于如何进行的任何想法?或者如果你有想法将ubifs安装到真正的Nexus 5设备上,请分享。
提前致谢..
答案 0 :(得分: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 作为模块;将 ubi , ubifs 和 mtd 作为模块可能会有所帮助。至少上述命令适用于Debian / Ubuntu系统,以验证 UbiFs 图像以及诊断损坏的图像。可能会有一些Android simulator specific way来创建模块。或者,您可以将 nand_sim 构建到内核中,并为其创建一个虚拟闪存设备参数。
有关更多信息和资源,请参阅UBI Wiki entry。至少所给出的概念应该让你走上正确的道路。
注意: ubi.img 将使用 erase block 等 flash参数创建 ubi.img 。这是NAND设备的属性。您需要为与测试图像匹配的设备提供 nand_sim 参数。 Linux内核文件nand_ids.c具有 first_id_byte , second_id_byte 等可接受值的表。有一个NAND硬件命令 id flash nand_sim 将模拟以创建正确的NAND几何。第一个字节是制造商ID 。 Ref:UbiFs on nand_sim 。