Online / 5 & 6 February 2022


Porting mainline Linux to mobile phones

A general overview of porting Linux to mobile phones, with a focus on Qualcomm. From the device tree to how you get started and why you should do it.

Android phones have long been plagued by being based on old versions of the Linux kernel which are seldom patched against vulnerabilities and other security flaws. Additionally being based on old versions which are most of the time not being maintained by anyone anymore a vendor has to evaluate if a given patch applies to the old kernel version they are using or not and modify the patch if necessary. This problem has been somewhat mitigated by closer collaboration between SoC vendors and the Linux kernel community (LTS kernels) but this only applies to drivers and components that are actually present in the main branch of the Linux kernel. Drivers only present in vendor-maintained branches often get left out of security and general bug fixes.

Unfortunately for many companies there isn't a clear financial reason to clean up device drivers and submit them upstream, so in this talk I will give an introduction into how you can get started in making your device run a kernel that's based on mainline Linux.

Running alternative operating systems (other than Android) on your phone is in some cases possible with the kernel provided by the vendor but in these cases you need to rely on solutions like libhybris to work with proprietary user space binaries and libraries to make hardware work. Running 100% open source software while using a vendor-provided kernel ("downstream kernel") is not feasible due to the sheer number of proprietary user space components that would need to be replaced. But with a mainline kernel you can get to a fully free and open source operating system for your phone. And this talk will give you can introduction to some of the basics in getting started with running mainline Linux kernel on your phone and some of the tips and tricks that I have learned over the years.


Luca Weiss