mirror of
				https://github.com/oSoWoSo/DistroHopper.git
				synced 2024-08-14 22:46:53 +00:00 
			
		
		
		
	Merge remote-tracking branch 'nqvrg/add-haiku'
into merging-updated-distros
This commit is contained in:
		
						commit
						2dcc05abac
					
				
					 3 changed files with 66 additions and 7 deletions
				
			
		
							
								
								
									
										22
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										22
									
								
								README.md
									
										
									
									
									
								
							|  | @ -40,6 +40,7 @@ comprehensive support for macOS and Windows**. | ||||||
|   * [Oracle Linux](https://www.oracle.com/linux/) and [Rocky Linux](https://rockylinux.org/) |   * [Oracle Linux](https://www.oracle.com/linux/) and [Rocky Linux](https://rockylinux.org/) | ||||||
|   * [Regolith Linux](https://regolith-linux.org/) (Release 1.6 and latest 2.0.0 pre-release  ) |   * [Regolith Linux](https://regolith-linux.org/) (Release 1.6 and latest 2.0.0 pre-release  ) | ||||||
|   * [FreeBSD](https://www.freebsd.org/) & [OpenBSD](https://www.openbsd.org/) |   * [FreeBSD](https://www.freebsd.org/) & [OpenBSD](https://www.openbsd.org/) | ||||||
|  |   * [Haiku](https://www.haiku-os.org/) | ||||||
|   * Full SPICE support including host/guest clipboard sharing |   * Full SPICE support including host/guest clipboard sharing | ||||||
|   * VirtIO-webdavd file sharing for Linux and Windows guests |   * VirtIO-webdavd file sharing for Linux and Windows guests | ||||||
|   * VirtIO-9p file sharing for Linux and macOS guests |   * VirtIO-9p file sharing for Linux and macOS guests | ||||||
|  | @ -335,15 +336,28 @@ tpm="on" | ||||||
|   * `fixed_iso=` specifies the ISO image that provides VirtIO drivers. |   * `fixed_iso=` specifies the ISO image that provides VirtIO drivers. | ||||||
|   * `tpm="on"` instructs `quickemu` to create a software emulated TPM device using `swtpm`. |   * `tpm="on"` instructs `quickemu` to create a software emulated TPM device using `swtpm`. | ||||||
| 
 | 
 | ||||||
| ## BSD Guests | ## Haiku Guests | ||||||
| 
 | 
 | ||||||
| `quickemu` supports FreeBSD and OpenBSD. | `quickemu` supports [Haiku](https://www.haiku-os.org/). | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| quickget freebsd 13_0 | quickget quickget haiku r1beta3-x86_64 | ||||||
| quickemu --vm freebsd-13_0.conf | quickemu --vm haiku-r1beta3-x86_64.conf | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
|  | At the moment the only way to share files between host and a Haiku guest is by | ||||||
|  | using SSH (having a SSH server running on the host): | ||||||
|  | 
 | ||||||
|  | On guest: | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | scp example.txt user@host-local-ip:/home/user # sending a file from guest to host | ||||||
|  | scp user@host-local-ip:/home/user/example.txt . # receiving a file from host to guest | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | `quickget` cannot automatically download and create virtual machines for Haiku | ||||||
|  | nightly versions, but they work if the ISO and configuration are set up manually. | ||||||
|  | 
 | ||||||
| # SPICE | # SPICE | ||||||
| 
 | 
 | ||||||
| The following features are available while using the SPICE protocol: | The following features are available while using the SPICE protocol: | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								quickemu
									
										
									
									
									
								
							
							
						
						
									
										17
									
								
								quickemu
									
										
									
									
									
								
							|  | @ -228,7 +228,7 @@ function vm_boot() { | ||||||
|   local KERNEL_NODE="" |   local KERNEL_NODE="" | ||||||
|   local KERNEL_VER="?" |   local KERNEL_VER="?" | ||||||
|   local LSB_DESCRIPTION="Unknown OS" |   local LSB_DESCRIPTION="Unknown OS" | ||||||
|   local MACHINETYPE="q35" |   local MACHINE_TYPE="q35" | ||||||
|   local MAC_BOOTLOADER="" |   local MAC_BOOTLOADER="" | ||||||
|   local MAC_MISSING="" |   local MAC_MISSING="" | ||||||
|   local MAC_DISK_DEV="ide-hd,bus=ahci.2" |   local MAC_DISK_DEV="ide-hd,bus=ahci.2" | ||||||
|  | @ -475,13 +475,24 @@ function vm_boot() { | ||||||
|       if [ "${HOST_CPU_VENDOR}" == "AuthenticAMD" ]; then |       if [ "${HOST_CPU_VENDOR}" == "AuthenticAMD" ]; then | ||||||
|         CPU="${CPU},topoext" |         CPU="${CPU},topoext" | ||||||
|       fi |       fi | ||||||
|       MACHINETYPE="pc" |       MACHINE_TYPE="pc" | ||||||
|       NET_DEVICE="rtl8139" |       NET_DEVICE="rtl8139" | ||||||
|       GUEST_TWEAKS="-boot d" |       GUEST_TWEAKS="-boot d" | ||||||
|       if [ -z "${disk_size}" ]; then |       if [ -z "${disk_size}" ]; then | ||||||
|         disk_size="256M" |         disk_size="256M" | ||||||
|       fi |       fi | ||||||
|       ;; |       ;; | ||||||
|  |     haiku) | ||||||
|  |       CPU="-cpu host,kvm=on" | ||||||
|  |       MACHINE_TYPE="pc" | ||||||
|  |       NET_DEVICE="rtl8139" | ||||||
|  |       if [ "${HOST_CPU_VENDOR}" == "AuthenticAMD" ]; then | ||||||
|  |         CPU="${CPU},topoext" | ||||||
|  |       fi | ||||||
|  |       if [ -z "${disk_size}" ]; then | ||||||
|  |         disk_size="32G" | ||||||
|  |       fi | ||||||
|  |       ;; | ||||||
|     macos) |     macos) | ||||||
|       #https://www.nicksherlock.com/2020/06/installing-macos-big-sur-on-proxmox/ |       #https://www.nicksherlock.com/2020/06/installing-macos-big-sur-on-proxmox/ | ||||||
|       # A CPU with SSE4.1 support is required for >= macOS Sierra |       # A CPU with SSE4.1 support is required for >= macOS Sierra | ||||||
|  | @ -852,7 +863,7 @@ function vm_boot() { | ||||||
| 
 | 
 | ||||||
|   # shellcheck disable=SC2054,SC2206,SC2140 |   # shellcheck disable=SC2054,SC2206,SC2140 | ||||||
|   args+=(-name ${VMNAME},process=${VMNAME} -pidfile "${VMDIR}/${VMNAME}.pid" |   args+=(-name ${VMNAME},process=${VMNAME} -pidfile "${VMDIR}/${VMNAME}.pid" | ||||||
|          -enable-kvm -machine ${MACHINETYPE},smm=${SMM},vmport=off ${GUEST_TWEAKS} |          -enable-kvm -machine ${MACHINE_TYPE},smm=${SMM},vmport=off ${GUEST_TWEAKS} | ||||||
|          ${CPU} ${SMP} |          ${CPU} ${SMP} | ||||||
|          -m ${RAM_VM} ${BALLOON} |          -m ${RAM_VM} ${BALLOON} | ||||||
|          -smbios type=2,manufacturer="Quickemu Project",product="Quickemu",version="${VERSION}",serial="0xDEADBEEF",location="quickemu.com",asset="${VMNAME}" |          -smbios type=2,manufacturer="Quickemu Project",product="Quickemu",version="${VERSION}",serial="0xDEADBEEF",location="quickemu.com",asset="${VMNAME}" | ||||||
|  |  | ||||||
							
								
								
									
										34
									
								
								quickget
									
										
									
									
									
								
							
							
						
						
									
										34
									
								
								quickget
									
										
									
									
									
								
							|  | @ -45,6 +45,7 @@ function pretty_name() { | ||||||
|     freebsd)            PRETTY_NAME="FreeBSD";; |     freebsd)            PRETTY_NAME="FreeBSD";; | ||||||
|     gentoo)             PRETTY_NAME="Gentoo";; |     gentoo)             PRETTY_NAME="Gentoo";; | ||||||
|     garuda)             PRETTY_NAME="Garuda Linux";; |     garuda)             PRETTY_NAME="Garuda Linux";; | ||||||
|  |     haiku)              PRETTY_NAME="Haiku";; | ||||||
|     kdeneon)            PRETTY_NAME="KDE Neon";; |     kdeneon)            PRETTY_NAME="KDE Neon";; | ||||||
|     kolibrios)          PRETTY_NAME="KolibriOS";; |     kolibrios)          PRETTY_NAME="KolibriOS";; | ||||||
|     linuxmint-cinnamon) PRETTY_NAME="Linux Mint Cinnamon";; |     linuxmint-cinnamon) PRETTY_NAME="Linux Mint Cinnamon";; | ||||||
|  | @ -194,6 +195,7 @@ function os_support() { | ||||||
|     fedora \ |     fedora \ | ||||||
|     garuda \ |     garuda \ | ||||||
|     gentoo \ |     gentoo \ | ||||||
|  |     haiku \ | ||||||
|     kali \ |     kali \ | ||||||
|     kdeneon \ |     kdeneon \ | ||||||
|     kolibrios \ |     kolibrios \ | ||||||
|  | @ -320,6 +322,11 @@ function releases_garuda() { | ||||||
|     cinnamon |     cinnamon | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | function releases_haiku() { | ||||||
|  |     echo r1beta3-x86_64 \ | ||||||
|  |         r1beta3-x86_gcc2h | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function releases_kali() { | function releases_kali() { | ||||||
|     echo latest \ |     echo latest \ | ||||||
|     weekly |     weekly | ||||||
|  | @ -630,6 +637,9 @@ function make_vm_config() { | ||||||
|     elif [ "${OS}" == "gentoo" ]; then |     elif [ "${OS}" == "gentoo" ]; then | ||||||
|         GUEST="linux" |         GUEST="linux" | ||||||
|         IMAGE_TYPE="iso" |         IMAGE_TYPE="iso" | ||||||
|  |     elif [ "${OS}" == "haiku" ]; then | ||||||
|  |         GUEST="haiku" | ||||||
|  |         IMAGE_TYPE="iso" | ||||||
|     elif [ "${OS}" == "kdeneon" ]; then |     elif [ "${OS}" == "kdeneon" ]; then | ||||||
|         GUEST="linux" |         GUEST="linux" | ||||||
|         IMAGE_TYPE="iso" |         IMAGE_TYPE="iso" | ||||||
|  | @ -730,6 +740,11 @@ EOF | ||||||
|             echo "disk_size=\"32G\"" >> "${OS}-${RELEASE}.conf" |             echo "disk_size=\"32G\"" >> "${OS}-${RELEASE}.conf" | ||||||
|         fi |         fi | ||||||
| 
 | 
 | ||||||
|  |         if [ "${OS}" == "haiku" ]; then | ||||||
|  |             echo "boot=\"legacy\"" >> "${OS}-${RELEASE}.conf" | ||||||
|  |             echo "disk_size=\"32G\"" >> "${OS}-${RELEASE}.conf" | ||||||
|  |         fi | ||||||
|  | 
 | ||||||
|         if [ "${OS}" == "oraclelinux"  ]; then |         if [ "${OS}" == "oraclelinux"  ]; then | ||||||
|             echo "disk_size=\"20G\"" >> "${OS}-${RELEASE}.conf" |             echo "disk_size=\"20G\"" >> "${OS}-${RELEASE}.conf" | ||||||
|         fi |         fi | ||||||
|  | @ -1476,6 +1491,21 @@ function get_garuda() { | ||||||
|     make_vm_config "${OS}-${RELEASE}.iso" |     make_vm_config "${OS}-${RELEASE}.iso" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | function get_haiku() { | ||||||
|  |     local ISO="" | ||||||
|  |     local URL="" | ||||||
|  |     local HASH="" | ||||||
|  | 
 | ||||||
|  |     validate_release "releases_haiku" | ||||||
|  | 
 | ||||||
|  |     ISO="haiku-${RELEASE}-anyboot.iso" | ||||||
|  |     URL="https://cdn.haiku-os.org/haiku-release/$(echo $RELEASE | awk -F '-' '{print $1}')/${ISO}" | ||||||
|  |     HASH=$(wget -q -O- ${URL}.sha256 | grep "${ISO}" | cut -d' ' -f4) | ||||||
|  |     web_get "${URL}" "${VM_PATH}" | ||||||
|  |     check_hash "${ISO}" "${HASH}" | ||||||
|  |     make_vm_config "${ISO}" | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function unattended_windows() { | function unattended_windows() { | ||||||
|     cat << 'EOF' > "${1}" |     cat << 'EOF' > "${1}" | ||||||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | @ -1952,6 +1982,8 @@ if [ -n "${2}" ]; then | ||||||
|         get_cachyos |         get_cachyos | ||||||
|     elif [ "${OS}" == "gentoo" ]; then |     elif [ "${OS}" == "gentoo" ]; then | ||||||
|         get_gentoo |         get_gentoo | ||||||
|  |     elif [ "${OS}" == "haiku" ]; then | ||||||
|  |         get_haiku | ||||||
|     elif [ "${OS}" == "kali" ]; then |     elif [ "${OS}" == "kali" ]; then | ||||||
|         get_kali |         get_kali | ||||||
|     elif [ "${OS}" == "kdeneon" ]; then |     elif [ "${OS}" == "kdeneon" ]; then | ||||||
|  | @ -2059,6 +2091,8 @@ else | ||||||
|         releases_cachyos |         releases_cachyos | ||||||
|     elif [ "${OS}" == "gentoo" ]; then |     elif [ "${OS}" == "gentoo" ]; then | ||||||
|         releases_gentoo |         releases_gentoo | ||||||
|  |     elif [ "${OS}" == "haiku" ]; then | ||||||
|  |         releases_haiku | ||||||
|     elif [ "${OS}" == "kali" ]; then |     elif [ "${OS}" == "kali" ]; then | ||||||
|         releases_kali |         releases_kali | ||||||
|     elif [ "${OS}" == "kolibrios" ]; then |     elif [ "${OS}" == "kolibrios" ]; then | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue