From 06f210846cb2fff3e586ef41b34bf4c258f54bbc Mon Sep 17 00:00:00 2001 From: Kroese Date: Wed, 27 Dec 2023 16:28:24 +0100 Subject: [PATCH] fix: KVM flag (#504) --- src/cpu.sh | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/cpu.sh b/src/cpu.sh index 0c30faa..bc8137e 100644 --- a/src/cpu.sh +++ b/src/cpu.sh @@ -7,10 +7,11 @@ set -Eeuo pipefail : ${CPU_MODEL:='host'} : ${CPU_FEATURES:='+ssse3,+sse4.1,+sse4.2'} -KVM_ERR="" -KVM_OPTS="" +[ "$ARCH" != "amd64" ] && KVM="N" -if [[ "$ARCH" == "amd64" && "$KVM" != [Nn]* ]]; then +if [[ "$KVM" != [Nn]* ]]; then + + KVM_ERR="" if [ -e /dev/kvm ] && sh -c 'echo -n > /dev/kvm' &> /dev/null; then if ! grep -q -e vmx -e svm /proc/cpuinfo; then @@ -21,24 +22,28 @@ if [[ "$ARCH" == "amd64" && "$KVM" != [Nn]* ]]; then fi if [ -n "$KVM_ERR" ]; then + KVM="N" error "KVM acceleration not detected $KVM_ERR, this will cause a major loss of performance." - error "See the FAQ on how to enable it, or skip this error by setting KVM=N (not recommended)." + error "See the FAQ on how to enable it, or continue without KVM by setting KVM=N (not recommended)." [[ "$DEBUG" != [Yy1]* ]] && exit 88 - [[ "$CPU_MODEL" == "host"* ]] && CPU_MODEL="max,$CPU_FEATURES" - else - KVM_OPTS=",accel=kvm -enable-kvm" fi - if [ -n "$KVM_OPTS" ]; then - if ! grep -qE '^flags.* (sse4_2)' /proc/cpuinfo; then - error "Your host CPU does not have the SSE4.2 instruction set that Virtual DSM requires to boot." - error "Disable KVM by setting KVM=N to emulate a compatible CPU, at the cost of performance." - [[ "$DEBUG" != [Yy1]* ]] && exit 89 - fi +fi + +if [[ "$KVM" != [Nn]* ]]; then + + KVM_OPTS=",accel=kvm -enable-kvm" + + if ! grep -qE '^flags.* (sse4_2)' /proc/cpuinfo; then + error "Your host CPU does not have the SSE4.2 instruction set that Virtual DSM requires to boot." + error "Disable KVM by setting KVM=N to emulate a compatible CPU, at the cost of performance." + [[ "$DEBUG" != [Yy1]* ]] && exit 89 fi else + KVM_OPTS="" + if [[ "$CPU_MODEL" == "host"* ]]; then if [[ "$ARCH" == "amd64" ]]; then CPU_MODEL="max,$CPU_FEATURES"