qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 18/19] tests/boot_linux_console: Boot Linux and run few comma


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH 18/19] tests/boot_linux_console: Boot Linux and run few commands on raspi3
Date: Wed, 9 Oct 2019 18:21:48 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.0

On 10/9/19 6:12 PM, Cleber Rosa wrote:
On Thu, Sep 26, 2019 at 07:34:26PM +0200, Philippe Mathieu-Daudé wrote:
Add a test which boots Linux and run basic commands using the serial
port console.

The kernel image is built by the Debian project:
https://wiki.debian.org/RaspberryPi

The DeviceTree blob comes from the official Raspberry Pi project:
https://www.raspberrypi.org/

The cpio image used comes from the linux-build-test project:
https://github.com/groeck/linux-build-test

This test can be run using:

   $ avocado run --show=console,app run -t machine:raspi3 tests/acceptance
   console: [    0.000000] Linux version 4.14.0-3-arm64 (address@hidden) (gcc 
version 7.2.0 (Debian 7.2.0-18)) #1 SMP Debian 4.14.12-2 (2018-01-06)
   console: [    0.000000] Boot CPU: AArch64 Processor [410fd034]
   console: [    0.000000] Machine model: Raspberry Pi 3 Model B
   console: [    0.000000] earlycon: pl11 at MMIO 0x000000003f201000 (options 
'')
   console: [    0.000000] bootconsole [pl11] enabled
   [...]
   console: Starting network: OK
   console: Found console ttyAMA0
   console: Boot successful.
   console: / # cat /proc/cpuinfo
   console: processor      : 0
   console: BogoMIPS       : 125.00
   console: r      : 0x41
   console: CPU architecture: 8
   console: CPU variant
   console: : 0x0
   console: CPU part       : 0xd03
   console: CPU revision   : 4
   console: / # uname -a
   console: Linux buildroot 4.14.0-3-arm64 #1 SMP Debian 4.14.12-2 (2018-01-06) 
aarch64 GNU/Linux
   console: reboot
   console: / # reboot
   console: / # Found console ttyAMA0
   console: Stopping network: OK
   console: Saving random seed... done.
   console: Stopping logging: OK
   console: umount: devtmpfs busy - remounted read-only
   console: umount: can't unmount /: Invalid argument
   console: The system is going down NOW!
   console: Sent SIGTERM to all processes
   console: Sent SIGKILL to all processes
   console: Requesting system reboot
   console: kvm: exiting hardware virtualization
   console: reboot: Restarting system
   PASS (11.08 s)

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
---
some chars are scrambled on the console...
---
  tests/acceptance/boot_linux_console.py | 47 ++++++++++++++++++++++++++
  1 file changed, 47 insertions(+)

diff --git a/tests/acceptance/boot_linux_console.py 
b/tests/acceptance/boot_linux_console.py
index 33e8f6c635..2a1a23763e 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -363,6 +363,53 @@ class BootLinuxConsole(Test):
          """
          self.do_test_arm_raspi2(1)
+ def test_arm_raspi3_initrd_uart0(self):
+        """
+        :avocado: tags=arch:aarch64
+        :avocado: tags=machine:raspi3
+        """
+        deb_url = ('https://snapshot.debian.org/archive/debian/'
+                   '20180106T174014Z/pool/main/l/linux/'
+                   'linux-image-4.14.0-3-arm64_4.14.12-2_arm64.deb')
+        deb_hash = 'e71c995de57921921895c1162baea5df527d1c6b'
+        deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
+        kernel_path = self.extract_from_deb(deb_path,
+                                            '/boot/vmlinuz-4.14.0-3-arm64')
+
+        dtb_url = ('https://github.com/raspberrypi/firmware/raw/'
+                   '1.20180313/boot/bcm2710-rpi-3-b.dtb')
+        dtb_hash = 'eb14d67133401ef2f93523be7341456d38bfc077'
+        dtb_path = self.fetch_asset(dtb_url, asset_hash=dtb_hash)
+
+        initrd_url = ('https://github.com/groeck/linux-build-test/raw/'
+                      '9b6b392ea7bc15f0d6632328d429d31c9c6273da/rootfs/'
+                      'arm64/rootfs.cpio.gz')
+        initrd_hash = '6fd05324f17bb950196b5ad9d3a0fa996339f4cd'
+        initrd_path_gz = self.fetch_asset(initrd_url, asset_hash=initrd_hash)
+        initrd_path = self.workdir + "rootfs.cpio"
+        gunzip(initrd_path_gz, initrd_path)
+
+        self.vm.set_machine('raspi3')
+        self.vm.set_console()
+        kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
+                               'earlycon=pl011,0x3f201000 console=ttyAMA0 ' +
+                               'panic=-1 noreboot')
+        self.vm.add_args('-kernel', kernel_path,
+                         '-dtb', dtb_path,
+                         '-initrd', initrd_path,
+                         '-append', kernel_command_line,
+                         '-no-reboot')
+        self.vm.launch()
+
+        self.wait_for_console_pattern('Boot successful.')
+
+        self.exec_command_and_wait_for_pattern('cat /proc/cpuinfo',
+                                               'BogoMIPS')
+        self.exec_command_and_wait_for_pattern('uname -a',
+                                               'Debian')
+        self.exec_command_and_wait_for_pattern('reboot',
+                                               'reboot: Restarting system')
+
      def test_s390x_s390_ccw_virtio(self):
          """
          :avocado: tags=arch:s390x
--
2.20.1


Reviewed-by: Cleber Rosa <address@hidden>

And even though you mentioned some trouble with the console, I've run
this 100 times and had no issues that disturbed the test, so:

Ahaha thanks for insisting :)

I ran the Exynos4210 test 20 times and it did not fail, I'll try 80 more times.


Tested-by: Cleber Rosa <address@hidden>

Thanks!



reply via email to

[Prev in Thread] Current Thread [Next in Thread]