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: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.
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 |
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-i9300.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 |
Formfactor | Vendor | Product | Linux dts | Linux status page | Issues | Verdict |
---|---|---|---|---|---|---|
Tablet | Difrnce | DIT4350 | sun5i-a13-difrnce-dit4350.dts | |||
Tablet | Empire Electronix | D709 tablet | sun5i-a13-empire-electronix-d709.dts | |||
Tablet | Empire Electronix | M712 tablet | sun5i-a13-empire-electronix-m712.dts | |||
Tablet | Gemei | G9 Tablet | sun4i-a10-gemei-g9.dts | TODO in the dts | Missing touchscreen | |
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 * Has only 256M of RAM |
Bad fit: not enough RAM |
Smartphone | Nokia | N9 | omap3-n9.dts | https://elinux.org/N9 | * Probably have a signed bootloader * Needs investigation to see if the touchscreen firmware is mandatory |
Would need investigation to see if the touchscreen firmware is mandatory |
Smartphone | Nokia | N950 | omap3-n950.dts | https://elinux.org/N950 | ||
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 | Bad fit: requires a signed Linux kernel in the boot chain |
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 | ||||||
Tablet | Sony | Xperia Z2 Tablet | 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 |
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.
Usage | Replicant | GNU/Linux | comments |
---|---|---|---|
Bluetooth stack | BlueDroid | Bluez | |
GPS hardware support | ? | gpsd |
Usage | Replicant | GNU/Linux | comments |
---|---|---|---|
Unix command line tools | ? | Busybox, Coreutils |