• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Register
  • Login
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.0k 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.
    • R Offline
      rob
      last edited by 17 Jan 2020, 06:04

      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
      • P Offline
        poVoq
        last edited by poVoq 17 Jan 2020, 12:55

        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
        • D Offline
          dobey
          last edited by 17 Jan 2020, 13:22

          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
          • R Offline
            rob
            last edited by rob 17 Jan 2020, 19:42

            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

            F 1 Reply Last reply 17 Jan 2020, 20:53 Reply Quote 0
            • F Offline
              flohack @rob
              last edited by 17 Jan 2020, 20:53

              @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
              • F Offline
                flohack
                last edited by 17 Jan 2020, 20:55

                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
                • R Offline
                  rob
                  last edited by 17 Jan 2020, 21:26

                  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?

                  F 1 Reply Last reply 17 Jan 2020, 21:46 Reply Quote 0
                  • F Offline
                    flohack @rob
                    last edited by 17 Jan 2020, 21:46

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

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

                    1 Reply Last reply Reply Quote 0
                    • R Offline
                      rob
                      last edited by 17 Jan 2020, 21:48

                      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.

                      F 1 Reply Last reply 17 Jan 2020, 23:52 Reply Quote 0
                      • M Offline
                        makeixo
                        last edited by 17 Jan 2020, 23:07

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

                        1 Reply Last reply Reply Quote 1
                        • F Offline
                          flohack @rob
                          last edited by 17 Jan 2020, 23:52

                          @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
                          • R Offline
                            rob
                            last edited by 18 Jan 2020, 01:00

                            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
                            • D Offline
                              dobey
                              last edited by 18 Jan 2020, 14:36

                              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
                              • R Offline
                                rob
                                last edited by 18 Jan 2020, 20:33

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

                                1 Reply Last reply Reply Quote 0
                                9 out of 14
                                • First post
                                  9/14
                                  Last post