@ -228,6 +228,7 @@ function vm_boot() {
local KERNEL_NODE=""
local KERNEL_NODE=""
local KERNEL_VER="?"
local KERNEL_VER="?"
local LSB_DESCRIPTION="Unknown OS"
local LSB_DESCRIPTION="Unknown OS"
local MACHINETYPE="q35"
local MAC_BOOTLOADER=""
local MAC_BOOTLOADER=""
local MAC_MISSING=""
local MAC_MISSING=""
local MAC_DISK_DEV="ide-hd,bus=ahci.2"
local MAC_DISK_DEV="ide-hd,bus=ahci.2"
@ -451,7 +452,7 @@ function vm_boot() {
# Make any OS specific adjustments
# Make any OS specific adjustments
case ${guest_os} in
case ${guest_os} in
freebsd|kolibrios| linux|openbsd)
freebsd|linux|openbsd)
CPU="-cpu host,kvm=on"
CPU="-cpu host,kvm=on"
if [ "${HOST_CPU_VENDOR}" == "AuthenticAMD" ]; then
if [ "${HOST_CPU_VENDOR}" == "AuthenticAMD" ]; then
CPU="${CPU},topoext"
CPU="${CPU},topoext"
@ -463,6 +464,18 @@ function vm_boot() {
disk_size="16G"
disk_size="16G"
fi
fi
;;
;;
kolibrios)
CPU="-cpu qemu32,kvm=on"
if [ "${HOST_CPU_VENDOR}" == "AuthenticAMD" ]; then
CPU="${CPU},topoext"
fi
MACHINETYPE="pc"
NET_DEVICE="rtl8139"
GUEST_TWEAKS="-boot d"
if [ -z "${disk_size}" ]; then
disk_size="256M"
fi
;;
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/
# A CPU with SSE4.1 support is required for >= macOS Sierra
# A CPU with SSE4.1 support is required for >= macOS Sierra
@ -591,7 +604,7 @@ function vm_boot() {
fi
fi
fi
fi
if [ "${DISK_USED}" == "yes" ]; then
if [ "${DISK_USED}" == "yes" ] && [ "${guest_os}" != "kolibrios" ] ; then
# If there is a disk image that appears to be used do not boot from installation media.
# If there is a disk image that appears to be used do not boot from installation media.
iso=""
iso=""
img=""
img=""
@ -833,7 +846,7 @@ function vm_boot() {
# shellcheck disable=SC2054,SC2206,SC2140
# shellcheck disable=SC2054,SC2206,SC2140
args+=(-name ${VMNAME},process=${VMNAME} -pidfile "${VMDIR}/${VMNAME}.pid"
args+=(-name ${VMNAME},process=${VMNAME} -pidfile "${VMDIR}/${VMNAME}.pid"
-enable-kvm -machine q35 ,smm=${SMM},vmport=off ${GUEST_TWEAKS}
-enable-kvm -machine ${MACHINETYPE} ,smm=${SMM},vmport=off ${GUEST_TWEAKS}
${CPU} ${SMP}
${CPU} ${SMP}
-m ${RAM_VM} ${BALLOON}
-m ${RAM_VM} ${BALLOON}
-smbios type=2,manufacturer="Quickemu Project",product="Quickemu",version="${VERSION}",serial="0xDEADBEEF",location="quickemu.com",asset="${VMNAME}"
-smbios type=2,manufacturer="Quickemu Project",product="Quickemu",version="${VERSION}",serial="0xDEADBEEF",location="quickemu.com",asset="${VMNAME}"
@ -891,6 +904,13 @@ function vm_boot() {
args+=(-drive if=floppy,format=raw,file="${floppy}")
args+=(-drive if=floppy,format=raw,file="${floppy}")
fi
fi
# Since there is bug (probably) in KolibriOS: cdrom indexes 0 or 1 make system show an extra unexisting iso, so we use index=2
if [ -n "${iso}" ] && [ "${guest_os}" == "kolibrios" ]; then
# shellcheck disable=SC2054
args+=(-drive media=cdrom,index=2,file="${iso}")
iso=""
fi
if [ -n "${iso}" ]; then
if [ -n "${iso}" ]; then
# shellcheck disable=SC2054
# shellcheck disable=SC2054
args+=(-drive media=cdrom,index=0,file="${iso}")
args+=(-drive media=cdrom,index=0,file="${iso}")
@ -922,6 +942,11 @@ function vm_boot() {
# shellcheck disable=SC2054,SC2206
# shellcheck disable=SC2054,SC2206
args+=(-device ${MAC_DISK_DEV},drive=SystemDisk
args+=(-device ${MAC_DISK_DEV},drive=SystemDisk
-drive id=SystemDisk,if=none,format=qcow2,file="${disk_img}" ${STATUS_QUO})
-drive id=SystemDisk,if=none,format=qcow2,file="${disk_img}" ${STATUS_QUO})
elif [ "${guest_os}" == "kolibrios" ]; then
# shellcheck disable=SC2054,SC2206
args+=(-device ahci,id=ahci
-device ide-hd,bus=ahci.0,drive=SystemDisk
-drive id=SystemDisk,if=none,format=qcow2,file="${disk_img}" ${STATUS_QUO})
else
else
# shellcheck disable=SC2054,SC2206
# shellcheck disable=SC2054,SC2206
args+=(-device virtio-blk-pci,drive=SystemDisk
args+=(-device virtio-blk-pci,drive=SystemDisk