initial icaros support

Fetches and prepares VM but booting the iso
tends to imitate Guru Meditation or black screen of limbo
or boot loops. Will need more effort to get to a running live system
pull/713/head
Phil Clifford 1 year ago
parent 8ee0d3a207
commit 0966654439
No known key found for this signature in database
GPG Key ID: 3B0A3BA167A07F7D
  1. 10
      quickemu
  2. 93
      quickget

@ -468,7 +468,7 @@ function vm_boot() {
# Make any OS specific adjustments
case ${guest_os} in
batocera|*bsd|freedos|haiku|linux|*solaris)
icaros|batocera|*bsd|freedos|haiku|linux|*solaris)
CPU="-cpu host,kvm=on"
if [ "${HOST_CPU_VENDOR}" == "AuthenticAMD" ]; then
CPU="${CPU},topoext"
@ -476,7 +476,7 @@ function vm_boot() {
if [ "${guest_os}" == "freebsd" ] || [ "${guest_os}" == "ghostbsd" ]; then
MOUSE="usb"
elif [ "${guest_os}" == "batocera" ] || [ "${guest_os}" == "freedos" ] || [ "${guest_os}" == "haiku" ]; then
elif [ "${guest_os}" == "icaros" ] || [ "${guest_os}" == "batocera" ] || [ "${guest_os}" == "freedos" ] || [ "${guest_os}" == "haiku" ]; then
MACHINE_TYPE="pc"
NET_DEVICE="rtl8139"
fi
@ -1099,6 +1099,12 @@ function vm_boot() {
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})
elif [ "${guest_os}" == "icaros" ]; then
# shellcheck disable=SC2054,SC2206
args+=(-device ahci,id=ahci
-device ide-hd,bus=ahci.0,drive=SystemDisk
-drive id=SystemDisk,if=none,index=1,format=qcow2,file="${disk_img}" ${STATUS_QUO}
-boot order=d,menu=on)
elif [ "${guest_os}" == "batocera" ] ; then
# shellcheck disable=SC2054,SC2206

@ -36,6 +36,7 @@ function pretty_name() {
archlinux) PRETTY_NAME="Arch Linux";;
archcraft) PRETTY_NAME="Archcraft";;
arcolinux) PRETTY_NAME="Arco Linux";;
icaros) PRETTY_NAME="icaros desktop";;
blendos) PRETTY_NAME="BlendOS";;
cachyos) PRETTY_NAME="CachyOS";;
centos-stream) PRETTY_NAME="CentOS Stream";;
@ -195,6 +196,7 @@ function os_support() {
gentoo \
ghostbsd \
haiku \
icaros \
kali \
kdeneon \
kolibrios \
@ -274,6 +276,12 @@ function releases_arcolinux() {
function editions_arcolinux() {
echo large small
}
function editions_icaros() {
echo live light
}
function releases_icaros() {
echo 2.3.0 2.2.8 2.2.7 2.2.6 2.2.5
}
function releases_blendos() {
local RLIST
@ -774,19 +782,19 @@ function web_get() {
exit 1
fi
if command -v aria2c &>/dev/null; then
if ! aria2c --stderr -x16 --continue=true --summary-interval=0 --download-result=hide --console-log-level=error "${URL}" --dir "${DIR}" -o "${FILE}"; then
if command -v aria2c &>/dev/null; then
if ! aria2c --stderr -x16 --continue=true --summary-interval=0 --download-result=hide --console-log-level=error "${URL}" --dir "${DIR}" -o "${FILE}"; then
echo #Necessary as aria2c in suppressed mode does not have new lines
echo "ERROR! Failed to download ${URL} with aria2c. Try running 'quickget' again."
exit 1
fi
echo #Necessary as aria2c in suppressed mode does not have new lines
echo "ERROR! Failed to download ${URL} with aria2c. Try running 'quickget' again."
exit 1
fi
echo #Necessary as aria2c in suppressed mode does not have new lines
else
if ! wget --quiet --continue --show-progress --progress=bar:force:noscroll "${URL}" -O "${DIR}/${FILE}"; then
echo "ERROR! Failed to download ${URL} with wget. Try running 'quickget' again."
exit 1
fi
fi
else
if ! wget --quiet --continue --show-progress --progress=bar:force:noscroll "${URL}" -O "${DIR}/${FILE}"; then
echo "ERROR! Failed to download ${URL} with wget. Try running 'quickget' again."
exit 1
fi
fi
}
function zsync_get() {
@ -837,6 +845,9 @@ function make_vm_config() {
IMAGE_FILE="${1}"
ISO_FILE="${2}"
case "${OS}" in
icaros)
GUEST="icaros"
IMAGE_TYPE="iso";;
batocera)
GUEST="batocera"
IMAGE_TYPE="img";;
@ -948,6 +959,9 @@ EOF
echo "disk_size=\"12G\"" >> "${CONF_FILE}"
echo "ram=\"2048M\"" >> "${CONF_FILE}"
;;
arosone|icaros)
echo "boot=\"legacy\"" >> "${CONF_FILE}"
;;
macos)
echo "macos_release=\"${RELEASE}\"" >> "${CONF_FILE}"
# https://github.com/quickemu-project/quickemu/issues/438
@ -1051,6 +1065,56 @@ function get_arcolinux() {
echo "${URL}/${ISO} ${HASH}"
}
function get_icaros() {
local EDITION="${1:-}"
local ISO="Icaros${EDITION^}_${RELEASE//./_}.zip"
local URL="http://www.icarosdesktop.com/icarosfiles/"
local HASH=""
case ${EDITION} in
Live|live)
case ${RELEASE} in
2.3.0)
HASH="f2e4fdbc71f48e35dccfe6c26ae07a8f" #
;;
2.2.8)
HASH="abb77ec6968f3a0823ba527bc0f73ce2"
;;
2.2.7)
HASH="d75c1fdc3a3ec6813c0ae768ea43eb47"
;;
2.2.6)
HASH="a518574abd6fcbb846f9fd6ae7fa36ec"
;;
2.2.5)
HASH="a89ec32c30a10bd4c551bee3b902740d"
;;
esac
;;
Light|light)
case ${RELEASE} in
2.3.0)
HASH="a469a92982842303bbe904efe1d09ea6"
;;
2.2.8)
HASH="d8a626c732a6ab3be256ab0007d72b94"
;;
2.2.7)
HASH="50a2dc2c544b38c48e44f865c84d7824"
;;
2.2.6)
HASH="57366ac7a629f8dbe8da999f9b84eb91"
;;
2.2.5)
HASH="e4f5817ec32086b698948c6fc899aec3"
;;
esac
;;
esac
echo "${URL}"/"${ISO}" "${HASH}"
}
function get_blendos() {
local EDITION="${1:-}"
local HASH=""
@ -2246,6 +2310,11 @@ create_vm() {
ISO=$(ls ${VM_PATH} | grep -i '.iso' | grep -v '.zip')
fi
if [ ${OS} == "icaros" ] && [[ $ISO =~ ".zip" ]]; then
unzip -j ${VM_PATH}/${ISO} -d ${VM_PATH}
ISO=$(ls ${VM_PATH} | grep -i '.iso' | grep -v '.zip')
fi
make_vm_config "${ISO}"
}

Loading…
Cancel
Save