diff --git a/quickemu b/quickemu index a3b99cd..65afb59 100755 --- a/quickemu +++ b/quickemu @@ -1,17 +1,17 @@ #!/usr/bin/env bash export LC_ALL=C -function ask_option_msrs() { - ignore_msrs=$(cat /sys/module/kvm/parameters/ignore_msrs) - if [ ${ignore_msrs} = "N" ]; then - while true ; do - read -p "Do you wish to set ignore_msrs now? (y/N)" msrs_response - case $msrs_response:0:1 in - [yY]* ) echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs; break;; - * ) break ;; - - esac - done +function ignore_msrs_always() { + # Make sure the host has /etc/modprobe.d + if [ -d /etc/modprobe.d ]; then + # Skip if already ignore_msrs is already enabled, assumes initramfs has been rebuilt + if grep -lq 'ignore_msrs=Y' /etc/modprobe.d/kvm-quickemu.conf >/dev/null 2>&1; then + echo "options kvm ignore_msrs=Y" | sudo tee /etc/modprobe.d/kvm-quickemu.conf + sudo update-initramfs -k all -u + fi + else + echo "ERROR! /etc/modprobe.d was not found, I don't know how to configure this system." + exit 1 fi } @@ -873,6 +873,7 @@ function usage() { echo "You can also pass optional parameters" echo " --delete : Delete the disk image." echo " --display : Select display backend. 'sdl' (default), 'gtk' or 'spice'" + echo " --ignore-msrs-always : Configure KVM to always ignore unhandle machine-specific registers" echo " --shortcut : Create a desktop shortcut" echo " --snapshot apply : Apply/restore a snapshot." echo " --snapshot create : Create a snapshot." @@ -976,6 +977,9 @@ else fi shift shift;; + -ignore-msrs-always|0-ignore-msrs-always) + ignore_msrs_always + exit;; -snapshot|--snapshot) SNAPSHOT_ACTION="${2}" if [ -z "${SNAPSHOT_ACTION}" ]; then