3 ms·
Google does this already[1]. As far as I know, it's possible to boot Android off a mainline kernel - the main obstacle is the lack of drivers in the upstream ke
by forkbomb_ 9y ago
Google does this already[1]. As far as I know, it's possible to boot Android off a mainline kernel - the main obstacle is the lack of drivers in the upstream kernel. Certainly, a lot of the SoCs (especially in older phones) can _boot_ from mainline. Maybe you could even get a serial console, or a picture of tux on the screen. But the OEMs don't really have any incentive to upstream their drivers (or port older platforms to newer kernels) - why bother?
Probably the only instance that I'm aware of where an OEM has actually mainlined support for their own mobile devices is Samsung with some of their Tizen reference devices - "trats"[2], "trats2"[3] (which is pretty much identical to the Galaxy S3), "tm2" and "tm2e"[4]. Of course, these will probably never gain support for certain things like 3D acceleration and the modem in mainline, but it's certainly a good start. (Note: a few Nexus devices seem to have mainline DTS[5], but I'm not sure how complete they are).
[1]: https://android.googlesource.com/kernel/common/ https://android.googlesource.com/kernel/common/
[2]: https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/exynos4210-trats.dts https://github.com/torvalds/linux/blob/master/arch/arm/boot/...
[3]: https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/exynos4412-trats2.dts https://github.com/torvalds/linux/blob/master/arch/arm/boot/...
[4]: https://github.com/torvalds/linux/tree/master/arch/arm64/boot/dts/exynos https://github.com/torvalds/linux/tree/master/arch/arm64/boo...
[5]: https://github.com/torvalds/linux/tree/master/arch/arm64/boot/dts/qcom https://github.com/torvalds/linux/tree/master/arch/arm64/boo...
- pawadu 9y agoYou missed my point. It doesn't have to be a mainstream kernel. The only important part is that it is a fixed kernel version so drivers and such does not need to be re-written with each new android release.
- kasabali 9y ago> It doesn't have to be a mainstream kernel. The only important part is that it is a fixed kernel version This is how it is done already. Google picks a kernel release (historically 3.0, 3.4, 3.10, 3.18, 4.4 etc.) and ports Android patches to that kernel while developing new features as well. Then SoC vendors do their bringups using that kernel tree.
- pawadu 9y agoMy point was, kernel version should not change with every Android release...
- kasabali 9y agoIt's not that they change kernel versions every month to the most recent ones anyway. It's roughly every year and if you check you'll see they're all upstream longterm versions which are supported 2-5 years. A device is released with a specific kernel version and it doesn't get upgraded in devices lifetime even if the same device gets several Android upgrades. Native Nougat devices released in 2017 have kernel 4.4 which was released in early 2016, which is not even considered a new kernel by the upstream standards. What do you expect the benefit everyone gains from sticking to the same kernel for 5 years? What is the point of developing a SoC in 2017 and bringing it up using Linux 2.6.32 instead of Linux 4.4? What is the benefit for Quallcomm, for Google or for users?