Upstream Linux

Benefits of using Upstream Linux

Currently, Replicant uses device specific Hardware Abstraction Layers, because device manufacturers implemented non-standard kernel interfaces. However, Android works with upstream kernels and supports plug-n-play hardware nowadays, so it makes sense to have generic Hardware Abstraction Layers for the standard interfaces of the Linux kernel (ALSA, V4L2, etc).

Benefits: As GNU/Linux expects standard kernel interfaces, this would also enable to run GNU/Linux out of the box on such devices.
This has some interesting outcomes:

Requirements

Devices

It is best to use a device that requires the least amount of work to be functional under Replicant.
More precisely we want to minimize: To achieve that we can choose a device that:

It is also a good idea to keep one image per device at first, as trying to make a single image that
would work on all ARM device supported by upstream Linux is complicated: Even GNU/Linux
distributions have a hard time doing that for ARM devices.

Linux upstream status

Smartphones and tablets with a free software bootloader and work in progress upstream Linux support

Formfactor Vendor Product Linux dts Linux status Verdict
Smartphone LG Optimus Black omap3-sniper.dts no display(no driver), very few peripherals Too much work required
Tablet Amazon Kindle Fire (first generation) omap4-kc1.dts no display(no driver), very few peripherals Too much work required
Smartphone GTA04 A3 omap3-gta04a3.dts http://projects.goldelico.com/p/gta04-kernel/page/UpstreamStatus/ Good fit: Free software bootloader, very few parts not upstream
Smartphone GTA04 A4 omap3-gta04a4.dts
Smartphone GTA04 A5 omap3-gta04a5.dts

Replicant supported Samsung Exynos devices

Formfactor Vendor Product Linux dts Linux status page Issues Verdict
Smartphone Samsung Galaxy S II (i9100) exynos4210-trats.dts Probably has a signed bootloader
Smartphone Samsung Galaxy S III (i9300) exynos4412-trats2.dts https://blog.forkwhiletrue.me/pages/midas-mainline/ signed bootloader Good fit: Only the modem, touch keys, and small parts are missing upstream but are available as patches on top of it
Smartphone Samsung Galaxy Note 2 (N7100) exynos4412-n710x.dts signed bootloader Good fit: the LCD, the modem, touch keys, and small parts are missing but are available as patches on top of it

Other devices with some upstream support.

Formfactor Vendor Product Linux dts Linux status page Issues Verdict
Smartphone Samsung Galaxy SIII 4G (i9305) exynos4412-i9305.dts https://blog.forkwhiletrue.me/pages/midas-mainline/ Signed bootloader Good fit:
* Not fully supported by Replicant because of its modem but the work can be reused by the Galaxy SIII, Galaxy SII and Note 2
* touch keys, and small parts are missing upstream but are available as patches on top of it.
Smartphone Nokia N900 omap3-n900.dts https://elinux.org/N900 Has a signed bootloader
Smartphone Nokia N9 omap3-n9.dts https://elinux.org/N9 Probably has a signed bootloader
Smartphone Nokia N950 omap3-n950.dts https://elinux.org/N950 Probably has a signed bootloader
Smartphone Motorolla Droid 4 (XT894) omap4-droid4-xt894.dts http://elektranox.org/droid4/ Probably has a signed bootloader, may have a signed kernel requiring kexec
Smartphone Nexus 7 (2012) qcom-apq8064-asus-nexus7-flo.dts Qualcomm SOC (signed bootloader, unknown modem isolation) Bad fit:
* Would need more guarantees requarding the modem isolation on recent qualcomm SOCs
* Would need more research to on the state of free software for more recent qualcom SOCs
* Not enough support in the Linux kernel for devices with Qualcomm SOCs
qcom-apq8064-sony-xperia-yuga.dts
qcom-msm8974-sony-xperia-amami.dts
qcom-msm8974-sony-xperia-castor.dts
qcom-msm8974-sony-xperia-honami.dts
Smartphone Nexus 5 qcom-msm8974-lge-nexus5-hammerhead.dts
Smartphone Samsung Galaxy S5 qcom-msm8974-samsung-klte.dts
Fairphone 2 qcom-msm8974-fairphone-fp2.dts

Allwinner devices

Devices with Allwinner SOCs are an interesting targets because:

For instance the Lime 2 from Olimex is pretty well supported and is easy to find.
However this device is a single board computer and, as such it doesn't have the have the usual peripherals that are commonly found in tablets and smartphones. This makes a port on this device less relevant and less useful.

Some research is needed to identify which devices are easiest to work with. Tablets that don't have a modem seem to be better than smartphones, as supporting the modem would require to have it supported in Linux and the userspace libraries. This might even require to write and upstream a Linux driver for the modem.

A good tablet for this task should have:

It would also be better if the chosen tablet doesn't use an AllWinner SOC with a PowerVR GPU, as MALI GPU have more probability to be usable with free software in the future.

See also

Userspace

Upstream userspace hardware support libraries

Usage Replicant GNU/Linux comments
Bluetooth stack BlueDroid Bluez
GPS hardware support ? gpsd

Upstream non-hardware specific userspace

Usage Replicant GNU/Linux comments
Unix command line tools ? Busybox, Coreutils

Other projects interested in using upstream Linux and/or contributing to it