From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7049816425107554304 X-Received: by 2002:ac2:41c8:: with SMTP id d8mr7194238lfi.449.1641990989963; Wed, 12 Jan 2022 04:36:29 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a19:6e44:: with SMTP id q4ls3024910lfk.3.gmail; Wed, 12 Jan 2022 04:36:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJwfRlQVFZHWuPQJVWE88Q5nlyNzukiQgQo/M+fJDbJEQJemVIEtEldviXLxRAJ2kbzEeK5f X-Received: by 2002:a05:6512:32c1:: with SMTP id f1mr7078777lfg.42.1641990989029; Wed, 12 Jan 2022 04:36:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1641990989; cv=none; d=google.com; s=arc-20160816; b=g7IvtvUuHrldDjkoFF1KHy9uqkIDj38Wux/EfBwJ6Cm4gFLY/IrlDpCrLMgMfzcXpv p5TuwZx3bHIPdTl5XJBhMbd95oHXVDmKEhWFjjOPPEXecpF/GFqgz7+0xKe7l7HfZ/UC 5f2kytH0JfYudQZeoxDKlGZl8gY85IZAydXAai1yG2r1kq2I32r8mcfztmYJCjZF+Gk8 AllqYig85oQ4198bYFo25X1hQZjaD8qTfwTO4Y6hd5OsKMpNHF22SKZ3U3fIpeqt7sDf 8ot4IXbEBT/WBh/546rH35u7YdDB1kdJnkAXKSDpk0CeqisclptI4DxfpVfUYvlRU809 M7MQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:to:subject; bh=Jed19Jn6bt76Y3eFENvC7XgXtP/Pg1sqkCntzOgK/e0=; b=TgUgFhU3MSSfXApBtoTpYf3Mrm/sb9GXO8c34Mo4ERG8W2PeYSq3E5aikroKAjPXq+ AyPcVmeo9UvoHRxDPi1CtXn5FULcQmE0u6B00CYrvyat21xEusYyDzQYPYa8NhRyndnO KVRlo9e2MLeD45OXQPwJMh6ndg4GTMD0668OQTskPx59BH5crWweebqG4f3GNbvOLbNB D6eXBOnqnpZxYLSUzW47DSef4lLNNJOwQQCF/ikX9t52yM+uVfXoJFYGeLcP9qtD/jgw UVNss0Oct3VE9ZJCUTdBpBa1BbCajkksYYcrUVAXOksWc9NmYmsOxvlyACcJrFoZIrPL KTDw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id v18si68920ljb.6.2022.01.12.04.36.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 12 Jan 2022 04:36:28 -0800 (PST) Received-SPF: pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Received: from [127.0.0.1] (host-80-81-17-52.static.customer.m-online.net [80.81.17.52]) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id 20CCaQt1027772 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 12 Jan 2022 13:36:27 +0100 Subject: Re: [RFC: PATCH: needs rebase] ci: run qemuarm64 test booting with efi To: Henning Schild , isar-users@googlegroups.com References: <20220105200801.15240-1-henning.schild@siemens.com> <20220105211143.02d33688@md1za8fc.ad001.siemens.net> From: Anton Mikanovich Message-ID: Date: Wed, 12 Jan 2022 15:36:26 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 In-Reply-To: <20220105211143.02d33688@md1za8fc.ad001.siemens.net> Content-Type: multipart/alternative; boundary="------------7BF980309E73227280DC9097" Content-Language: en-US X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,HTML_MESSAGE autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: bal8KGKLTNaJ This is a multi-part message in MIME format. --------------7BF980309E73227280DC9097 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit 05.01.2022 23:11, Henning Schild wrote: > This is something that used to work well. It has value because it shows > how to use UEFI booting on aarch64. > > I held this back because of the avocado switch and now i have a really > hard time to apply it again. > > Maybe that whole story of fetching stuff with curl and storing it > somewhere is wrong, and in avocado is would probably have to look a bit > different. > > But if you guys agree that there is value, maybe we can work on that > together to make it avocado-ready and write the curl bits in python. > > regards, > Henning > > Am Wed, 5 Jan 2022 21:08:01 +0100 > schrieb Henning Schild : > >> Signed-off-by: Henning Schild >> --- >> meta-isar/conf/machine/qemuarm64.conf | 9 ++++----- >> scripts/vm_smoke_test | 17 +++++++++++++++++ >> 2 files changed, 21 insertions(+), 5 deletions(-) >> >> diff --git a/meta-isar/conf/machine/qemuarm64.conf >> b/meta-isar/conf/machine/qemuarm64.conf index >> e5e762fff614..bec5a98cf43e 100644 --- >> a/meta-isar/conf/machine/qemuarm64.conf +++ >> b/meta-isar/conf/machine/qemuarm64.conf @@ -6,15 +6,14 @@ DISTRO_ARCH >> ?= "arm64" KERNEL_NAME ?= "arm64" >> KERNEL_NAME_ubuntu-focal ?= "generic" >> >> -IMAGE_TYPE ?= "ext4-img" >> - >> -QEMU_ROOTFS_DEV ?= "vda" >> +IMAGE_TYPE ?= "wic-img" >> +WKS_FILE ?= "sdimage-efi" >> +IMAGER_INSTALL += "${GRUB_BOOTLOADER_INSTALL}" >> >> QEMU_ARCH ?= "aarch64" >> QEMU_MACHINE ?= "virt" >> QEMU_CPU ?= "cortex-a57" >> -# TODO: start_vm doesn't support multiline vars >> -QEMU_DISK_ARGS ?= "-drive >> file=##ROOTFS_IMAGE##,if=none,format=raw,id=hd0 -device >> virtio-blk-device,drive=hd0" +QEMU_DISK_ARGS ?= "-drive >> file=##ROOTFS_IMAGE##,if=none,format=raw,id=hd0 -device >> virtio-blk-device,drive=hd0 -pflash ~/.cache/isar-tests/QEMU_EFI.img" >> MACHINE_SERIAL ?= "ttyAMA0" BAUDRATE_TTY ?= "115200" diff --git >> a/scripts/vm_smoke_test b/scripts/vm_smoke_test index >> ce082137fe9b..b0390ee497d1 100755 --- a/scripts/vm_smoke_test >> +++ b/scripts/vm_smoke_test >> @@ -15,6 +15,22 @@ ES_BUG=3 >> >> RET=$ES_OK >> >> +get_arm64_qemu_efi() { >> + >> SHA256SUM="07b45bba7eb60eaeb79d798f6648bd262cdc6ad39d8f48f73a5f9c8f4885377c" >> + mkdir -p ~/.cache/isar-tests/ >> + cd ~/.cache/isar-tests/ >> + echo "$SHA256SUM QEMU_EFI.img" > QEMU_EFI.img.sha256 >> + if ! sha256sum -c QEMU_EFI.img.sha256 > /dev/null 2>&1; then >> + # cache miss or update >> + curl >> http://releases.linaro.org/components/kernel/uefi-linaro/latest/release/qemu64/QEMU_EFI.img.gz >> -L | zcat > QEMU_EFI.img >> + if ! sha256sum -c QEMU_EFI.img.sha256 > /dev/null 2>&1; then >> + echo "FAIL: could not fetch QEMU_EFI.img" >> + # no need to set RET or FAIL, qemu will get unhappy >> + fi >> + fi >> + cd - >> +} >> + >> dump_boot_log() { >> echo "Boot log:\n8<--" >> cat $CONSOLE_OUTPUT >> @@ -163,6 +179,7 @@ if [ -z "$FAST_BUILD" ]; then >> fi >> >> # ARM64 machine >> +get_arm64_qemu_efi >> run_test arm64 stretch >> >> exit $RET Maybe it's better to use avocado.utils.download.get_file API for the download? It's already has caching and hash checking and can retry on network fails. Or maybe we even build it inside Isar? I also propose not to place any files inside user's home but use build folder instead. It can be more preferred for keeping build system clean. --------------7BF980309E73227280DC9097 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 7bit
05.01.2022 23:11, Henning Schild wrote:
This is something that used to work well. It has value because it shows
how to use UEFI booting on aarch64.

