Improved support of KolibriOS:

CD-ROM (iso), Disk, Internet and Audio are working now.
Also added forced LiveCD booting (because release named latest-iso, not latest-img).
Did some tweaks with '-machine' and '-cpu'. Now these VMs will run with 'qemu32' processor since KolibriOS throw an MTRR error (I didnt get how to fix it by any other way).
pull/286/head
Vitaliy Krylov 3 years ago
parent 310d2d3aa1
commit 82be8d324c
  1. 31
      quickemu
  2. 1
      quickget

@ -228,6 +228,7 @@ function vm_boot() {
local KERNEL_NODE=""
local KERNEL_VER="?"
local LSB_DESCRIPTION="Unknown OS"
local MACHINETYPE="q35"
local MAC_BOOTLOADER=""
local MAC_MISSING=""
local MAC_DISK_DEV="ide-hd,bus=ahci.2"
@ -451,7 +452,7 @@ function vm_boot() {
# Make any OS specific adjustments
case ${guest_os} in
freebsd|kolibrios|linux|openbsd)
freebsd|linux|openbsd)
CPU="-cpu host,kvm=on"
if [ "${HOST_CPU_VENDOR}" == "AuthenticAMD" ]; then
CPU="${CPU},topoext"
@ -463,6 +464,18 @@ function vm_boot() {
disk_size="16G"
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)
#https://www.nicksherlock.com/2020/06/installing-macos-big-sur-on-proxmox/
# A CPU with SSE4.1 support is required for >= macOS Sierra
@ -591,7 +604,7 @@ function vm_boot() {
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.
iso=""
img=""
@ -833,7 +846,7 @@ function vm_boot() {
# shellcheck disable=SC2054,SC2206,SC2140
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}
-m ${RAM_VM} ${BALLOON}
-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}")
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
# shellcheck disable=SC2054
args+=(-drive media=cdrom,index=0,file="${iso}")
@ -922,6 +942,11 @@ function vm_boot() {
# shellcheck disable=SC2054,SC2206
args+=(-device ${MAC_DISK_DEV},drive=SystemDisk
-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
# shellcheck disable=SC2054,SC2206
args+=(-device virtio-blk-pci,drive=SystemDisk

@ -612,7 +612,6 @@ EOF
if [ "${OS}" == "kolibrios" ]; then
echo "boot=\"legacy\"" >> "${OS}-${RELEASE}.conf"
echo "disk_size=\"256M\"" >> "${OS}-${RELEASE}.conf"
fi
if [ "${OS}" == "openbsd" ]; then

Loading…
Cancel
Save