> Alright, so there is the LineageOS community, which provides weekly updates for an impressive number of smartphones. They provide a practical solution today, and I am very grateful for that. However, such Android based projects will always run behind Google and the phone industry, fixing only symptoms but never the root-cause.
I think it's very ambitious to not base this off of the work being done on Android but of course would love a proper GNU/Linux distro on my phone as well.
Lineage OS (formerly CyanogenMod) will run on a Samsung S II which is 5 years old. It might support some older devices that I am not aware of. I could see it still being supported 5 years down the line.
Yeah, what raised a red flag when reading this project's description was that having a single kernel for all devices and no compatibility layer like libhybris is unfortunately an unrealistic goal in the world of ARM android devices.
An approach that is less likely to result in vaporware would be to maintain ports of Halium to older devices based on LineageOS kernels/drivers, with an optional Alpine Linux userspace.
Otherwise this project is little more than README.md Hacker News bait.
If there are enough helping hands, we could do this as a community.
The bootstrap program, pmbootstrap, is a working base component that makes development much easier (alone the automatically set up cross-compiling with distcc, ccache, armhf and native chroot), so it is definitely more than a README.md.
Also the title says, that the project is "aiming" - which does not say it has reached any of its goals yet. But at some point it needs to be announced to the community, so I might as well do that now, at a point, where other hackers could join in and parallelize development.
The biggest issue in trying to have a long running constantly updating OS on a Android phone is the device drivers.
Instead of trying to reverse engineer and make open source drivers, I think you should try a more generic approach something like a rump kernel or some other generic layer for each Linux kernel version which can simulate the interface needed for the particular kernel driver. That way you don't have to keep porting or reverse engineering device drivers.
Your approach of trying to make an open source driver is a losing one, it requires a lot of work and you can't reasonably keep up with it.
> Of course, the big if there is: Can you reach the critical mass of drivers without the project exhausting itself.
If that were the case, we wouldn't find ourselves in the current quagmire that we're in. Linux kernel already had a huge number of devices supporting it.
The truth is, there is nothing stopping device vendors from releasing a device driver for a specific version, maintaining it for an year or two and then abandoning it. The better approach would be to figure out a stable interface layer for kernel drivers so that you can simply plug and play the vendor supplied device driver.
Could you help me understand your reasoning behind not pairing up with or taking advantage of existing projects like Halium or LineageOS?
I'd love to run mainline Linux without any Android cruft on my old phones, but realise that this would take a lot of effort per each device. Each Android device is different, with its own kernel patches, proprietary modules and sometimes Android-specific userspace HALs. The Tegra in the Nexus 7 was designed to run non-Android Linux, there are native X11 drivers for that thing - that's not the case for devices like my current phone.
> Could you help me understand your reasoning behind not pairing up with or taking advantage of existing projects like Halium or LineageOS?
From the article:
> Of course I am not the only one, that came to this conclusion - especially in the last few weeks with the Halium project rising (greetings!). I am all-in for working together — sharing udev rules, merging Android kernels together, whatever makes sense!
> [...] postmarketOS does not fit the Halium model, as it avoids the Android build system entirely and does not run Android next to GNU/Linux.
> Thanks to Replicant, LineageOS, Halium. Together, we can make the vision of long-lasting, open source smartphone operating systems a reality!
So I see postmarketOS as part of the community. We have multiple projects, that want to provide a more open alternative to Android, on Android devices. This will only work out, if we work together and share, what we can.
postmarketOS differs from the other projects, that it tries to completely cut-off the Android parts. This will be harder for hardware compatibility, but then again, it does not depend on Google's upstream Android code (which does not get developed as a true community project, they only put out the source after they are done developing behind close curtains), and it uses less resources than running Android as second OS next to your regular GNU/Linux.
Regarding kernels and drivers, postmarketOS directly packages LineageOS kernels. Proprietary 3d acceleration will be avoided for now, some tests with "weston-smoke" and other demos showed, that it works fast enough without them. You won't be able to play 3d games, but that's not really in the scope of the project for now.
Very few mobile phone arm devices support device trees. Only Windows Mobile phones provided UEFI (with locked bootloaders). Most ARM devices just attach random shit to random pins and have totally non-upstreamable kernels.
For the most common apps, no, it's not slower in my experience on Nexus 5, 7, 10 and some Samsung tablets.
For older devices, there are performance improvements in the ahead-of-time compilation with upgrades in major versions of the OS.
That helps. Lack of multimedia hardware support for older devices in newer apps can still be an issue.
Running Lineage OS 13 on a nexus 10, I see great performance for all the default apps and google apps. The main source of performance issues I see is apps that do not support the multimedia hardware (eg. arm neon on Nexus 10). Some video apps such as Directv now, HBO GO don't use neon, overheat with high cpu use as a result. Those that do support neon work great, including Netflix and Hulu. So it also depends on app support for hardware.
I don't know if you count it as an old phone but I use it on a Samsung SIII (Wikipedia says that launched 2012) and it's snappy as heck.
The current images are nightlies so I have encountered a few bugs. Previously was running CyanogenMod 13 on a stable image and that was fine (but the CyanogenMod company folded so it wasn't going to get security updates). Looking forward to a stable release of Lineage.
~I don't think Lineage OS 13 exists.~ (edit: it seems it does for some models). CyanogenMod 13 was Android 6 I believe and Lineage 14 nightlies are currently 7.1.2.
It exists. But I guess I get why you might be thinking this: with CM13 there were nightly builds for lots and lots of devices, but with LOS13 they heavily reduced the amount of devices for which they build nightlies.
I'm not sure if this means that they ceased to support LOS13 for these devices entirely. But it does seem that way, on account of how long it's been since the device tree ('DT') and kernel for my phone have seen any update. (HTC One M9, a.k.a. himaul)
Nowadays I just build LOS13 myself every once in a while, because it still receives generic updates and fixes, and luckily the current kernel and DT still work fine. It's just that, while the DT also wasn't updated that often back on CM13, iirc the kernel did receive updates and fixes fairly regularly. With that no longer being the case is why I suspect they halted supporting it at all.
My reason for staying on LOS13 rather than to upgrade to LOS14 is that the Xposed Framework does not exist for LOS14 / Android N. So that's what I'm waiting for. I wish the LOS13 would recognize how many people want to use 13 on the M9 and provide updates even if it's just once a month. Or maybe they do recognise this, but they just don't have the manpower, resources, or heck maybe there were too many problems when users switched from CM to LOS... I don't know.
There is just one really annoying error which I don't know how to fix, which is that the default camera app crashes, I suspect because of face detection. I thought they fixed that on CM13 ages ago. I guess he bug snuck back in. The OpenCamera does not crash, thank heavens, but it's still a nasty issue I wish would be addressed.
Anyway. My point was that it's still possible to build LOS13 for many devices.
If anything newer android versions seem to get faster and use less battery on my nexus 4. I'm trying to avoid resource hungry apps like spotify, google play and Facebook though so ymmv.
I think it's very ambitious to not base this off of the work being done on Android but of course would love a proper GNU/Linux distro on my phone as well.
Lineage OS (formerly CyanogenMod) will run on a Samsung S II which is 5 years old. It might support some older devices that I am not aware of. I could see it still being supported 5 years down the line.
https://download.lineageos.org/