I held this back because of the avocado switch and now i have a really
hard time to apply it again.

Maybe that whole story of fetching stuff with curl and storing it
somewhere is wrong, and in avocado is would probably have to look a bit
different.

But if you guys agree that there is value, maybe we can work on that
together to make it avocado-ready and write the curl bits in python.

regards,
Henning

Am Wed, 5 Jan 2022 21:08:01 +0100
schrieb Henning Schild <henning.schild@siemens.com>:

Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
 meta-isar/conf/machine/qemuarm64.conf |  9 ++++-----
 scripts/vm_smoke_test                 | 17 +++++++++++++++++
 2 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/meta-isar/conf/machine/qemuarm64.conf
b/meta-isar/conf/machine/qemuarm64.conf index
e5e762fff614..bec5a98cf43e 100644 ---
a/meta-isar/conf/machine/qemuarm64.conf +++
b/meta-isar/conf/machine/qemuarm64.conf @@ -6,15 +6,14 @@ DISTRO_ARCH
?= "arm64" KERNEL_NAME ?= "arm64"
 KERNEL_NAME_ubuntu-focal ?= "generic"
 
-IMAGE_TYPE ?= "ext4-img"
-
-QEMU_ROOTFS_DEV ?= "vda"
+IMAGE_TYPE ?= "wic-img"
+WKS_FILE ?= "sdimage-efi"
+IMAGER_INSTALL += "${GRUB_BOOTLOADER_INSTALL}"
 
 QEMU_ARCH ?= "aarch64"
 QEMU_MACHINE ?= "virt"
 QEMU_CPU ?= "cortex-a57"
