mirror of
https://github.com/oSoWoSo/DistroHopper.git
synced 2024-08-14 22:46:53 +00:00
Check CPU capabilities, don't assume.
This commit is contained in:
parent
0a56dea565
commit
2fe80e1fe5
1 changed files with 26 additions and 8 deletions
34
quickemu
34
quickemu
|
@ -214,7 +214,19 @@ function vm_boot() {
|
||||||
HOST_CPU_VENDOR=$(lscpu | grep -E 'Vendor' | cut -d':' -f2 | sed 's/ //g')
|
HOST_CPU_VENDOR=$(lscpu | grep -E 'Vendor' | cut -d':' -f2 | sed 's/ //g')
|
||||||
HOST_CPU_SOCKETS=$(lscpu | grep -E 'Socket' | cut -d':' -f2 | sed 's/ //g')
|
HOST_CPU_SOCKETS=$(lscpu | grep -E 'Socket' | cut -d':' -f2 | sed 's/ //g')
|
||||||
|
|
||||||
#A CPU with Intel VT-x / AMD SVM support is required
|
# A CPU with Intel VT-x / AMD SVM support is required
|
||||||
|
if [ "${HOST_CPU_VENDOR}" == "AuthenticIntel" ]; then
|
||||||
|
if ! check_cpu_flag vmx; then
|
||||||
|
echo "ERROR! Intel VT-x support is required."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
elif [ "${HOST_CPU_VENDOR}" == "AuthenticAMD" ]; then
|
||||||
|
if ! check_cpu_flag svm; then
|
||||||
|
echo "ERROR! AMD SVM support is required."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "${cpu_cores}" ]; then
|
if [ -z "${cpu_cores}" ]; then
|
||||||
if [ "${HOST_CPU_CORES}" -ge 32 ]; then
|
if [ "${HOST_CPU_CORES}" -ge 32 ]; then
|
||||||
GUEST_CPU_CORES="16"
|
GUEST_CPU_CORES="16"
|
||||||
|
@ -282,14 +294,20 @@ function vm_boot() {
|
||||||
;;
|
;;
|
||||||
macos)
|
macos)
|
||||||
#https://www.nicksherlock.com/2020/06/installing-macos-big-sur-on-proxmox/
|
#https://www.nicksherlock.com/2020/06/installing-macos-big-sur-on-proxmox/
|
||||||
if [ "${HOST_CPU}" == "AuthenticIntel" ]; then
|
# A CPU with SSE4.1 support is required for >= macOS Sierra
|
||||||
CPU="-cpu host,kvm=on,vendor=GenuineIntel,+hypervisor,+invtsc,+kvm_pv_eoi,+kvm_pv_unhalt"
|
# A CPU with AVX2 support is required for >= macOS Mojave
|
||||||
elif [ "${HOST_CPU}" == "AuthenticAMD" ]; then
|
if check_cpu_flag sse4_1 && check_cpu_flag avx2; then
|
||||||
# CPU flags used in past Quickemu: +movbe,+smep,+xgetbv1,+xsavec
|
case ${HOST_CPU_VENDOR} in
|
||||||
# CPU flags that warn on AMD: +fma4,+pcid
|
AuthenticIntel)
|
||||||
CPU="-cpu Penryn,kvm=on,vendor=GenuineIntel,+aes,+avx,+avx2,+bmi1,+bmi2,+fma,+hypervisor,+invtsc,+kvm_pv_eoi,+kvm_pv_unhalt,+popcnt,+ssse3,+sse4.2,vmware-cpuid-freq=on,+xsave,+xsaveopt,check"
|
CPU="-cpu host,kvm=on,vendor=GenuineIntel,+hypervisor,+invtsc,+kvm_pv_eoi,+kvm_pv_unhalt";;
|
||||||
|
AuthenticAMD|*)
|
||||||
|
# Used in past versions: +movbe,+smep,+xgetbv1,+xsavec
|
||||||
|
# Warn on AMD: +fma4,+pcid
|
||||||
|
CPU="-cpu Penryn,kvm=on,vendor=GenuineIntel,+aes,+avx,+avx2,+bmi1,+bmi2,+fma,+hypervisor,+invtsc,+kvm_pv_eoi,+kvm_pv_unhalt,+popcnt,+ssse3,+sse4.2,vmware-cpuid-freq=on,+xsave,+xsaveopt,check";;
|
||||||
|
esac
|
||||||
else
|
else
|
||||||
CPU="-cpu Penryn,kvm=on,vendor=GenuineIntel,+aes,+avx,+avx2,+bmi1,+bmi2,+fma,+hypervisor,+invtsc,+kvm_pv_eoi,+kvm_pv_unhalt,+popcnt,+ssse3,+sse4.2,vmware-cpuid-freq=on,+xsave,+xsaveopt,check"
|
echo "ERROR! macOS requires a CPU with SSE 4.1 and AVX2 support."
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
OSK=$(echo "bheuneqjbexolgurfrjbeqfthneqrqcyrnfrqbagfgrny(p)NccyrPbzchgreVap" | tr 'A-Za-z' 'N-ZA-Mn-za-m')
|
OSK=$(echo "bheuneqjbexolgurfrjbeqfthneqrqcyrnfrqbagfgrny(p)NccyrPbzchgreVap" | tr 'A-Za-z' 'N-ZA-Mn-za-m')
|
||||||
GUEST_TWEAKS="-device isa-applesmc,osk=${OSK} -no-hpet -global kvm-pit.lost_tick_policy=discard"
|
GUEST_TWEAKS="-device isa-applesmc,osk=${OSK} -no-hpet -global kvm-pit.lost_tick_policy=discard"
|
||||||
|
|
Loading…
Reference in a new issue