UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Introducing Miroil

    Scheduled Pinned Locked Moved Lomiri (was Unity8)
    31 Posts 5 Posters 9.9k Views 6 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      This topic has been deleted. Only users with topic management privileges can see it.
      • joniusJ Offline
        jonius @jonius
        last edited by jonius

        @jonius next issue is a failing test (ApplicationManager), which fails here.

        The demo runs into a segfault as well. (MIR_SERVER_CURSOR=null QT_QPA_PLATFORM=mirserver qmlscene qml-demo-shell/qml-demo-shell.qml).

        btw, I am on Ubuntu 16.04 in a VM.

        alan_gA 2 Replies Last reply Reply Quote 0
        • alan_gA Offline
          alan_g @jonius
          last edited by

          @jonius Not sure why you're seeing different things. Maybe something with the graphics setup in your VM?

          Can you run the mir examples? For example:

          $ mir-smoke-test-runner
          ...
          I: Smoke testing complete with returncode 0
          

          If that also shows problems, this solution might help (depending on your choice of VM):

          https://discourse.ubuntu.com/t/problems-running-electron-app-in-mir-kiosk-on-kvm/16196/6

          joniusJ 1 Reply Last reply Reply Quote 0
          • joniusJ Offline
            jonius @alan_g
            last edited by

            @alan_g said in Introducing Miroil:

            mir-smoke-test-runner

            I: The following clients failed to execute successfully:
            I:     mir_demo_client_prerendered_frames
            I:     mir_demo_client_animated_cursor
            I:     mir_demo_client_render_surface
            I:     mir_demo_client_basic
            I:     mir_demo_client_flicker
            I:     mir_demo_client_fingerpaint
            I:     mir_demo_client_release_at_exit
            I:     mir_demo_client_eglstateswitcher
            I:     mir_demo_client_wayland
            I:     mir_demo_client_target
            I:     mir_demo_client_tooltip
            I:     mir_demo_client_eglsquare
            I:     mir_demo_client_cursors
            I:     mir_demo_client_egldiamond_render_surface
            I:     mir_demo_client_egltriangle
            I:     mir_demo_client_chain_jumping_buffers
            I:     mir_demo_client_touch_validator
            I:     mir_demo_client_wayland_egl_spinner
            I:     mir_demo_client_progressbar
            I:     mir_demo_client_camera
            I:     mir_demo_client_prompt_session
            I:     mir_demo_client_multiwin
            I:     mir_demo_client_scroll
            I:     mir_demo_client_display_config
            I:     mir_demo_client_screencast
            I:     mir_demo_client_eglcounter
            I:     mir_demo_client_multistream
            I:     mir_demo_client_input_shapes
            I:     mir_demo_client_eglplasma
            I:     mir_demo_client_eglflash
            I:     mir_demo_client_pointer_confinement
            I: Smoke testing complete with returncode -1
            

            I am using VirtualBox. I am not sure how to apply the suggestions in the link. Which VM solution would you suggest? Otherwise I'll install the system again on a separate partition without VM.

            alan_gA 1 Reply Last reply Reply Quote 0
            • alan_gA Offline
              alan_g @jonius
              last edited by

              @jonius I don't have VirtualBox to hand to give detailed instructions. But it should work if you enable "the right" graphics options. Not sure what it's called. Something like 'passthrough' or '3D' maybe?

              joniusJ 1 Reply Last reply Reply Quote 0
              • joniusJ Offline
                jonius @alan_g
                last edited by jonius

                @alan_g
                I was hit by this bug. Now with 3D acceleration enabled most of the smoke tests succeed. Only mir_demo_client_eglplasma still failes. And the unit test I mentioned above continues to fail as well. Will test on separate installation without VM this weekend.

                MIR_SERVER_CURSOR=null QT_QPA_PLATFORM=mirserver qmlscene qml-demo-shell/qml-demo-shell.qml works partially. The circle rotates, but the mouse cursor is not visible and clicking the scale buttons results in file:///home/miroil/qtmir/demos/qml-demo-shell/qml-demo-shell.qml:28: Error: Unknown method parameter type: FormFactor.

                alan_gA 1 Reply Last reply Reply Quote 0
                • alan_gA Offline
                  alan_g @jonius
                  last edited by

                  @jonius said in Introducing Miroil:

                  the mouse cursor is not visible

                  That's sort of expected. I disabled the cursor in Mir because QtMir tries to set a zero sized image instead of hiding it. And Mir treats that as an error.

                  I've not looked at how it works for Lomiri. I suspect it renders its own cursor.

                  joniusJ 1 Reply Last reply Reply Quote 0
                  • joniusJ Offline
                    jonius @alan_g
                    last edited by

                    @alan_g installed Ubuntu 16.04 on my notebook directly via Ubuntu Touch (ISODrive is a great tool). Unfortunately the situation here is worse than in my VM on an Ubuntu 20.04 host. I guess the outdated amdgpu for my Radeon Vega 8 Graphics in Ubuntu 16.04 is to blame. The demo runs like in the VM, the same unit test fails, but many smoke tests fail:

                    I:     mir_demo_client_camera
                    I:     mir_demo_client_tooltip
                    I:     mir_demo_client_eglsquare
                    I:     mir_demo_client_eglplasma
                    I:     mir_demo_client_eglstateswitcher
                    I:     mir_demo_client_target
                    I:     mir_demo_client_scroll
                    I:     mir_demo_client_cursors
                    I:     mir_demo_client_egltriangle
                    I:     mir_demo_client_egldiamond_render_surface
                    I:     mir_demo_client_display_config
                    I:     mir_demo_client_eglcounter
                    I:     mir_demo_client_touch_validator
                    I:     mir_demo_client_animated_cursor
                    I:     mir_demo_client_pointer_confinement
                    I:     mir_demo_client_input_shapes
                    I:     mir_demo_client_eglflash
                    

                    So I guess best is to switch back to my VM? Is the failing tests something I could ignore for now?

                    alan_gA 1 Reply Last reply Reply Quote 0
                    • alan_gA Offline
                      alan_g @jonius
                      last edited by

                      @jonius said in Introducing Miroil:

                      Is the failing tests something I could ignore for now?

                      Of course. It will get annoying, but if you know you didn't break the code...

                      You've clearly got enough working to try stuff out.

                      1 Reply Last reply Reply Quote 0
                      • G Offline
                        greyback @alan_g
                        last edited by

                        Hey folks,
                        I can make this slightly easier with a few handy env vars.

                        @alan_g said in Introducing Miroil:

                        sudo ln -s /usr/local/lib/qt5/plugins/platforms/libqpa-mirserver.so /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/
                        

                        Allows Qt to find the platform.

                        You can avoid this soft link by setting this env var instead:

                        export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/local/lib/qt5/plugins/platforms
                        

                        @alan_g said in Introducing Miroil:

                        So Let's make that easier to find too:

                        sudo ln -s /usr/local/lib/qt5/qml/Unity/ /usr/lib/x86_64-linux-gnu/qt5/qml/
                        

                        Similarly, you can avoid the soft link again and point Qt directly to where those QML plugins live with:

                        export QML2_IMPORT_PATH=/usr/local/lib/qt5/qml
                        

                        Hope this helps
                        -G

                        1 Reply Last reply Reply Quote 2
                        • Aury88A Offline
                          Aury88
                          last edited by Aury88

                          during the QtMir build with make -j 6 all test I also had the fatal error described by @jonius :

                          [ 87%] Building CXX object tests/mirserver/ScreensModel/CMakeFiles/ScreensModelTest.dir/screensmodel_test.cpp.o
                          In file included from /home/aurelio/qtmir/src/modules/Unity/Application/mirsurface.h:35:0,
                                           from /home/aurelio/qtmir/tests/modules/SurfaceManager/surface_manager_test.cpp:22:
                          /home/aurelio/qtmir/src/modules/Unity/Application/mirbuffersgtexture.h:20:30: fatal error: miroil/mirbuffer.h: Not existing file or directory 
                          compilation terminated.
                          tests/modules/SurfaceManager/CMakeFiles/surfacemanager_test.dir/build.make:62:  instruction set  for the target "tests/modules/SurfaceManager/CMakeFiles/surfacemanager_test.dir/surface_manager_test.cpp.o" failed
                          make[2]: *** [tests/modules/SurfaceManager/CMakeFiles/surfacemanager_test.dir/surface_manager_test.cpp.o] Error 1
                          CMakeFiles/Makefile2:2146:  instruction set  for the target "tests/modules/SurfaceManager/CMakeFiles/surfacemanager_test.dir/all" failed
                          make[1]: *** [tests/modules/SurfaceManager/CMakeFiles/surfacemanager_test.dir/all] Error 2
                          make[1]: *** waiting incomplete process....
                          

                          and after that

                          [ 95%] Built target applicationmanager_test
                          Makefile:138: instruction set  for the target  "all" failed
                          make: *** [all] Error 2
                          
                          alan_gA 2 Replies Last reply Reply Quote 0
                          • alan_gA Offline
                            alan_g @Aury88
                            last edited by

                            @jonius can you PR your fix? It looks to tidy up the cmake code too.

                            1 Reply Last reply Reply Quote 0
                            • alan_gA Offline
                              alan_g @Aury88
                              last edited by alan_g

                              @aury88 I'm not sure when I'll be at a computer where I can fix this. In the meantime you could google enough git magic to cherry-pick @jonius's fix.

                              UPDATE: I've pushed a fix for the build error. There's still the test failure noted above.

                              @Aury88 You can get the fix with git pull

                              joniusJ 1 Reply Last reply Reply Quote 0
                              • joniusJ Offline
                                jonius @alan_g
                                last edited by

                                @alan_g does that mean no need for a PR from my side?

                                Aury88A alan_gA 2 Replies Last reply Reply Quote 0
                                • Aury88A Offline
                                  Aury88 @jonius
                                  last edited by

                                  @jonius i tried again after the git pull but obtain the same error

                                  alan_gA 1 Reply Last reply Reply Quote 0
                                  • alan_gA Offline
                                    alan_g @Aury88
                                    last edited by

                                    @aury88 said in Introducing Miroil:

                                    @jonius i tried again after the git pull but obtain the same error

                                    Sorry, you'll need a git fetch first.

                                    Aury88A 1 Reply Last reply Reply Quote 0
                                    • alan_gA Offline
                                      alan_g @jonius
                                      last edited by

                                      @jonius said in Introducing Miroil:

                                      @alan_g does that mean no need for a PR from my side?

                                      Well, I've fixed the compile error, but you modernized the code as well. I think that's still worth a PR.

                                      1 Reply Last reply Reply Quote 0
                                      • Aury88A Offline
                                        Aury88 @alan_g
                                        last edited by

                                        @alan_g
                                        Oh! so I totally misunderstood that command...reading the documentation seemed to me git pull already encompass a git fetch and a git merge. also I tried the git pull after the make command and that confirmed the local branch was up-to-date. ok, i will try again after the fetch. thank you.

                                        1 Reply Last reply Reply Quote 0
                                        • alan_gA Offline
                                          alan_g @jonius
                                          last edited by

                                          @jonius said in Introducing Miroil:

                                          @jonius next issue is a failing test (ApplicationManager), which fails here.

                                          I had a look over the weekend. The test is failing in the branch I based this off, and I didn't see an obvious cause for it.

                                          I probably need to find a better base branch for this work. I really find all these QtMir branches a mystery. Maybe the best one is one of those in the gitlab repo?

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post