-# TODO: start_vm doesn't support multiline vars
-QEMU_DISK_ARGS ?= "-drive
file=##ROOTFS_IMAGE##,if=none,format=raw,id=hd0 -device
virtio-blk-device,drive=hd0" +QEMU_DISK_ARGS ?= "-drive
file=##ROOTFS_IMAGE##,if=none,format=raw,id=hd0 -device
virtio-blk-device,drive=hd0 -pflash ~/.cache/isar-tests/QEMU_EFI.img"
MACHINE_SERIAL ?= "ttyAMA0" BAUDRATE_TTY ?= "115200" diff --git
a/scripts/vm_smoke_test b/scripts/vm_smoke_test index
ce082137fe9b..b0390ee497d1 100755 --- a/scripts/vm_smoke_test
+++ b/scripts/vm_smoke_test
@@ -15,6 +15,22 @@ ES_BUG=3
 
 RET=$ES_OK
 
+get_arm64_qemu_efi() {
+
SHA256SUM="07b45bba7eb60eaeb79d798f6648bd262cdc6ad39d8f48f73a5f9c8f4885377c"
+    mkdir -p ~/.cache/isar-tests/
+    cd ~/.cache/isar-tests/
+    echo "$SHA256SUM QEMU_EFI.img" > QEMU_EFI.img.sha256
+    if ! sha256sum -c QEMU_EFI.img.sha256 > /dev/null 2>&1; then
+        # cache miss or update
+	curl
http://releases.linaro.org/components/kernel/uefi-linaro/latest/release/qemu64/QEMU_EFI.img.gz
-L | zcat > QEMU_EFI.img
+	if ! sha256sum -c QEMU_EFI.img.sha256 > /dev/null 2>&1; then
+		echo "FAIL: could not fetch QEMU_EFI.img"
+		# no need to set RET or FAIL, qemu will get unhappy
+	fi
+    fi
+    cd -
+}
+
 dump_boot_log() {
     echo "Boot log:\n8<--"
     cat $CONSOLE_OUTPUT
@@ -163,6 +179,7 @@ if [ -z "$FAST_BUILD" ]; then
 fi
 
 # ARM64 machine
+get_arm64_qemu_efi
 run_test arm64 stretch
 
 exit $RET

Maybe it's better to use avocado.utils.download.get_file API for the download?
It's already has caching and hash checking and can retry on network fails.

Or maybe we even build it inside Isar?

I also propose not to place any files inside user's home but use build folder instead.
It can be more preferred for keeping build system clean.

--------------7BF980309E73227280DC9097--