diff --git a/src/config.sh b/src/config.sh index 60e6c05..9725628 100644 --- a/src/config.sh +++ b/src/config.sh @@ -4,21 +4,29 @@ set -Eeuo pipefail KVM_ERR="" KVM_OPTS="" -if [ -e /dev/kvm ] && sh -c 'echo -n > /dev/kvm' &> /dev/null; then - if ! grep -q -e vmx -e svm /proc/cpuinfo; then - KVM_ERR="(vmx/svm disabled)" - fi -else - [ -e /dev/kvm ] && KVM_ERR="(no write access)" || KVM_ERR="(device file missing)" -fi +if [ "$ARCH" == "amd64" ]; then -if [ -n "$KVM_ERR" ]; then - if [ "$ARCH" == "amd64" ]; then + if [ -e /dev/kvm ] && sh -c 'echo -n > /dev/kvm' &> /dev/null; then + if ! grep -q -e vmx -e svm /proc/cpuinfo; then + KVM_ERR="(vmx/svm disabled)" + fi + else + [ -e /dev/kvm ] && KVM_ERR="(no write access)" || KVM_ERR="(device file missing)" + fi + + if [ -n "$KVM_ERR" ]; then error "KVM acceleration not detected $KVM_ERR, see the FAQ about this." [[ "$DEBUG" != [Yy1]* ]] && exit 88 + else + if [ "$CPU_MODEL" == "host" ]; then + if ! grep -qE '^flags.* (sse4_2)' /proc/cpuinfo; then + error "Your CPU does not have the SSE4.2 instruction set, which is required by DSM." + [[ "$DEBUG" != [Yy1]* ]] && exit 89 + fi + fi + KVM_OPTS=",accel=kvm -enable-kvm -cpu $CPU_MODEL" fi -else - KVM_OPTS=",accel=kvm -enable-kvm -cpu host" + fi DEF_OPTS="-nographic -nodefaults -boot strict=on -display none"