Run Ubuntu Frame on your Device

As I mentioned above, I use ubuntu 22.04 server os (not desktop) and yes i reset the raspberry pi after editing config.txt file. ok thanks i will check your links.

@majidkaka14 As mentioned in the snapcraft forum, please try the dtoverlay=vc4-fkms-v3d overlay (note the additional f). I found conflicting information if either Fake KMS (vc4-fkms) or „real“ KMS (vc4-kms) is the best option right now for Ubuntu Server / Core.

@glancr I also tried your tip but the result did not change. I have a web application that works fine on Chrome, Firefox and Chromium browsers, but when I use wpe-webkit-mir-kiosk, it renders slowly. Can I use chromium-mir-kiosk or is it deprecated?

Hello, How can I configure ubuntu frame to execute as deamon in a Custom Image for Ubuntu Core? Also it is possible to configure a change of the url showed by Wpe-webkit-mir-kiosk also in the model assertion?

Hi @jperera, Frame will run as daemon by default on Ubuntu Core, no changes needed there.

Here’s some documentation on configuring it from the gadget:

To configure WPE, its snap-id is 01sV9tv4UTUQTU3jYsAF1gJ5qv7ZqGls (you can find that in snap info …), and the key to configure is url, so something along those lines:

defaults:
  01sV9tv4UTUQTU3jYsAF1gJ5qv7ZqGls:
    url: <your url here>

And more generally about gadgets here:

And just in case you didn’t stumble on it yet, about building custom images:

Hope this helps!

2 Likes

Thanks a lot @saviq I really appreciate your help, I will give it a try building the gadget.
One question:

defaults:
  01sV9tv4UTUQTU3jYsAF1gJ5qv7ZqGls:
    url: <your url here>

This piece above belongs to the gadget assertion right?

In the gadget.yaml, yeah (it’s not an assertion, for clarity).

I’m attempting to run ubuntu-frame through Windows virtualization as I have on physical hardware (NUC). However, for both Ubuntu Core-22 and Ubuntu 22.04 LTS (server), ubuntu-frame fails to start when running as a virtual system under Hyper-V. I started with Core-22, but switched to server to provide greater flexibility in troubleshooting and resolution options.

Both core and server instances are successfully installed and I can SSH to each. However, when installing ubuntu-frame (adding daemon=true for server), VT 4 shows a black screen with a blinking cursing in the top left corner. Upon inspection ubuntu-frame has exited. I suspect the issue is related to the hypervisor virtual graphics adapter not being natively supported but I’m struggling to understand how to resolve it. Seems like the ability to run in Hyper-V would have been experienced before.

When I inspect the logs under the virtual instances of core and server, I see the following:

2023-10-12T20:29:59Z ubuntu-frame.daemon[2803]: [2023-10-12 20:29:59.056802] <information> eglstream: Failed to query DRM node for EGLDevice: Failed to determine DRM device node path from EGLDevice: EGL_BAD_PARAMETER (0x300c)
2023-10-12T20:29:59Z ubuntu-frame.daemon[2803]: [2023-10-12 20:29:59.056812] < - debug - > eglstream: EGLDeviceEXTs found, but none are suitable for Mir
2023-10-12T20:29:59Z ubuntu-frame.daemon[2803]: [2023-10-12 20:29:59.056817] <information> mirserver: (Unsupported by system environment)
2023-10-12T20:29:59Z ubuntu-frame.daemon[2803]: [2023-10-12 20:29:59.056822] <information> mirserver: Found display driver: mir:gbm-kms (version 2.15.0)
2023-10-12T20:29:59Z ubuntu-frame.daemon[2803]: [2023-10-12 20:29:59.056945] <information> gbm-kms: Unsupported: No DRM devices detected
2023-10-12T20:29:59Z ubuntu-frame.daemon[2803]: [2023-10-12 20:29:59.056989] <information> mirserver: (Unsupported by system environment)
2023-10-12T20:29:59Z ubuntu-frame.daemon[2803]: [2023-10-12 20:29:59.057027] <information> mirserver: Found display driver: mir:x11 (version 2.15.0)
2023-10-12T20:29:59Z ubuntu-frame.daemon[2803]: [2023-10-12 20:29:59.057045] <information> mirserver: (Unsupported by system environment)
2023-10-12T20:29:59Z ubuntu-frame.daemon[2803]: ERROR: ./src/server/graphics/default_configuration.cpp(233): Throw in function virtual const std::vector<std::shared_ptr<mir::graphics::DisplayPlatform> >& mir::DefaultServerConfiguration::the_display_platforms()
2023-10-12T20:29:59Z ubuntu-frame.daemon[2803]: Dynamic exception type: boost::wrapexcept<std::runtime_error>
2023-10-12T20:29:59Z ubuntu-frame.daemon[2803]: std::exception::what: Exception while creating graphics platform
2023-10-12T20:29:59Z ubuntu-frame.daemon[2803]: ERROR: ./src/server/graphics/platform_probe.cpp(190): Throw in function std::vector<std::pair<mir::graphics::SupportedDevice, std::shared_ptr<mir::SharedLibrary> > > {anonymous}::modules_for_device({anonymous}::ModuleType, const std::vector<std::shared_ptr<mir::SharedLibrary> >&, const mir::options::ProgramOption&, const std::shared_ptr<mir::ConsoleServices>&)
2023-10-12T20:29:59Z ubuntu-frame.daemon[2803]: Dynamic exception type: boost::wrapexcept<std::runtime_error>
2023-10-12T20:29:59Z ubuntu-frame.daemon[2803]: std::exception::what: Failed to find any platforms for current system
2023-10-12T20:29:59Z systemd[1]: snap.ubuntu-frame.daemon.service: Main process exited, code=exited, status=1/FAILURE
2023-10-12T20:29:59Z systemd[1]: snap.ubuntu-frame.daemon.service: Failed with result 'exit-code'.

The goal is to provide a development playground for Ubuntu-Core with ubuntu-frame. Falling back to the server might be ok for this purpose or even updating the kernel snap for dev purposes only. I’m hoping, since this is Hyper-V, that it would be easy enough to duplicate. Any help would be appreciated.

@r.smith, your suspicion is correct: the log shows that there’s no graphics stack for which Mir has a “platform”.

The following will list the drm devices available in your VM:

sudo apt-get install drm-info && drm_info

That may give a clue how to proceed.

Thank you for the quick response. I found several articles from 2021 calling out that Hyper-V DRM display drivers were to be included in Linux 5.14 kernel. Ubuntu 22.04 LTS kernel is 5.15 but clearly didn’t include the expected Hyper-V support. I assumed the easiest approach would be to upgrade to the HWE kernel for Ubuntu 22.04 LTS which is 6.2. After making that change, ubuntu-frame launches as expected.

sudo apt-get install linux-image-generic-hwe-22.04

Thanks again.

1 Like