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>
pull/696/head
Chase Covello 1 year ago committed by GitHub
parent 53a4100905
commit 215633947e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      docs/quickemu.1
  2. 1
      docs/quickemu.1.md
  3. 4
      docs/quickget.1
  4. 1
      docs/quickget.1.md
  5. 11
      quickemu
  6. 25
      quickget

@ -1,4 +1,4 @@
.\" Automatically generated by Pandoc 2.19.2 .\" Automatically generated by Pandoc 2.17.1.1
.\" .\"
.\" Define V font for inline verbatim, using C font in formats .\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font. .\" that render this, and otherwise B font.
@ -403,6 +403,8 @@ All the official Ubuntu flavours are supported, just replace
.IP \[bu] 2 .IP \[bu] 2
\f[V]openbsd\f[R] (OpenBSD) \f[V]openbsd\f[R] (OpenBSD)
.IP \[bu] 2 .IP \[bu] 2
\f[V]openindiana\f[R] (OpenIndiana)
.IP \[bu] 2
\f[V]opensuse\f[R] (openSUSE) \f[V]opensuse\f[R] (openSUSE)
.IP \[bu] 2 .IP \[bu] 2
\f[V]oraclelinux\f[R] (Oracle Linux) \f[V]oraclelinux\f[R] (Oracle Linux)

@ -293,6 +293,7 @@ with your preferred flavour.
- `netbsd` (NetBSD) - `netbsd` (NetBSD)
- `nixos` (NixOS) - `nixos` (NixOS)
- `openbsd` (OpenBSD) - `openbsd` (OpenBSD)
- `openindiana` (OpenIndiana)
- `opensuse` (openSUSE) - `opensuse` (openSUSE)
- `oraclelinux` (Oracle Linux) - `oraclelinux` (Oracle Linux)
- `popos` (Pop!\_OS) - `popos` (Pop!\_OS)

@ -1,4 +1,4 @@
.\" Automatically generated by Pandoc 2.19.2 .\" Automatically generated by Pandoc 2.17.1.1
.\" .\"
.\" Define V font for inline verbatim, using C font in formats .\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font. .\" that render this, and otherwise B font.
@ -185,6 +185,8 @@ All the official Ubuntu flavours are supported, just replace
.IP \[bu] 2 .IP \[bu] 2
\f[V]openbsd\f[R] (OpenBSD) \f[V]openbsd\f[R] (OpenBSD)
.IP \[bu] 2 .IP \[bu] 2
\f[V]openindiana\f[R] (OpenIndiana)
.IP \[bu] 2
\f[V]opensuse\f[R] (openSUSE) \f[V]opensuse\f[R] (openSUSE)
.IP \[bu] 2 .IP \[bu] 2
\f[V]oraclelinux\f[R] (Oracle Linux) \f[V]oraclelinux\f[R] (Oracle Linux)

@ -125,6 +125,7 @@ with your preferred flavour.
- `netbsd` (NetBSD) - `netbsd` (NetBSD)
- `nixos` (NixOS) - `nixos` (NixOS)
- `openbsd` (OpenBSD) - `openbsd` (OpenBSD)
- `openindiana` (OpenIndiana)
- `opensuse` (openSUSE) - `opensuse` (openSUSE)
- `oraclelinux` (Oracle Linux) - `oraclelinux` (Oracle Linux)
- `popos` (Pop!\_OS) - `popos` (Pop!\_OS)

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

@ -58,6 +58,7 @@ function pretty_name() {
nixos) PRETTY_NAME="NixOS";; nixos) PRETTY_NAME="NixOS";;
macos) PRETTY_NAME="macOS";; macos) PRETTY_NAME="macOS";;
openbsd) PRETTY_NAME="OpenBSD";; openbsd) PRETTY_NAME="OpenBSD";;
openindiana) PRETTY_NAME="OpenIndiana";;
opensuse) PRETTY_NAME="openSUSE";; opensuse) PRETTY_NAME="openSUSE";;
oraclelinux) PRETTY_NAME="Oracle Linux";; oraclelinux) PRETTY_NAME="Oracle Linux";;
popos) PRETTY_NAME="Pop!_OS";; popos) PRETTY_NAME="Pop!_OS";;
@ -209,6 +210,7 @@ function os_support() {
lubuntu \ lubuntu \
macos \ macos \
openbsd \ openbsd \
openindiana \
opensuse \ opensuse \
oraclelinux \ oraclelinux \
popos \ popos \
@ -489,6 +491,14 @@ function releases_openbsd(){
echo ${OBSD_RELEASES} echo ${OBSD_RELEASES}
} }
function releases_openindiana(){
echo 20230421
}
function editions_openindiana(){
echo gui text minimal
}
function releases_opensuse(){ function releases_opensuse(){
echo 15.0 15.1 15.2 15.3 15.4 microos tumbleweed echo 15.0 15.1 15.2 15.3 15.4 microos tumbleweed
} }
@ -848,6 +858,9 @@ function make_vm_config() {
openbsd) openbsd)
GUEST="openbsd" GUEST="openbsd"
IMAGE_TYPE="iso";; IMAGE_TYPE="iso";;
openindiana)
GUEST="solaris"
IMAGE_TYPE="iso";;
reactos) reactos)
GUEST="reactos" GUEST="reactos"
IMAGE_TYPE="iso";; IMAGE_TYPE="iso";;
@ -886,6 +899,9 @@ EOF
case ${OS} in case ${OS} in
alma|centos-stream|endless|nixos|oraclelinux|popos|rockylinux) alma|centos-stream|endless|nixos|oraclelinux|popos|rockylinux)
echo "disk_size=\"32G\"" >> "${CONF_FILE}";; echo "disk_size=\"32G\"" >> "${CONF_FILE}";;
openindiana)
echo "boot=\"legacy\"" >> "${CONF_FILE}"
echo "disk_size=\"32G\"" >> "${CONF_FILE}";;
batocera) batocera)
echo "disk_size=\"8G\"" >> "${CONF_FILE}";; echo "disk_size=\"8G\"" >> "${CONF_FILE}";;
dragonflybsd|haiku|openbsd|netbsd|slackware|tails) dragonflybsd|haiku|openbsd|netbsd|slackware|tails)
@ -1518,6 +1534,15 @@ function get_openbsd() {
echo "${URL}/${ISO} ${HASH}" echo "${URL}/${ISO} ${HASH}"
} }
function get_openindiana(){
local HASH=""
local ISO=""
local URL=""
URL="https://dlc.openindiana.org/isos/hipster/${RELEASE}"
ISO="OI-hipster-${EDITION}-${RELEASE}.iso"
HASH=$(wget -q -O- "${URL}/${ISO}.sha256" |cut -d' ' -f1)
echo "${URL}/${ISO} ${HASH}"
}
function get_opensuse() { function get_opensuse() {
local HASH="" local HASH=""
local ISO="" local ISO=""

Loading…
Cancel
Save