Ubuntu Frame on macOS (including Apple Silicon / M1)

Would you have any lead on how we could get ubuntu-frame to work from within a multipass VM?

Everything on this article of yours A simple GUI Shell for a Multipass VM works great! Some blog post allowed me to launch a Firefox window from within multipass on my Mac. And I was hoping I could push further by having ubuntu-frame (and wpe-webkit-mir-kiosk as described there) working from within a multipass VM. Despite many attempts, I couldn’t :disappointed:… Did I miss something?

To clarify: we have devices (micro PCs) running ubuntu-frame and wpe-webkit-mir-kiosk with great success. The intent of having webkit/kiosk working within a multipass VM is to simplify development phases: a developer could simulate those devices in a breeze, instead of having to have the real device on hand to work it out. And cloud-init will make it easily reproducible both locally and during deploy/install phases on actual devices (which is awesome!).

1 Like

The blogpost I’m speaking about: https://jacekkowalczyk82.github.io/update/manuals/linux/2021/03/22/how-to-start-with-canonical-multipass.html

I don’t have a quick answer to hand. There’s likely something useful in https://github.com/AlanGriffiths/multipass-utils/blob/master/mir-demos, but you’ll have to work out the exact incantation you need for ubuntu-frame (it is most similar to the mircade example).

2 Likes

A colleague suggested an alternative approach: using a qemu VM. That would allow testing on Ubuntu Core and might also get you hardware graphics support (“There is experimental support for hardware OpenGL acceleration on Linux through Virgl”). This would be similar to:

https://github.com/MirServer/ubuntu-frame/blob/master/RUNNING_IN_A_VM.md

2 Likes

Thanks for the update! :hugs:

Not done yet, but I was going there after reading https://ubuntu.com/core/docs/testing-with-qemu :nerd_face:

Just to add to this, Multipass uses the same QEMU under the hood, but without exposing any graphical interface (as of right now), primarily because doing it consistently across platforms is a challenge.

I just confirmed Frame along with WPE works fine in a UTM “Linux” VM with the experimental graphical acceleration turned on, though I used Ubuntu Server as it’s apparently awkward (AKA I’ve not found such a possibility…) in UTM to use a preinstalled image.

@clorichel you may be able to get to where you need to be by “borrowing” the cloud-init ISO from Multipass (see ps aux | grep qemu while a Multipass VM is running) and giving that to the UTM machine along with supplying it with a disk image of choice.

3 Likes

Awesome! Thanks @saviq :heart:

Could you elaborate how you got Frame and WPE working on that Ubuntu Server VM on UTM though?

I could see the ubuntu-frame “graduated grey screen” but I had to:

  • apt install ubuntu-desktop on the VM server,
  • reboot,
  • snap install ubuntu-frame,
  • run ubuntu-frame on a terminal to see that grey screen window showing up on the VM desktop

And from there I can snap install WPE, but have no idea how to launch it. Plus I’m - obviously - totally missing something here, as I’d expect the VM to (not have ubuntu-desktop install and) automatically launch wpe so developers can just ssh -X in and have the simulated micro-PC device WPE screen.

I see no reason to need an install ubuntu-desktop - what led you to think that necessary?

To get Frame (and I expect WPE) to auto start on Ubuntu Server (or any OS that isn’t Ubuntu Core) you need to supply a snap configuration option:

sudo snap set ubuntu-frame daemon=true
sudo snap set wep-webkit-mir-kiosk daemon=true
1 Like

My answer is: virtualization overload :exploding_head: Ah ah :smile_cat: Indeed, ubuntu-desktop isn’t needed! The UTM virtual screen does it…

Thanks a lot, folks, you’ve totally helped me get through this :heart_eyes::hugs:


For anyone ending up here :nerd_face: the process is actually pretty simple!

Getting Ubuntu Frame running through a VM on your Mac (including M1):

  • grab and install https://mac.getutm.app/
  • within UTM add a VM > Virtualize > Linux
  • browse to your local version of ubuntu-22.04-live-server-arm64.iso (Mac M1 user here, hence the arm64, pick your arch!) as the Boot ISO Image
  • check Enable hardware OpenGL acceleration (experimental)
  • any other option as you see fit

From within the VM, install Ubuntu Server. Once done, after the reboot:

  • leave the UTM virtual screen alone (waiting for you to login)
  • ssh into the VM from your Mac terminal using the user/password you chose during install
  • sudo snap install ubuntu-frame
  • sudo snap install wpe-webkit-mir-kiosk
  • sudo snap set ubuntu-frame daemon=true
  • in a second, the UTM virtual screen will change to the graduated gray screen
  • sudo snap connect wpe-webkit-mir-kiosk:wayland
  • sudo snap set wpe-webkit-mir-kiosk daemon=true
  • in a breeze, you’ll see your kiosk
  • if you don’t see WPE website but still the graduated gray screen do sudo reboot and wait a bit
  • sudo snap set wpe-webkit-mir-kiosk url=https://your-website.com will update your kiosk url in a second
2 Likes