# Installing Linux on OpenBSD with VMM

# Installing Ubuntu 21.04

At first, you will need to fetch the latest ubuntu server image on the official release website: https://releases.ubuntu.com/21.04/ubuntu-21.04-live-server-amd64.iso (opens new window).

# Initialize VMM Environment

Create the different directories and fetch iso file.

doas mkdir -p /home/_vmd/iso
doas mkdir -p /home/_vmd/disk
doas vmctl create -s 30g /home/_vmd/disk/ubuntu.qcow2
ftp -o /home/_vmd/iso/ubuntu-21.04-live-server-amd64.iso https://releases.ubuntu.com/21.04/ubuntu-21.04-live-server-amd64.iso

Edit /etc/vm.conf file where and create the new VM.

network configuration

This configuration does not have any switch or uplink configured. You will need to configure one by yourself.

vm "ubuntu" {
    memory 4G
    disk "/home/_vmd/disk/ubuntu.qcow2"
    cdrom "/home/_vmd/iso/ubuntu-21.04-live-server-amd64.iso"
    owner your_user_here
    disable
}

If vmd is running then reload it.

doas rcctl reload vmd

# Install Ubuntu

vmctl start -c ubuntu

When starting the virtual machine, you will have access to GRUB console. You will need to configure

linux /casper/vmlinuz live console=ttyS0,115200n8 ---
initrd /casper/initrd
boot

::: info

It takes a while before having the installer prompt. Just wait few minutes and you will have access to the installer.

:::

# Add Some Extra Configuration

# Install kubectl

sudo apt-get update && sudo apt-get install -y apt-transport-https gnupg2 curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl

# Hacking Around

To mount this ISO image locally and check the different GRUB paremeter (for example), you can use these commands on OpenBSD:

doas vnconfig vnd0 /home/_vmd/iso/ubuntu-21.04-live-server-amd64.iso 
doas mount /dev/vnd0c /mnt2
cat /mnt2/boot/grub/grub.cfg

# Installing Debian 10.09

ftp 
/install.amd/vmlinuz initrd=/install.amd/initrd.gz console=ttyS0,115200n8 --- quiet

# Signal on OpenBSD with Debian VM

TIP

install debian in expert mode, installing only ssh server.

sudo apt-get install -y gpg libxshmfence1 libdrm2 libgbm1 firejail

wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg
cat signal-desktop-keyring.gpg | sudo tee -a /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' \
    | sudo tee -a /etc/apt/sources.list.d/signal-xenial.list

sudo apt-get update
sudo apt install signal-desktop
sudo apt install signal-desktop-beta

# Virtual Audio Configuration

cat /dev/audio0 | ssh ${host} tee /home/debian/snd-input
ssh ${host} cat /home/debian/snd-output > /dev/audio0
# install alsa
sudo apt-get install alsa-utils alsa-tools libasound2

# enable virtual audio card
sudo modprobe snd-aloop

# create fifo
mkfifo /home/debian/snd-output
mkfifo /home/debian/snd-input

# configure alsa
cat > /etc/asoundrc << EOF
pcm.name {
    type file
    slave test
    file /home/debian/snd-output
    infile /home/debian/snd-input
EOF

# create alsaloop
sudo alsaloop

# Installing BlissOS

todo

Download latest ISO.

Set the installer in Automatic Installation mode with tty Console support.