Hi all,
I have set up an Iot graphical snap using the MirServer 22 flutter demo, using ubuntu-frame. This is all working well in ubuntu core on bare metal nucs and I have also tried emulating in UTM and the app displays correctly.
However I need to get this working in a Hyper-V Vm. The system at the moment, is a custom ubuntu desktop ISO, that contains a flutter app and an ubuntu core image. The app then flashes ubuntu core to the VM harddrive after which you can reboot into it. Ubuntu core then boots and I can see the splash screen vendor logo I set up within my gadget snap but then freezes towards the end on the splash. If i restart the machine it just shows a black screen.
These are the logs from ubuntu-frame as its always exiting:
Aug 07 09:41:34 09538ce8-255b-4f13-a664-d1264d661cd0 ubuntu-frame.daemon[40191]: [2025-08-07 09:41:34.395610] <information> mirserver: Found display driver: mir:x11 (version 2.17.2)
Aug 07 09:41:34 09538ce8-255b-4f13-a664-d1264d661cd0 ubuntu-frame.daemon[40191]: [2025-08-07 09:41:34.395649] <information> mirserver: (Unsupported by system environment)
Aug 07 09:41:34 09538ce8-255b-4f13-a664-d1264d661cd0 ubuntu-frame.daemon[40191]: [2025-08-07 09:41:34.395656] <information> mirserver: Found display driver: mir:egl-generic (version 2.17.2)
Aug 07 09:41:34 09538ce8-255b-4f13-a664-d1264d661cd0 ubuntu-frame.daemon[40191]: [2025-08-07 09:41:34.395679] <information> mirserver: Found display driver: mir:gbm-kms (version 2.17.2)
Aug 07 09:41:34 09538ce8-255b-4f13-a664-d1264d661cd0 ubuntu-frame.daemon[40191]: [2025-08-07 09:41:34.395738] <information> gbm-kms: Unsupported: No DRM devices detected
Aug 07 09:41:34 09538ce8-255b-4f13-a664-d1264d661cd0 ubuntu-frame.daemon[40191]: [2025-08-07 09:41:34.395743] <information> mirserver: (Unsupported by system environment)
Aug 07 09:41:34 09538ce8-255b-4f13-a664-d1264d661cd0 ubuntu-frame.daemon[40191]: [2025-08-07 09:41:34.395746] <information> mirserver: Found display driver: mir:eglstream-kms (version 2.17.2)
Aug 07 09:41:34 09538ce8-255b-4f13-a664-d1264d661cd0 ubuntu-frame.daemon[40191]: [2025-08-07 09:41:34.396271] < - debug - > eglstream: Found EGLDeviceEXT with device extensions: EGL_MESA_device_software EGL_EXT_device_drm_render_node
Aug 07 09:41:34 09538ce8-255b-4f13-a664-d1264d661cd0 ubuntu-frame.daemon[40191]: [2025-08-07 09:41:34.396338] <information> eglstream: Failed to query DRM node for EGLDevice: Failed to determine DRM device node path from EGLDevice: EGL_BAD_PARAMETER (0x300c)
2025-08-07T09:17:37Z ubuntu-frame.daemon[11058]: [2025-08-07 09:17:37.293272] < - debug - > eglstream: EGLDeviceEXTs found, but none are suitable for Mir
2025-08-07T09:17:37Z ubuntu-frame.daemon[11058]: [2025-08-07 09:17:37.293276] <information> mirserver: (Unsupported by system environment)
2025-08-07T09:17:37Z ubuntu-frame.daemon[11058]: ERROR: ./src/server/graphics/default_configuration.cpp(198): Throw in function virtual const std::vector<std::shared_ptr<mir::graphics::DisplayPlatform> >& mir::DefaultServerConfiguration::the_display_platforms()
2025-08-07T09:17:37Z ubuntu-frame.daemon[11058]: Dynamic exception type: boost::wrapexcept<std::runtime_error>
2025-08-07T09:17:37Z ubuntu-frame.daemon[11058]: std::exception::what: Exception while creating graphics platform
2025-08-07T09:17:37Z ubuntu-frame.daemon[11058]: ERROR: ./src/server/graphics/platform_probe.cpp(232): Throw in function std::vector<std::pair<mir::graphics::SupportedDevice, std::shared_ptr<mir::SharedLibrary> > > mir::graphics::modules_for_device(const std::function<std::vector<mir::graphics::SupportedDevice>(const mir::SharedLibrary&)>&, const std::vector<std::shared_ptr<mir::SharedLibrary> >&, mir::graphics::TypePreference)
2025-08-07T09:17:37Z ubuntu-frame.daemon[11058]: Dynamic exception type: boost::wrapexcept<std::runtime_error>
2025-08-07T09:17:37Z ubuntu-frame.daemon[11058]: std::exception::what: Failed to find any platforms for current system
2025-08-07T09:17:37Z systemd[1]: snap.ubuntu-frame.daemon.service: Main process exited, code=exited, status=1/FAILURE
2025-08-07T09:17:37Z systemd[1]: snap.ubuntu-frame.daemon.service: Failed with result 'exit-code'.
Any help on getting this to work or alternative ideas would be much appreciated. Within this app I have buttons to trigger api calls to display codes and things that are required so I ideally would like to just get this UI to display. All other services are working correctly.