]>
Commit | Line | Data |
---|---|---|
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 | 5 | export PATH=/usr/sbin:/usr/bin:/sbin:/bin |
3f56d481 | 6 | QEMU_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 | 23 | ARGS+=(-M q35 -smp 2 -m 512 -nodefaults -vga none -display none -no-reboot -device virtio-rng-pci) |
a3f73298 | 24 | |
75d758e8 | 25 | if ! [[ $* == *-daemonize* ]] && ! [[ $* == *-daemonize* ]]; then |
e010f455 | 26 | ARGS+=(-serial stdio) |
a3f73298 | 27 | fi |
c226bfdd | 28 | |
87ae9688 HH |
29 | KVERSION=${KVERSION-$(uname -r)} |
30 | ||
97ff396a | 31 | VMLINUZ="/lib/modules/${KVERSION}/vmlinuz" |
87ae9688 | 32 | |
97ff396a | 33 | if ! [ -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 |
41 | fi |
42 | ||
ec2c7e1a LG |
43 | # only set -kernel if -initrd is specified |
44 | if [[ $* == *-initrd* ]]; then | |
45 | ARGS+=(-kernel "$VMLINUZ") | |
46 | fi | |
47 | ||
48 | exec "$BIN" "${ARGS[@]}" "$@" |