automation: expand arm32 dom0 test adding xl domain creation

As part of the arm32 dom0 test, also create a simple domU using xl. To
do that, we need the toolstack installed in the dom0 rootfs. We switch
to using the kernel and rootfs built by the Yocto arm32 job.

Remove the PCI node from the host device tree: it is unused but causes a
Linux hang at boot.

Use xen-watchdog to trigger the domU creation for convience
(/etc/local.d is not handled by rootfs.)

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
This commit is contained in:
Stefano Stabellini committed 2023-02-27 13:20:19 -08:00
1 parent a0c3b87a76
commit 6342f96689
2 files changed
+40 -22

No files matched your search

+1 -9
View File
@@ -171,15 +171,7 @@ qemu-smoke-dom0-arm32-gcc:
- ./automation/scripts/qemu-smoke-dom0-arm32.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- debian-unstable-gcc-arm32
qemu-smoke-dom0-arm32-gcc-debug:
extends: .qemu-arm32
script:
- ./automation/scripts/qemu-smoke-dom0-arm32.sh 2>&1 | tee ${LOGFILE}
needs:
- *arm32-test-needs
- debian-unstable-gcc-arm32-debug
- yocto-qemuarm
qemu-smoke-dom0less-arm32-gcc:
extends: .qemu-arm32
+39 -13
View File
@@ -3,14 +3,37 @@
set -ex
cd binaries
# Use the kernel from Debian
curl --fail --silent --show-error --location --output vmlinuz http://http.us.debian.org/debian/dists/bullseye/main/installer-armhf/current/images/netboot/vmlinuz
# Use a tiny initrd based on busybox from Alpine Linux
curl --fail --silent --show-error --location --output initrd.tar.gz https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/armhf/alpine-minirootfs-3.15.1-armhf.tar.gz
mkdir rootfs
cd rootfs
tar xvf ../xen-image-minimal-qemuarm.tar.bz2
mkdir -p ./root
echo "name=\"test\"
memory=400
vcpus=1
kernel=\"/root/zImage\"
ramdisk=\"/root/initrd.cpio.gz\"
extra=\"console=hvc0 root=/dev/ram0 rdinit=/bin/sh\"
" > root/test.cfg
echo "#!/bin/bash
xl list
xl create -c /root/test.cfg
" > ./root/xen.start
echo "bash /root/xen.start" >> ./etc/init.d/xen-watchdog
curl --fail --silent --show-error --location --output initrd.tar.gz https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/armhf/alpine-minirootfs-3.15.1-armhf.tar.gz
mkdir rootfs
cd rootfs
tar xvzf ../initrd.tar.gz
find . | cpio -H newc -o | gzip > ../root/initrd.cpio.gz
cd ..
rm -rf rootfs
rm initrd.tar.gz
cp ../zImage ./root
find . | cpio -H newc -o | gzip > ../initrd.gz
cd ..
@@ -20,22 +43,25 @@ curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
-machine virt \
-machine virtualization=true \
-smp 4 \
-m 1024 \
-m 2048 \
-serial stdio \
-monitor none \
-display none \
-machine dumpdtb=virt.dtb
# XXX disable pci to avoid Linux hang
fdtput virt.dtb -p -t s /pcie@10000000 status disabled
# ImageBuilder
echo 'MEMORY_START="0x40000000"
MEMORY_END="0x80000000"
MEMORY_END="0xC0000000"
DEVICE_TREE="virt.dtb"
XEN="xen"
DOM0_KERNEL="vmlinuz"
XEN="xen-qemuarm"
DOM0_KERNEL="zImage"
DOM0_RAMDISK="initrd.gz"
DOM0_CMD="console=hvc0 earlyprintk clk_ignore_unused root=/dev/ram0 rdinit=/bin/sh"
XEN_CMD="console=dtuart dom0_mem=512M bootscrub=0"
DOM0_CMD="console=hvc0 earlyprintk clk_ignore_unused root=/dev/ram0 rdinit=/sbin/init"
XEN_CMD="console=dtuart dom0_mem=1024M bootscrub=0"
NUM_DOMUS=0
@@ -51,12 +77,12 @@ bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
rm -f smoke.serial
set +e
echo " virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"| \
timeout -k 1 240 \
timeout -k 1 720 \
./qemu-system-arm \
-machine virt \
-machine virtualization=true \
-smp 4 \
-m 1024 \
-m 2048 \
-serial stdio \
-monitor none \
-display none \
@@ -66,5 +92,5 @@ timeout -k 1 240 \
-bios /usr/lib/u-boot/qemu_arm/u-boot.bin |& tee smoke.serial
set -e
(grep -q "^/ #" smoke.serial) || exit 1
(grep -q "Domain-0" smoke.serial && grep -q "^/ #" smoke.serial) || exit 1
exit 0
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.