Hi Niek, On Sun, Oct 25, 2020 at 5:01 AM Niek Linnenbank <nieklinnenb...@gmail.com> wrote: > > 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
This command does not work for me. Traceback (most recent call last): File "/usr/local/bin/avocado", line 5, in <module> from avocado.core.main import main File "/usr/local/lib/python3.8/dist-packages/avocado/core/main.py", line 22, in <module> from avocado.core import data_dir File "/usr/local/lib/python3.8/dist-packages/avocado/core/data_dir.py", line 39, in <module> from .output import LOG_JOB, LOG_UI File "/usr/local/lib/python3.8/dist-packages/avocado/core/output.py", line 27, in <module> from .settings import settings File "/usr/local/lib/python3.8/dist-packages/avocado/core/settings.py", line 625, in <module> settings = Settings() # pylint: disable-msg=invalid-name File "/usr/local/lib/python3.8/dist-packages/avocado/core/settings.py", line 274, in __init__ self._prepare_base_dirs() File "/usr/local/lib/python3.8/dist-packages/avocado/core/settings.py", line 315, in _prepare_base_dirs self._config_path_pkg = resource_filename('avocado', config_pkg_base) File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1145, in resource_filename return get_provider(package_or_requirement).get_resource_filename( File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 365, in get_provider return _find_adapter(_provider_factories, loader)(module) File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1393, in __init__ self.module_path = os.path.dirname(getattr(module, '__file__', '')) File "/usr/lib/python3.8/posixpath.py", line 152, in dirname p = os.fspath(p) TypeError: expected str, bytes or os.PathLike object, not NoneType I haven't got a command to work on testing only a single target. Any hint? Thanks! > ... > 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, Bin