]> git.ipfire.org Git - thirdparty/dracut.git/blame - test/run-qemu
ci: automate release generation
[thirdparty/dracut.git] / test / run-qemu
CommitLineData
ac6da96c 1#!/bin/bash
8a4b60d9
AT
2# Check which virtualization technology to use
3# We prefer kvm, kqemu, userspace in that order.
060e1f19 4
8b2afb08 5export PATH=/usr/sbin:/usr/bin:/sbin:/bin
3f56d481 6QEMU_CPU="${QEMU_CPU:-max}"
e5ccf5eb 7
3f56d481 8[[ -x /usr/bin/qemu ]] && BIN=/usr/bin/qemu && ARGS=(-cpu "$QEMU_CPU")
e010f455
HH
9(lsmod | grep -q '^kqemu ') && BIN=/usr/bin/qemu && ARGS=(-kernel-kqemu -cpu host)
10[[ -c /dev/kvm && -x /usr/bin/kvm ]] && BIN=/usr/bin/kvm && ARGS=(-cpu host)
11[[ -c /dev/kvm && -x /usr/bin/qemu-kvm ]] && BIN=/usr/bin/qemu-kvm && ARGS=(-cpu host)
12[[ -c /dev/kvm && -x /usr/libexec/qemu-kvm ]] && BIN=/usr/libexec/qemu-kvm && ARGS=(-cpu host)
3f56d481 13[[ -x /usr/bin/qemu-system-$(uname -m) ]] && BIN=/usr/bin/qemu-system-$(uname -m) && ARGS=(-cpu "$QEMU_CPU")
060e1f19 14[[ -c /dev/kvm && -x /usr/bin/qemu-system-$(uname -m) ]] && BIN=/usr/bin/qemu-system-$(uname -m) && ARGS=(-enable-kvm -cpu host)
8a4b60d9
AT
15
16[[ $BIN ]] || {
9a52c3fd
HH
17 echo "Could not find a working KVM or QEMU to test with!" >&2
18 echo "Please install kvm or qemu." >&2
19 exit 1
8a4b60d9 20}
87ae9688 21
a3f73298 22# Provide rng device sourcing the hosts /dev/urandom and other standard parameters
b80ee080 23ARGS+=(-M q35 -smp 2 -m 512 -nodefaults -vga none -display none -no-reboot -device virtio-rng-pci)
a3f73298 24
75d758e8 25if ! [[ $* == *-daemonize* ]] && ! [[ $* == *-daemonize* ]]; then
e010f455 26 ARGS+=(-serial stdio)
a3f73298 27fi
c226bfdd 28
87ae9688
HH
29KVERSION=${KVERSION-$(uname -r)}
30
97ff396a 31VMLINUZ="/lib/modules/${KVERSION}/vmlinuz"
87ae9688 32
97ff396a 33if ! [ -f "$VMLINUZ" ]; then
e010f455 34 [[ -f /etc/machine-id ]] && read -r MACHINE_ID < /etc/machine-id
97ff396a 35
e010f455 36 if [[ $MACHINE_ID ]] && { [[ -d /boot/${MACHINE_ID} ]] || [[ -L /boot/${MACHINE_ID} ]]; }; then
97ff396a
HH
37 VMLINUZ="/boot/${MACHINE_ID}/$KVERSION/linux"
38 else
39 VMLINUZ="/boot/vmlinuz-${KVERSION}"
40 fi
87ae9688
HH
41fi
42
ec2c7e1a
LG
43# only set -kernel if -initrd is specified
44if [[ $* == *-initrd* ]]; then
45 ARGS+=(-kernel "$VMLINUZ")
46fi
47
48exec "$BIN" "${ARGS[@]}" "$@"