diff --git a/quickemu b/quickemu index 80578be..6755251 100755 --- a/quickemu +++ b/quickemu @@ -468,7 +468,7 @@ function vm_boot() { # Make any OS specific adjustments case ${guest_os} in - batocera|*bsd|freedos|haiku|linux|*solaris) + arosone|batocera|*bsd|freedos|haiku|linux|*solaris) CPU="-cpu host,kvm=on" if [ "${HOST_CPU_VENDOR}" == "AuthenticAMD" ]; then CPU="${CPU},topoext" @@ -476,11 +476,15 @@ 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}" == "arosone" ] || [ "${guest_os}" == "batocera" ] || [ "${guest_os}" == "freedos" ] || [ "${guest_os}" == "haiku" ]; then MACHINE_TYPE="pc" NET_DEVICE="rtl8139" fi + # if [ "${guest_os}" == "arosone" ] ; then + # #MAC_DISK_DEV="ide-hd,bus=ahci.0,drive=0" + # fi + if [ "${guest_os}" == "freedos" ] ; then # fix for #382 SMM="on" @@ -1099,6 +1103,11 @@ 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}" == "arosone" ]; then + # shellcheck disable=SC2054,SC2206 + args+=(-device ahci,id=ahci + #-device ide-hd,bus=ahci.0,drive=SystemDisk + -drive id=SystemDisk,if=ide,index=1,format=qcow2,file="${disk_img}" ${STATUS_QUO}) elif [ "${guest_os}" == "batocera" ] ; then # shellcheck disable=SC2054,SC2206 diff --git a/quickget b/quickget index 7fe6382..a9f4533 100755 --- a/quickget +++ b/quickget @@ -36,6 +36,7 @@ function pretty_name() { archlinux) PRETTY_NAME="Arch Linux";; archcraft) PRETTY_NAME="Archcraft";; arcolinux) PRETTY_NAME="Arco Linux";; + arosone) PRETTY_NAME="AROS One";; blendos) PRETTY_NAME="BlendOS";; cachyos) PRETTY_NAME="CachyOS";; centos-stream) PRETTY_NAME="CentOS Stream";; @@ -177,6 +178,7 @@ function os_support() { archlinux \ archcraft \ arcolinux \ + arosone \ batocera \ blendos \ cachyos \ @@ -275,6 +277,10 @@ function editions_arcolinux() { echo large small } +function releases_arosone() { + echo 2.0 +} + function releases_blendos() { local RLIST RLIST=$(curl -s https://api.github.com/repos/blend-os/blendOS/releases |grep tag_name | grep -o -E '[[:digit:]]+\.[[:digit:]]+' | tr ' \r\n' ' ') @@ -774,19 +780,37 @@ 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 [[ "${URL}" =~ drive.google.com ]]; then + # ## Google Drive needs special handling for large files + # # FILEID="FILEIDENTIFIER" + # # FILENAME="FILENAME" + # FILEID="1ARgQSsxFxHWF7orcZvX27eBUY9mERPH2" + # #FILENAME="ArosOne-x86-v2.0-ISO-DVD.zip" + # echo "DEBUG: Downloading ${URL} to ${DIR}/${FILE} from Google Drive" + # local GDRESPONSE + # GDRESPONSE=$(curl -c /tmp/qggdcookie -s -L "https://drive.google.com/uc?export=download&id=${FILEID}") + + # if ! curl -Lb /tmp/qggdcookie "https://drive.google.com/uc?export=download&$(echo ${GDRESPONSE}|grep -Po '(confirm=[a-zA-Z0-9\-_]+)')&id=${FILEID}" -o "${ISO}" --output-dir "${DIR}"; then + # echo "ERROR! Failed to download ${URL} with curl. Try running 'quickget' again." + # exit 1 + # fi + + + # else + 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 + # fi } function zsync_get() { @@ -837,6 +861,9 @@ function make_vm_config() { IMAGE_FILE="${1}" ISO_FILE="${2}" case "${OS}" in + arosone) + GUEST="arosone" + IMAGE_TYPE="iso";; batocera) GUEST="batocera" IMAGE_TYPE="img";; @@ -948,6 +975,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 +1081,20 @@ function get_arcolinux() { echo "${URL}/${ISO} ${HASH}" } +function get_arosone() { + local ISO="" + local URL="" + FILEID="1ARgQSsxFxHWF7orcZvX27eBUY9mERPH2" + FILENAME="ArosOne-x86-v2.0-ISO-DVD.zip" + #ISO=${FILENAME} + ISO="ArosOne-x86-v2.0-ISO-DVD.zip" + URL="https://drive.google.com/uc?export=download&id=${FILEID}" + local GDRESPONSE=$(curl -c /tmp/gdcookie -s -L "https://drive.google.com/uc?export=download&id=${FILEID}") + curl -s -Lb /tmp/gdcookie "https://drive.google.com/uc?export=download&$(echo ${GDRESPONSE}|grep -Po '(confirm=[a-zA-Z0-9\-_]+)')&id=${FILEID}" -o "${FILENAME}" --output-dir "${DIR}" + #echo "${URL}"/"${ISO}" + #make_vm_config "${FILENAME}" + } + function get_blendos() { local EDITION="${1:-}" local HASH="" @@ -2246,6 +2290,13 @@ create_vm() { ISO=$(ls ${VM_PATH} | grep -i '.iso' | grep -v '.zip') fi + if [ ${OS} == "arosone" ] && [[ $ISO =~ ".zip" ]]; then + unzip ${VM_PATH}/${ISO} -d ${VM_PATH} + ISO=$(ls ${VM_PATH} | grep -i '.iso' | grep -v '.zip') + mv "${VM_PATH}/${ISO}" "${VM_PATH}/${ISO// /_}" # remove spaces + ISO=${ISO// /_} + fi + make_vm_config "${ISO}" }