Add initial Solaris/Illumos/OpenIndiana support (#697)

* Add initial Solaris/Illumos support

* Fix OpenIndiana kernel panic on boot

The OpenIndiana kernel panics on boot in the AHCI driver. Switching the
machine type from "q35" to "pc" seems to fix the issue.

* Fix Illumos/OpenIndiana USB controller issue.

* Add openindiana support

* Updated quickget with current OpenIndiana release

* Change OpenIndiana video card to vmware-svga

OpenIndiana's default Xorg configuration doesn't work with QXL, virtio,
or VGA, but it does with vmware-svga.

* Updated man pages for OpenIndiana support

* Changed default Solaris/OpenIndiana boot to legacy

The OpenIndiana installer defaults to MBR partition table and BIOS boot
code even in EFI mode, so changed quickget to set 'boot="legacy"' in the
configuration file.

---------

Co-authored-by: Phil Clifford <philip.clifford@gmail.com>
This commit is contained in:
Chase Covello 2023-04-30 03:51:54 -07:00 committed by GitHub
parent 53a4100905
commit 215633947e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 42 additions and 4 deletions

View file

@ -468,7 +468,7 @@ function vm_boot() {
# Make any OS specific adjustments
case ${guest_os} in
batocera|*bsd|freedos|haiku|linux)
batocera|*bsd|freedos|haiku|linux|*solaris)
CPU="-cpu host,kvm=on"
if [ "${HOST_CPU_VENDOR}" == "AuthenticAMD" ]; then
CPU="${CPU},topoext"
@ -486,6 +486,11 @@ function vm_boot() {
SMM="on"
fi
if [[ "${guest_os}" == *"solaris" ]]; then
MACHINE_TYPE="pc"
USB_CONTROLLER="xhci"
fi
if [ -z "${disk_size}" ]; then
disk_size="16G"
fi
@ -726,6 +731,8 @@ function vm_boot() {
gtk|none|spice) DISPLAY_DEVICE="qxl-vga";;
sdl|spice-app) DISPLAY_DEVICE="virtio-vga";;
esac
elif [ "${guest_os}" == "solaris" ]; then
DISPLAY_DEVICE="vmware-svga"
else
DISPLAY_DEVICE="qxl-vga"
fi
@ -763,7 +770,7 @@ function vm_boot() {
case ${DISPLAY_DEVICE} in
bochs-display) VIDEO="${VIDEO},vgamem=67108864";;
qxl|qxl-vga) VIDEO="${VIDEO},ram_size=65536,vram_size=65536,vgamem_mb=64";;
ati-vga|cirrus-vga|VGA) VIDEO="${VIDEO},vgamem_mb=64";;
ati-vga|cirrus-vga|VGA|vmware-svga) VIDEO="${VIDEO},vgamem_mb=64";;
esac
# Configure multiscreen if max_outputs was provided in the .conf file