---
title: Run Ubuntu Frame in a Virtual Machine
description: Canonical makes open source secure, reliable and easy to use, providing
  support for Ubuntu and a portfolio of enterprise-grade technologies. Founded in
  2004, Canonical operates globally with team members in over 80 countries.
url: https://canonical-com-2950.demos.haus/mir/docs/run-ubuntu-frame-in-a-virtual-machine?format=md
---

*Submit*

# Run Ubuntu Frame in a Virtual Machine

This is a quick reference for running Ubuntu Frame in an Ubuntu Core virtual machine.

## Setup a VM

We need to be able to run the VM and, as the default build of qemu on Ubuntu doesn’t support graphics, we will use a handy snap that enables this:

```
$ sudo snap install qemu-virgil
$ sudo snap connect qemu-virgil:kvm
$ qemu-virgil --version
```

We also download an Ubuntu Core image from <https://cdimage.ubuntu.com/ubuntu-core/20/stable/current/>

Now, uncompress the image and move it to a convenient location:

```
$ unxz ~/Downloads/ubuntu-core-20-amd64.img.xz
$ mv ~/Downloads/ubuntu-core-20-amd64.img ~/snap/qemu-virgil/common/
$ qemu-virgil -enable-kvm -m 512 -device virtio-vga,virgl=on\
 -display sdl,gl=on -netdev user,id=ethernet.0,hostfwd=tcp::10022-:22\
 -device rtl8139,netdev=ethernet.0\
 -drive file=/snap/qemu-virgil/current/usr/share/qemu/edk2-x86_64-code.fd,if=pflash,format=raw,unit=0,readonly=on\
 ~/snap/qemu-virgil/common/ubuntu-core-20-amd64.img
```

This will create a QEMU window on your desktop and you need to follow through the prompts to initialise the VM with your launchpad account. (If you don’t have a launchpad account, get one and set up a public SSH key.)

Connect to the VP using ssh from a terminal window (ignore the address shown in the QEMU window and use the port set in the above command):

```
$ ssh -p 10022 <your‑user>@localhost
```

## Install Ubuntu Frame

You should now have a command prompt reading something like `<your‑user>@localhost:~$`. Now install Ubuntu Frame with the following command:

```
$ snap install ubuntu-frame
```

Once the installation completes the QEMU window should show a graduated grey screen. This is the default Ubuntu Frame wallpaper. This can be changed using the “config” snap configuration option:

```
$ snap set ubuntu-frame config="
wallpaper-top=0x92006a
wallpaper-bottom=0xdd4814
"
```

The `wallpaper-top` and `wallpaper-bottom` are RGB values. There are a lot of configuration options to control Ubuntu Frame, but they are all set using `config` and `display` (more details in REFERENCE.md)

## Install a Web Kiosk

Still in your ssh session, install web kiosk:

```
$ snap install wpe-webkit-mir-kiosk
```

Once the installation completes the QEMU window should show the WPE website.

The website can be changed using the “url” snap configuration option:

```
$ snap set wpe-webkit-mir-kiosk url=https://mir-server.io
```

This will show the Mir Server website.

## Next steps

For more detail about running and configuring Ubuntu Frame, and for resources to help build your own snaps to work with it see REFERENCE.md.

---

[Previous

Run Ubuntu Frame in your Desktop Environment](https://canonical-com-2950.demos.haus/mir/docs/run-ubuntu-frame-on-your-desktop)
[Next

Run Ubuntu Frame on your Device](https://canonical-com-2950.demos.haus/mir/docs/run-ubuntu-frame-on-your-device)

Last updated 4 years ago. [Help improve this document in the forum](https://discourse.ubuntu.com/t/run-ubuntu-frame-in-a-virtual-machine/29369).
