From 0ac3b66470711b6535281be4d3bc8ec7e260bdab Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Sun, 6 Oct 2019 15:15:16 -0400 Subject: qemu: moving toward nesting VMs --- src/qemu.sh | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'src/qemu.sh') diff --git a/src/qemu.sh b/src/qemu.sh index 8f365cb..2ae982d 100755 --- a/src/qemu.sh +++ b/src/qemu.sh @@ -64,8 +64,36 @@ if [ ! -e "$disk" ]; then fallocate -l 10GB "$disk" fi +if grep -q '^flags.*\' /proc/cpuinfo; then + kvm='-enable-kvm -cpu host' + read nested < /sys/module/kvm_intel/parameters/nested + if [ "$nested" != Y ]; then + printf '%s\n' \ + 'Warning: nested KVM is not available' \ + 'Try "make install-nested-kvm"' + fi +else + >&2 printf '%s\n' \ + '' \ + 'Warning: kernel virtual machine extensions (KVM) not available.' \ + 'The VM will be intolerably slow.' \ + 'If your hardware supports KVM, you need to enable it in the BIOS.' \ + '' \ + 'If you are trying to run qemu in a virtual machine, you need to append' \ + 'the kvm-(intel|amd) module parameter "nested=1" on the _host_ machine.' \ + 'Use "make install-nested-kvm" to do so.' \ + '' + kvm= +fi + +mem_total=$(grep MemTotal /proc/meminfo | (read _ kb _; echo $((kb / 1024)))) +use_mem=640 +if [ "$mem_total" -le $((use_mem * 2)) ]; then + use_mem=$((mem_total / 2)) +fi + set -x -sudo ${qemu} -enable-kvm -smp 2 -m 640 -k en-us \ +sudo ${qemu} ${kvm} -smp 2 -m ${use_mem} -k en-us \ -vga qxl \ -net nic,model=virtio,macaddr=$MAC \ ${USE_NET:+ -net "$NET"} \ -- cgit v1.2.3