Bläddra i källkod

support/testing: test_ubi: allow to boot several times using the same ubi image.

Since the ubi/ubifs test has been introduced, it's not possible to
boot the same ubi image twice [1]:

"TODO: if you boot Qemu twice on the same UBI image, it fails to
attach the image the second time, with "ubi0 error:
ubi_read_volume_table: the layout volume was not found"."

For some reason, the kernel corrupt the ubi image if the ubifs
rootfs is mounted with write access. Use a custom config file
to mount the rootfs readonly (vol_type=static). Doing so requires
to add the flash size (vol_size=64MiB).

At least it allows to boot several times the same ubi image.

[1] bf4a6490e4ee70f0a46e588602995ba34e6c872a

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Romain Naour 3 år sedan
förälder
incheckning
e11c3cbe26

+ 4 - 5
support/testing/tests/fs/test_ubi.py

@@ -13,12 +13,11 @@ class TestUbi(infra.basetest.BRTest):
         BR2_TARGET_ROOTFS_UBI=y
         BR2_TARGET_ROOTFS_UBI_PEBSIZE=0x40000
         BR2_TARGET_ROOTFS_UBI_SUBSIZE=1
-        """
+        BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG=y
+        BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE="{}"
+        """.format(
+              infra.filepath("tests/fs/test_ubi/ubinize_qemu_pflash_cfi01.cfg"))
 
-    # TODO: if you boot Qemu twice on the same UBI image, it fails to
-    # attach the image the second time, with "ubi0 error:
-    # ubi_read_volume_table: the layout volume was not found".
-    # To be investigated.
     def test_run(self):
         img = os.path.join(self.builddir, "images", "rootfs.ubi")
         out = infra.run_cmd_on_host(self.builddir, ["file", img])

+ 8 - 0
support/testing/tests/fs/test_ubi/ubinize_qemu_pflash_cfi01.cfg

@@ -0,0 +1,8 @@
+[ubifs]
+mode=ubi
+vol_id=0
+vol_type=static
+vol_name=rootfs
+vol_alignment=1
+vol_size=64MiB
+image=BR2_ROOTFS_UBIFS_PATH