Add FreeDOS support (#374)

* Add support for FreeDOS 1.2 to quickget

* Add support for freedos guests to quickemu

* Add support for FreeDOS 1.3 to quickget

* Force qemu to keep booting from cd after formatting disk

* Adjust VM settings

* Refactor FreeDOS to use create_vm

* Add FreeDOS to README

* Add unzip to README as a dependency
This commit is contained in:
nqvrg 2022-02-24 23:31:23 +01:00 committed by GitHub
parent 38b086244d
commit ebc83ebacf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 55 additions and 4 deletions

View file

@ -463,7 +463,7 @@ function vm_boot() {
# Make any OS specific adjustments
case ${guest_os} in
*bsd|haiku|linux)
*bsd|haiku|freedos|linux)
CPU="-cpu host,kvm=on"
if [ "${HOST_CPU_VENDOR}" == "AuthenticAMD" ]; then
CPU="${CPU},topoext"
@ -471,7 +471,7 @@ function vm_boot() {
if [ "${guest_os}" == "freebsd" ] || [ "${guest_os}" == "ghostbsd" ]; then
MOUSE="usb-mouse"
elif [ "${guest_os}" == "haiku" ]; then
elif [ "${guest_os}" == "haiku" ] || [ "${guest_os}" == "freedos" ]; then
MACHINE_TYPE="pc"
NET_DEVICE="rtl8139"
fi
@ -933,7 +933,11 @@ function vm_boot() {
args+=(-drive media=cdrom,index=1,file="${fixed_iso}")
fi
if [ -n "${iso}" ] && [ "${guest_os}" == "kolibrios" ]; then
if [ -n "{iso}" ] && [ "${guest_os}" == "freedos" ]; then
# FreeDOS reboots after partitioning the disk, and QEMU tries to boot from disk after first restart
# This flag sets the boot order to cdrom,disk. It will persist until powering down the VM
args+=(-boot order=dc)
elif [ -n "${iso}" ] && [ "${guest_os}" == "kolibrios" ]; then
# Since there is bug (probably) in KolibriOS: cdrom indexes 0 or 1 make system show an extra unexisting iso, so we use index=2
# shellcheck disable=SC2054
args+=(-drive media=cdrom,index=2,file="${iso}")