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 On Fri, Oct 23, 2020 at 3:18 PM Philippe Mathieu-Daudé <f4...@amsat.org> wrote: > Test U-Boot and Linux on the recent Armbian release 20.08. > > Suggested-by: Cleber Rosa <cr...@redhat.com> > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> > --- > tests/acceptance/boot_linux_console.py | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/tests/acceptance/boot_linux_console.py > b/tests/acceptance/boot_linux_console.py > index 803b4512a26..b604cfe7dab 100644 > --- a/tests/acceptance/boot_linux_console.py > +++ b/tests/acceptance/boot_linux_console.py > @@ -829,6 +829,31 @@ def test_arm_orangepi_bionic_19_11(self): > > self.do_test_arm_orangepi_uboot_armbian(image_path) > > + @skipUnless(os.getenv('ARMBIAN_ARTIFACTS_CACHED'), > + 'Test artifacts fetched from unreliable apt.armbian.com') > + @skipUnless(os.getenv('AVOCADO_ALLOW_LARGE_STORAGE'), 'storage > limited') > + def test_arm_orangepi_bionic_20_08(self): > + """ > + :avocado: tags=arch:arm > + :avocado: tags=machine:orangepi-pc > + :avocado: tags=device:sd > + """ > + > + # This test download a 275 MiB compressed image and expand it > + # to 1036 MiB, but the underlying filesystem is 1552 MiB... > + # As we expand it to 2 GiB we are safe. > + > + image_url = ('https://dl.armbian.com/orangepipc/archive/' > + > 'Armbian_20.08.1_Orangepipc_bionic_current_5.8.5.img.xz') > + image_hash = ('b4d6775f5673486329e45a0586bf06b6' > + 'dbe792199fd182ac6b9c7bb6c7d3e6dd') > + 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) > + > + self.do_test_arm_orangepi_uboot_armbian(image_path) > + > @skipUnless(os.getenv('AVOCADO_ALLOW_LARGE_STORAGE'), 'storage > limited') > def test_arm_orangepi_uboot_netbsd9(self): > """ > -- > 2.26.2 > > -- Niek Linnenbank