Setup an OpenBSD SPARC64 VM in QEMU

Last modification on

This describes how to setup an OpenBSD SPARC64 VM in QEMU.

Create a disk image

To create a 5GB disk image:

qemu-img create -f qcow2 fs.qcow2 5G


In this guide we'll use the installation ISO to install OpenBSD. Make sure to download the latest (stable) OpenBSD ISO, for example install62.iso.

  • Change -boot c to -boot d to boot from the CD-ROM and do a clean install.
  • Change -cdrom install62.iso to the location of your ISO file.
  • When the install is done type: halt -p
  • Change -boot d back to -boot c.

Start the VM:

qemu-system-sparc64 \
	-machine sun4u,usb=off \
	-realtime mlock=off \
	-smp 1,sockets=1,cores=1,threads=1 \
	-rtc base=utc \
	-m 1024 \
	-boot c \
	-drive file=fs.qcow2,if=none,id=drive-ide0-0-1,format=qcow2,cache=none \
	-cdrom install62.iso \
	-device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-1,id=ide0-0-1 \
	-msg timestamp=on \
	-serial pty -nographic \
	-net nic,model=ne2k_pci -net user

The VM has the following properties:

  • No audio.
  • No USB.
  • No VGA graphics: serial console.
  • Netdev is ne0 (Realtek 8029).
  • 1024MB memory.

From your host connect to the serial device indicated by QEMU, for example:

(qemu) 2017-11-19T15:14:20.884312Z qemu-system-sparc64: -serial pty: char device redirected to /dev/ttyp0 (label serial0)

Then you can use the serial terminal emulator cu to attach:

cu -l /dev/ttyp0

Another option could be using the simple terminal(st) from suckless.

st -l /dev/ttyp0

using cu to detach the cu(1) man page says:

Typed characters are normally transmitted directly to the remote machine (which
does the echoing as well).  A tilde ('~') appearing as the first character of a
line is an escape signal; the following are recognized:

    ~^D or ~.  Drop the connection and exit.  Only the connection is
               the login session is not terminated.

On boot you have to type:

root device: wd0a
for swap use the default (wd0b) Press enter

Initial settings on first boot (optional)

Automatic network configuration using DHCP

echo "dhcp" > /etc/hostname.ne0

To bring up the interface (will be automatic on the next boot):

sh /etc/netstart

Add a mirror to /etc/installurl for package installation. Make sure to lookup the most efficient/nearby mirror site on the OpenBSD mirror page.

echo "" > /etc/installurl