Hi Philippe,
I have ran this series with the new Armbian 20.08 test and noticed this failure:
-console: /dev/mmcblk0p1: The filesystem size (according to the superrandom: fast init done
console: block) is 264192 blocks
console: The physical size of the device is 261120 blocks
console: Either the superblock or the partition table is likely to be corrupt!
console: /dev/mmcblk0p1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
console: (i.e., without -a or -p options)
console: fsck exited with status code 4
console: done.
console: Failure: File system check of the root filesystem failed
console: The root filesystem on /dev/mmcblk0p1 requires a manual fsck
|console: BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.2) built-in shell (ash)
console: Enter 'help' for a list of built-in commands.
INTERRUPTED: Test interrupted by SIGTERM\nRunner error occurred: Timeout reached\nOriginal status: ERROR\n{'name': '5-tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_bionic_20_08', 'logdir': '/home/fox/avocado/job-results/job-2020-10-24T22.25-39... (90.47 s)
When I run the image manually I get the same error, but only if I resize the 20.08 image to 2G. If resized to 4G, the
20.08 image boots fine.
Additionally, I noticed that the NetBSD 9.0 test has the same problem, even in current master (4c5b97bfd0dd54dc27717ae8d1cd10e14eef1430):
(5/5) tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_uboot_netbsd9: |console: U-Boot SPL 2020.01+dfsg-1 (Jan 08 2020 - 08:19:44 +0000)
console: DRAM: 1024 MiB
console: Failed to set core voltage! Can't set CPU frequency
/console: Trying to boot from MMC1
console: U-Boot 2020.01+dfsg-1 (Jan 08 2020 - 08:19:44 +0000) Allwinner Technology
...
console: Starting kernel ...
console: [ 1.0000000] NetBSD/evbarm (fdt) booting ...
...
console: [ 1.3300167] sdmmc0: SD card status: 4-bit, C0
console: [ 1.3300167] ld0 at sdmmc0: <0xaa:0x5859:QEMU!:0x01:0xdeadbeef:0x062>
console: [ 1.3430678] ld0: 1024 MB, 1040 cyl, 32 head, 63 sec, 512 bytes/sect x 2097152 sectors
console: [ 1.4102580] ld0: 4-bit width, High-Speed/SDR25, 50.000 MHz
console: [ 2.0674392] WARNING: 4 errors while detecting hardware; check system log.
console: [ 2.0674392] boot device: ld0
console: [ 2.0775401] root on ld0a dumps on ld0b
console: [ 2.0977679] vfs_mountroot: can't open root device
console: [ 2.0977679] cannot mount root, error = 6
INTERRUPTED: Test interrupted by SIGTERM\nRunner error occurred: Timeout reached\nOriginal status: ERROR\n{'name': '5-tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_arm_orangepi_uboot_netbsd9', 'l>
To resolve this error, I made a small patch that expands the SD image in both tests to the next power-of-two multiplied by 2:
diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
index b604cfe7da..40835904bb 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -35,11 +35,11 @@ def pow2ceil(x):
return 1 if x == 0 else 2**(x - 1).bit_length()
"""
-Expand file size to next power of 2
+Expand file size to next power of 2 or higher
"""
-def image_pow2ceil_expand(path):
+def image_pow2ceil_expand(path, multiply_factor = 1):
size = os.path.getsize(path)
- size_aligned = pow2ceil(size)
+ size_aligned = pow2ceil(size) * multiply_factor
if size != size_aligned:
with open(path, 'ab+') as fd:
fd.truncate(size_aligned)
@@ -850,7 +850,7 @@ class BootLinuxConsole(LinuxKernelTest):
image_path_xz = self.fetch_asset(image_url, asset_hash=image_hash,
algorithm='sha256')
image_path = archive.extract(image_path_xz, self.workdir)
- image_pow2ceil_expand(image_path)
+ image_pow2ceil_expand(image_path, 2)
self.do_test_arm_orangepi_uboot_armbian(image_path)
@@ -879,7 +879,7 @@ class BootLinuxConsole(LinuxKernelTest):
image_path_gz = self.fetch_asset(image_url, asset_hash=image_hash)
image_path = os.path.join(self.workdir, 'armv7.img')
archive.gzip_uncompress(image_path_gz, image_path)
- image_pow2ceil_expand(image_path)
+ image_pow2ceil_expand(image_path, 2)
image_drive_args = 'if=sd,format=raw,snapshot=on,file=' + image_path
# dd if=u-boot-sunxi-with-spl.bin of=armv7.img bs=1K seek=8 conv=notrunc
After applying that change, all Orange Pi tests run successfully:
$ AVOCADO_ALLOW_LARGE_STORAGE=yes ARMBIAN_ARTIFACTS_CACHED=yes avocado --show=app,console run -t machine:orangepi-pc tests/acceptance/boot_linux_console.py
...
RESULTS : PASS 6 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
JOB TIME : 161.69 s
I will send this as a separate patch to the list shortly, so you can consider adding it to the series (feel free to modify it where needed).
Regards,
Niek