1#!/bin/bash 2 3set -ex -o pipefail 4 5serial_log="$(pwd)/smoke.serial" 6 7cd binaries 8 9mkdir rootfs 10cd rootfs 11tar xvf ../xen-image-minimal-qemuarm.rootfs.tar.bz2 12mkdir -p ./root 13echo "name=\"test\" 14memory=400 15vcpus=1 16kernel=\"/root/zImage\" 17ramdisk=\"/root/initrd.cpio.gz\" 18extra=\"console=hvc0 root=/dev/ram0 rdinit=/bin/sh\" 19" > root/test.cfg 20echo "#!/bin/bash 21 22xl list 23 24xl -vvv create -c /root/test.cfg 25 26" > ./root/xen.start 27echo "bash /root/xen.start" >> ./etc/init.d/xen-watchdog 28 29curl --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 30mkdir rootfs 31cd rootfs 32tar xvzf ../initrd.tar.gz 33find . | cpio -H newc -o | gzip > ../root/initrd.cpio.gz 34cd .. 35rm -rf rootfs 36rm initrd.tar.gz 37 38cp ../zImage ./root 39find . | cpio -H newc -o | gzip > ../initrd.gz 40cd .. 41 42# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded 43curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom 44./qemu-system-arm \ 45 -machine virt \ 46 -machine virtualization=true \ 47 -smp 4 \ 48 -m 2048 \ 49 -serial stdio \ 50 -monitor none \ 51 -display none \ 52 -machine dumpdtb=virt.dtb 53 54# XXX disable pci to avoid Linux hang 55fdtput virt.dtb -p -t s /pcie@10000000 status disabled 56 57# ImageBuilder 58echo 'MEMORY_START="0x40000000" 59MEMORY_END="0xC0000000" 60 61DEVICE_TREE="virt.dtb" 62XEN="xen-qemuarm" 63DOM0_KERNEL="zImage" 64DOM0_RAMDISK="initrd.gz" 65DOM0_CMD="console=hvc0 earlyprintk clk_ignore_unused root=/dev/ram0 rdinit=/sbin/init" 66XEN_CMD="console=dtuart dom0_mem=1024M bootscrub=0 console_timestamps=boot" 67 68NUM_DOMUS=0 69 70LOAD_CMD="tftpb" 71BOOT_CMD="bootz" 72UBOOT_SOURCE="boot.source" 73UBOOT_SCRIPT="boot.scr"' > config 74 75rm -rf imagebuilder 76git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git 77bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config 78 79rm -f ${serial_log} 80export TEST_CMD="./qemu-system-arm \ 81 -machine virt \ 82 -machine virtualization=true \ 83 -smp 4 \ 84 -m 2048 \ 85 -serial stdio \ 86 -monitor none \ 87 -display none \ 88 -no-reboot \ 89 -device virtio-net-pci,netdev=n0 \ 90 -netdev user,id=n0,tftp=./ \ 91 -bios /usr/lib/u-boot/qemu_arm/u-boot.bin" 92 93export UBOOT_CMD="virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000" 94export TEST_LOG="${serial_log}" 95export BOOT_MSG="Latest ChangeSet: " 96export LOG_MSG="Domain-0" 97export PASSED="/ #" 98 99../automation/scripts/console.exp | sed 's/\r\+$//' 100