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

    Ubuntu Touch and Linux Kernel Version

    Scheduled Pinned Locked Moved General
    14 Posts 5 Posters 3.1k Views 2 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.
      • robR Offline
        rob
        last edited by

        Hi folks, please help me understand something that has been confusing me.
        From what I've read here, UT is tied to a Linux 3.x Kernel and this has some effects because drivers in 3.x may not have the same dependencies and with other related code and thus simply moving it to 5.x Kernel will be a problem.

        Then someone told me that the Pinephone uses a 5.x kernel and the CPU will only work with a mainline Linux version. Yet, UT was ported to Pinephone.

        What am I missing here? Is Unity compileable in mainline Linux? I thought it was said many times here the UT is a full OS not just some Desktop environment layer like Plasma Mobile.

        But I was told that I was wrong. And UT had to have used a mainline linux kernel to run on the Pinephone. Or maybe Marius just picked a specific set of drivers and moved them over to UT in whatever the kernel version is (3.x)?

        Or maybe I'm not understanding this at all and I'm really stupid. It is possible. I just want to make sure I know what's up without rolling up my sleeves and compiling a build of UT myself.

        1 Reply Last reply Reply Quote 1
        • poVoqP Offline
          poVoq
          last edited by poVoq

          There are two ways to run UT. With Halium, which is a Android driver compatibility layer and is thus tied to the Kernel used in the Android release for that phone, usually 3.x but can be newer.
          Or you can run it without Halium like the PinePhone or on a RasberryPI in which case you can use what ever Kernel is supported by that device.

          Fairphone 5 (waiting for port)

          1 Reply Last reply Reply Quote 1
          • dobeyD Offline
            dobey
            last edited by

            UT itself is not tied to a specific kernel version (other than it needing to be at least 3.4).

            However, devices which originally shipped with Android and have proprietary blob drivers are tied to the kernel they shipped with, due to the internal API/ABI of the kernel breaking often, so the kernel version can't just be upgraded on those devices.

            On more open devices like PinePhone, Librem 5, Raspberry Pi, or PCs, where this limitation doesn't exist, the upstream linux kernel can be used, without any Android parts at all.

            1 Reply Last reply Reply Quote 5
            • robR Offline
              rob
              last edited by rob

              So UT itself has no Kernel dependencies? No issues with whatever the Wayland, Xwindows, Mir/XMir is? So the display servers have no tie to the Kernel?

              I understand the issue of device drivers tied to the device and provided by the device manufacturer. But there are also drivers that are shared by multiple devices such as bluetooth, ofono... just wondering if those don't care about the kernel either

              flohackF 1 Reply Last reply Reply Quote 0
              • flohackF Offline
                flohack @rob
                last edited by

                @rob Basically we have a minimum requirement of a kernel version, but thats very low, as Canonical was in the same situation: They needed to support 3.4 for example, or maybe even older kernels in the beginning. But, as far as we can see from our Pinephone and Librem5 inverstigations, newer kernels are perfectly fine.

                It is really only the proprietary driver part that keeps you from upgrading (and receiving security and bug fixes) for your Android device. However, Bluetooth for example uses driver backports from 4.2, apparmor 3 is also backported. So, the kernel is a big mess of vanilla kernel, AOSP patches and cherrypicks by Google, vendor patches, and our own patches πŸ˜‰ - its a miracle it ever works.

                My languages: πŸ‡¦πŸ‡Ή πŸ‡©πŸ‡ͺ πŸ‡¬πŸ‡§ πŸ‡ΊπŸ‡Έ

                1 Reply Last reply Reply Quote 2
                • flohackF Offline
                  flohack
                  last edited by

                  Also its a Linux kernel, but consider it rather like a fork - every second patch you try to apply fails as it has diverged from vanilla. And on top, its more like every vendor made its own fork in the worst case. How nice, we got suddenly 24 different flavors of kernel to maintain πŸ˜›

                  Thats why everybody is excited about Non-Android devices: We will finally be able to get that complication out of our way.

                  My languages: πŸ‡¦πŸ‡Ή πŸ‡©πŸ‡ͺ πŸ‡¬πŸ‡§ πŸ‡ΊπŸ‡Έ

                  1 Reply Last reply Reply Quote 2
                  • robR Offline
                    rob
                    last edited by

                    Thank Florian. That is my understanding as well. I looked at some of the discussions in the past about the Bluetooth backports and such that you were involved in.

                    And this has interesting implications if I'm understanding this right. It means UT has more flexibility in the future than I imagined. I though that beyond device drivers, there was something else tying UT to an older Kernel.

                    I thought that PostmarketOS had an edge over UT because it uses a mainline Kernel. I'm so glad to hear that this is not the case. I thought about developing apps for UT but was concerned about a possible dead end at least for an app that's not maintained by UBports.

                    So, the Pinephone version of UT uses mainline? That's confirmed?

                    flohackF 1 Reply Last reply Reply Quote 0
                    • flohackF Offline
                      flohack @rob
                      last edited by

                      @rob Yes its confirmed to be 5.x not sure which minor version though πŸ™‚

                      My languages: πŸ‡¦πŸ‡Ή πŸ‡©πŸ‡ͺ πŸ‡¬πŸ‡§ πŸ‡ΊπŸ‡Έ

                      1 Reply Last reply Reply Quote 0
                      • robR Offline
                        rob
                        last edited by

                        While we're at this, can a GTK app run? Is there some emulation built in already in the main UT? Or this is possible only under Libertine? I haven't tried it yet.

                        I'm thinking I'll have to rewrite in QT.

                        flohackF 1 Reply Last reply Reply Quote 0
                        • M Offline
                          makeixo
                          last edited by

                          Is there any difference e.g. in performance, stability etc.. between a halium or non-halium device?

                          1 Reply Last reply Reply Quote 1
                          • flohackF Offline
                            flohack @rob
                            last edited by

                            @rob I dont think GTK will work out of the box. It will work in Libertine I think. Consider Qt whenever possible, its much more mobile friendly.

                            My languages: πŸ‡¦πŸ‡Ή πŸ‡©πŸ‡ͺ πŸ‡¬πŸ‡§ πŸ‡ΊπŸ‡Έ

                            1 Reply Last reply Reply Quote 0
                            • robR Offline
                              rob
                              last edited by

                              LOL. I learned GTK for the Librem5. Actually without QML they are fairly similar. But I had to ask, one never knows...

                              I should have asked the reverse. Would QT work on the Librem5 PureOS and my guess is it can be made to work. In which case, I should have just stuck with QT.

                              So QT it is

                              1 Reply Last reply Reply Quote 0
                              • dobeyD Offline
                                dobey
                                last edited by

                                GTK+ 3 (whatever version of it is in Ubuntu 16.04) will work out of the box on UT today, although it will not work as well as Qt/QML does.

                                PureOS is using a much newer GTK+ as well as their libhandy which depends on newer GTK+ I think. Once we have fully switched to Wayland as the client protocol, though, one should be able to include a build of the latest GTK+ and libhandy into the click package for an app, and it should just work roughly as well as it would on PureOS.

                                1 Reply Last reply Reply Quote 2
                                • robR Offline
                                  rob
                                  last edited by

                                  thanks dobey. I will test it out when I get the chance.

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