Skip to content

Commit

Permalink
Add FreeBSD support (quickemu-project#62)
Browse files Browse the repository at this point in the history
* Add releases_freebsd() function

* complete FreeBSD addition

* Add README.md info for FreeBSD

Co-authored-by: Kai Lyons <kailyons@pop-os.localdomain>
  • Loading branch information
loralighte and Kai Lyons authored Oct 7, 2021
1 parent 9b823ca commit b9d9902
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 2 deletions.
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,18 @@ quickemu --vm windows-11.conf
* Download and install [UsbDk](https://www.spice-space.org/download/windows/usbdk/)
* Enables USB SPICE pass-through between the host and guest.

### FreeBSD Guest
`quickemu` supports FreeBSD production releases. FreeBSD support is maintained by `<kai@potabi.com>`.

FreeBSD version command reference (just in case):
* 12.2: `12_2`
* 13.0: `13_0`

```bash
quickget freebsd 13_0
quickemu --vm freebsd-13_0.conf
```

### Regional versions

By default `quickget` will download the *"English International"* release, but
Expand Down
49 changes: 47 additions & 2 deletions quickget
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#!/usr/bin/env bash

function os_support() {
echo kubuntu \
echo freebsd \
kubuntu \
lubuntu \
macos \
ubuntu \
Expand All @@ -13,6 +14,12 @@ function os_support() {
xubuntu
}

function releases_freebsd(){
echo 13_0 \
12_2 # replace with 12.3 upon release
# 14_0 # Waiting for 14.0 release
}

function releases_macos() {
echo high-sierra \
mojave \
Expand Down Expand Up @@ -128,7 +135,10 @@ function make_vm_config() {
local GUEST=""
IMAGE_FILE="${1}"
ISO_FILE="${2}"
if [[ "${OS}" == *"ubuntu"* ]]; then
if [[ "${OS}" == "freebsd" ]]; then
GUEST="freebsd"
IMAGE_TYPE="iso"
elif [[ "${OS}" == *"ubuntu"* ]]; then
GUEST="linux"
IMAGE_TYPE="iso"
elif [ "${OS}" == "macos" ]; then
Expand Down Expand Up @@ -168,6 +178,39 @@ function start_vm_info() {
echo
}

function get_freebsd() {
# For future releases, use dvd1 iso files.
local URL=""
local CHECKSUMS=""
local DL_BASE="https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES"
local VERSION=""
case ${RELEASE} in
13_0)
VERSION="13.0"
;;
12_2)
VERSION="12.2"
;;
# Waiting until FreeBSD 14 release
# 14_0)
# VERSION="14.0"
# ;;
*)
echo "ERROR! FreeBSD ${RELEASE} is not a supported release."
releases_freebsd
exit 1
;;
esac

URL="${DL_BASE}/${VERSION}/FreeBSD-${VERSION}-RELEASE-amd64-dvd1.iso"

ISO="FreeBSD-${VERSION}-RELEASE-amd64-dvd1.iso"
web_get ${URL} ${VM_PATH}
make_vm_dir
make_vm_config ${ISO}
start_vm_info
}

function get_macos() {
local CWD=""
local MACRECOVERY=""
Expand Down Expand Up @@ -380,6 +423,8 @@ VM_PATH="${OS}-${RELEASE}"

if [ "${OS}" == "macos" ]; then
get_macos
elif [[ "${OS}" == *"freebsd" ]]; then
get_freebsd
elif [[ "${OS}" == *"ubuntu"* ]]; then
get_ubuntu
elif [ "${OS}" == "windows" ]; then
Expand Down

0 comments on commit b9d9902

Please sign in to comment.