Project

General

Profile

Upstream » History » Version 147

Denis 'GNUtoo' Carikli, 06/05/2019 10:22 PM

1 12 Denis 'GNUtoo' Carikli
h1. Upstream Linux
2 1 Denis 'GNUtoo' Carikli
3 57 Denis 'GNUtoo' Carikli
{{>toc}}
4
5 100 Denis 'GNUtoo' Carikli
h2. Existing work
6
7
The issue #1882 has some documentation on where the work is being done
8
9 11 Denis 'GNUtoo' Carikli
h2. Benefits of using Upstream Linux
10 2 Denis 'GNUtoo' Carikli
11 11 Denis 'GNUtoo' Carikli
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).
12 2 Denis 'GNUtoo' Carikli
13
Benefits:
14
* It would allow supporting external WiFi dongles such as the ones supported by the ath9k_htc driver and free firmwares without the need for a specific application or configuration.
15 46 Denis 'GNUtoo' Carikli
* It would make devices last longer by alleviating the device specific maintenance burden: If LineageOS stops supporting a Replicant supported device, Replicant would need to maintain it by its own. This would require a lot of work, unless the device is already supported the upstream Linux kernel and generic hardware abstractions layers. This would also enable Replicant to support devices that are not currently supported by LineageOS with a lot less work.
16 11 Denis 'GNUtoo' Carikli
* It would enable the support for devices that are or will be added to upstream Linux.
17 2 Denis 'GNUtoo' Carikli
18 22 Denis 'GNUtoo' Carikli
As GNU/Linux expects standard kernel interfaces, this would also enable to run GNU/Linux out of the box on such devices.
19
This has some interesting outcomes:
20 46 Denis 'GNUtoo' Carikli
* The device specific work could be shared between GNU/Linux communities and Replicant communities. This could result in less work to do to support individual devices. Since Android libraries depends on Android's libc, non-standard proprietary libraries might be harder to reuse than the free software implementations, so we might get even more collaboration thanks to that.
21
* It would enable GNU/Linux distributions to more easily support smartphones and tablets, which would hopefully enable FSDG distributions to be able to focus on usability instead of hardware support. This way, if one day Android devices stop using the Linux kernel, stops being free software, or if the code takes directions that are too much problematic, already having GNU/Linux based Android alternatives would reduce the amount of work needed to be able to get again a fully free software distribution for smartphones and tablets.
22 23 Denis 'GNUtoo' Carikli
* Older devices with less amount of RAM than Replicant current minimum requirements could be used with GNU/Linux and possibly repurposed for other usages, reducing the amount of electronic devices waste.
23 22 Denis 'GNUtoo' Carikli
24 2 Denis 'GNUtoo' Carikli
h2. Requirements
25
26 11 Denis 'GNUtoo' Carikli
* For the other standard interfaces (like ASLA, etc) a device running a upstream Linux Kenrel with as few patches as possible is required.
27 2 Denis 'GNUtoo' Carikli
28 4 Denis 'GNUtoo' Carikli
h2. Devices
29
30 5 Denis 'GNUtoo' Carikli
It is best to use a device that requires the least amount of work to be functional under Replicant.
31
More precisely we want to minimize:
32 11 Denis 'GNUtoo' Carikli
* The work needed to have the device usable with upstream Linux.
33 5 Denis 'GNUtoo' Carikli
* The work porting or writing Android hardware abstractions layers.
34
35
To achieve that we can choose a device that:
36
* requires no or very minimal work to be fully supported by Linux.
37
* have less hardware features (so we don't need to support them in Linux and in the HALs).
38
* is easy to buy, so the work can be shared among multiple people.
39 53 Denis 'GNUtoo' Carikli
* doesn't have more freedom flaws than the devices currently supported by Replicant
40 5 Denis 'GNUtoo' Carikli
41 54 Denis 'GNUtoo' Carikli
It is also a good idea to keep one image per device at first, as trying to make a single image that
42 55 Denis 'GNUtoo' Carikli
would work on all ARM device supported by upstream Linux is complicated: Even GNU/Linux
43
distributions have a hard time doing that for ARM devices.
44 6 Denis 'GNUtoo' Carikli
45 58 Denis 'GNUtoo' Carikli
h2. Linux upstream status
46
47 11 Denis 'GNUtoo' Carikli
h3. Smartphones and tablets with a free software bootloader and work in progress upstream Linux support
48 4 Denis 'GNUtoo' Carikli
49 59 Denis 'GNUtoo' Carikli
|_. Formfactor |_. Vendor |_. Product  |_. Linux dts |_. Linux status | Verdict |
50
| Smartphone | LG | Optimus Black | "omap3-sniper.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/omap3-sniper.dts | no display(no driver), very few peripherals | Too much work required |
51
| Tablet | Amazon | Kindle Fire (first generation) | "omap4-kc1.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/omap4-kc1.dts | no display(no driver), very few peripherals | Too much work required |
52 64 Denis 'GNUtoo' Carikli
| Smartphone | | GTA04 A3 | "omap3-gta04a3.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/omap3-gta04a3.dts |/3. http://projects.goldelico.com/p/gta04-kernel/page/UpstreamStatus/ |/3. Good fit: Free software bootloader, very few parts not upstream  |
53 60 Denis 'GNUtoo' Carikli
| Smartphone | | GTA04 A4 | "omap3-gta04a4.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/omap3-gta04a4.dts |
54
| Smartphone | | GTA04 A5 | "omap3-gta04a5.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/omap3-gta04a5.dts |
55 31 Denis 'GNUtoo' Carikli
56 4 Denis 'GNUtoo' Carikli
h3. Replicant supported Samsung Exynos devices
57
58 65 Denis 'GNUtoo' Carikli
|_. Formfactor |_. Vendor |_. Product |_. Linux dts | Linux status page | Issues | Verdict |
59 130 Denis 'GNUtoo' Carikli
| Smartphone | Samsung | Galaxy S (i9000)  | "s5pv210-galaxys.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/s5pv210-galaxys.dts  | https://github.com/PabloPL/linux/wiki (needs verified, but looks right) | * Probably has a signed bootloader, but u-boot mainline was placed in BL2, copying much of the bootloader work done on the i9300 and n7100 https://github.com/xc-racer99/u-boot-galaxys4g/
60 102 Denis 'GNUtoo' Carikli
* Has shared memory between the modem and the processor running Replicant
61 103 Denis 'GNUtoo' Carikli
* Is supported by Replicant 4.2 but not Replicant 6.0 
62 1 Denis 'GNUtoo' Carikli
* Barely meets Android 9 requirements | |
63 115 Denis 'GNUtoo' Carikli
| Smartphone | Samsung | Galaxy S II (i9100)  | "exynos4210-trats.dts?":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/exynos4210-trats.dts (devboard or i9100?) | We don't know of anyone working to mainline the kernel, but an older kernel was updated that can run Android Pie https://github.com/rINanDO/android_kernel_samsung_smdk4412 | Probably has a signed bootloader | |
64 109 Denis 'GNUtoo' Carikli
| Smartphone | Samsung | Galaxy S III (i9300) | "exynos4412-i9300.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/exynos4412-i9300.dts |/2. https://blog.forkwhiletrue.me/pages/midas-mainline/ + "patch required for Samsung bootloader":https://github.com/fourkbomb/linux/commit/2a6027178ae40c1d3baa965fe21b19cbf09493ce |/2. Bootloader freedom issues:
65
* The bootrom is setup to enforce signatures. It will load a first stage bootloader called 'BL1', which is signed by Samsung.
66
* The BL1 that was shipped on Exynos4412 smartphones and tablets required that Samsung's proprietary s-boot be run as BL2.
67 110 Denis 'GNUtoo' Carikli
* By using BL1 images that were signed by Samsung, but shipped on other Exynos 4412 devices (like dev boards), we now can now use whatever we want after that.
68
* "u-boot":https://github.com/fourkbomb/u-boot was "ported to run after Samsung proprietary BL1":https://blog.forkwhiletrue.me/posts/u-boot-on-galaxy-s3/ . This allows us to remove TrustZone or impliment a libre version of it. The kernels shipped by Replicant are compiled without CONFIG_ARM_TRUSTZONE, so it can work with u-boot but for some reason the display will not work  | Good fit: Only the modem, touch keys, and small parts are missing upstream but are available as patches on top of it |
69 105 Kurtis Hanna
| Smartphone | Samsung | Galaxy Note 2 (N7100) | "exynos4412-n710x.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/exynos4412-n710x.dts | Good fit: the LCD, the modem, touch keys, and small parts are missing but are available as patches on top of it |
70
| Tablet | Samsung | Galaxy Note 8.0 (N51XX) | | The platform is kona, not midas, but it might be fairly easy to port to mainline since it uses the same SoC, same fuelgauge, same audio, same radio chip, and maybe other parts apart from LCD and touchscreen as the i9300 and n7100| If the work done on the i9300 and n7100 bootloader was able to be ported to another SoC, as was done with the i9000, it likely will be easy to port mainline u-boot to this device, which has the same SoC. |
71 1 Denis 'GNUtoo' Carikli
72 143 Denis 'GNUtoo' Carikli
h3. Replicant supported Texas Instruments OMAP4 devices
73
74
|_. Formfactor |_. Vendor |_. Product |_. Linux dts | Linux status page | Issues | Verdict |
75 144 Denis 'GNUtoo' Carikli
| Smartphone | Samsung | Galaxy Nexus (I9250) | None | * "Status on PostmarketOS wiki":https://wiki.postmarketos.org/wiki/Google_Galaxy_Nexus_GSM_(samsung-maguro)#Mainline_Kernel_Status
76
* "mainline fork":https://github.com/drebrez/linux/commits/samsung-maguro | ? | Need to write a DTS |
77 147 Denis 'GNUtoo' Carikli
| Tablet | Samsung | Galaxy Tab 2 7.0 (P31xx) |/2. None |/2. ? |/2. Soldered battery |/2. ? |
78
| Tablet | Samsung | Galaxy Tab 2 10.1 (P51xx) |
79 143 Denis 'GNUtoo' Carikli
80 27 Denis 'GNUtoo' Carikli
h3. Other devices with some upstream support.
81
82 68 Denis 'GNUtoo' Carikli
|_. Formfactor  |_. Vendor |_. Product |_. Linux dts |_. Linux status page |_. Issues |_. Verdict |
83 82 Denis 'GNUtoo' Carikli
| Tablet | Difrnce | DIT4350 | "sun5i-a13-difrnce-dit4350.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun5i-a13-difrnce-dit4350.dts | | | |
84 83 Denis 'GNUtoo' Carikli
| Tablet | Empire Electronix | D709 tablet | "sun5i-a13-empire-electronix-d709.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts | | | |
85 86 Denis 'GNUtoo' Carikli
| Tablet | Empire Electronix | M712 tablet | "sun5i-a13-empire-electronix-m712.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun5i-a13-empire-electronix-m712.dts | | | |
86 81 Denis 'GNUtoo' Carikli
| Tablet | Gemei | G9 Tablet | "sun4i-a10-gemei-g9.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts | "TODO in the dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts#n66 | | "Missing touchscreen":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun4i-a10-gemei-g9.dts#n71 |
87 108 Denis 'GNUtoo' Carikli
| Smartphone | Samsung | Galaxy SIII 4G (i9305) | "exynos4412-i9305.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/exynos4412-i9305.dts | https://blog.forkwhiletrue.me/pages/midas-mainline/ + "patch required for Samsung bootloader":https://github.com/fourkbomb/linux/commit/2a6027178ae40c1d3baa965fe21b19cbf09493ce | Signed bootloader | Good fit:
88 104 Kurtis Hanna
* Not fully supported by Replicant because of its modem but the work can be reused by the Galaxy SIII, Galaxy SII, Note 2, and Note 8.0. 
89 69 Denis 'GNUtoo' Carikli
* touch keys, and small parts are missing upstream but are available as patches on top of it. |
90 73 Denis 'GNUtoo' Carikli
| Smartphone | Nokia | N900 | "omap3-n900.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/omap3-n900.dts | https://elinux.org/N900 | * Has a signed bootloader
91
* Has only 256M of RAM | Bad fit: not enough RAM |
92 75 Denis 'GNUtoo' Carikli
| Smartphone | Nokia | N9 | "omap3-n9.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/omap3-n9.dts | https://elinux.org/N9 |/2. * Probably have a signed bootloader
93
* Needs investigation to see if the touchscreen firmware is mandatory |/2. Would need investigation to see if the touchscreen firmware is mandatory |
94
| Smartphone | Nokia | N950 | "omap3-n950.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/omap3-n950.dts | https://elinux.org/N950 |
95 72 Denis 'GNUtoo' Carikli
| Smartphone | Motorolla | Droid 4 (XT894) | "omap4-droid4-xt894.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/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 |
96 71 Denis 'GNUtoo' Carikli
| Smartphone | | Nexus 7 (2012) | "qcom-apq8064-asus-nexus7-flo.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts | |/8. Qualcomm SOC (signed bootloader, unknown modem isolation) |/8. Bad fit:
97
* Would need more guarantees requarding the modem isolation on recent qualcomm SOCs
98
* Would need more research to on the state of free software for more recent qualcom SOCs
99
* Not enough support in the Linux kernel for devices with Qualcomm SOCs |
100 70 Denis 'GNUtoo' Carikli
| | | | "qcom-apq8064-sony-xperia-yuga.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts |  |
101
| | | | "qcom-msm8974-sony-xperia-amami.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dts | |
102 85 Denis 'GNUtoo' Carikli
| Tablet | Sony | Xperia Z2 Tablet | "qcom-msm8974-sony-xperia-castor.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dts |  |
103 70 Denis 'GNUtoo' Carikli
| | | | "qcom-msm8974-sony-xperia-honami.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts |  |
104
| Smartphone | | Nexus 5 | "qcom-msm8974-lge-nexus5-hammerhead.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts | |
105
| Smartphone | Samsung | Galaxy S5 | "qcom-msm8974-samsung-klte.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts | |
106 80 Denis 'GNUtoo' Carikli
| | | Fairphone 2 | "qcom-msm8974-fairphone-fp2.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dts | |
107 92 Denis 'GNUtoo' Carikli
| Tablet | MSI | Primo81 | "sun6i-a31s-primo81.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun6i-a31s-primo81.dts | | | |
108
| Tablet | Yones TopTech | BS1078 v2 Tablet | "sun6i-a31s-yones-toptech-bs1078-v2.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts | | | |
109 88 Denis 'GNUtoo' Carikli
| Tablet | Allwinner? | Q8 A13 Tablet | "sun5i-a13-q8-tablet.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun5i-a13-q8-tablet.dts | | | |
110
| Tablet | Utoo | P66 | "sun5i-a13-utoo-p66.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts | | | |
111 1 Denis 'GNUtoo' Carikli
| Tablet | Primux | INet-98V Rev 02 | "sun5i-a13-inet-98v-rev2.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun5i-a13-inet-98v-rev2.dts | | | |
112 93 Denis 'GNUtoo' Carikli
| Tablet | Primux | INet-86DZ Rev 01 | "sun8i-a23-inet86dz.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun8i-a23-inet86dz.dts | | | |
113 90 Denis 'GNUtoo' Carikli
| Tablet | Wondermedia? | WM8650-MID Tablet | "wm8650-mid.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/wm8650-mid.dts | | | |
114 91 Denis 'GNUtoo' Carikli
| Tablet | Wondermedia? | WM8850-W70v2 Tablet | "wm8850-w70v2.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/wm8850-w70v2.dts | | | |
115 89 Denis 'GNUtoo' Carikli
| Tablet | Colorfly | E708 Q1 tablet | "sun6i-a31s-colorfly-e708-q1.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun6i-a31s-colorfly-e708-q1.dts | | | |
116 94 Denis 'GNUtoo' Carikli
| Tablet | Polaroid | MID2407PXE03 tablet | "sun8i-a23-polaroid-mid2407pxe03.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts | | | |
117
| Tablet | Polaroid | MID2809PXE04 tablet | "sun8i-a23-polaroid-mid2809pxe04.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts | | | |
118 95 Denis 'GNUtoo' Carikli
| Tablet | Allwinner? | Q8 A23 Tablet | "sun8i-a23-q8-tablet.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts | | | |
119
| Tablet | Allwinner? | Q8 A33 Tablet | "sun8i-a33-q8-tablet.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun8i-a33-q8-tablet.dts | | | |
120 96 Denis 'GNUtoo' Carikli
| Tablet | TBS Biometrics | A711 Tablet | "sun8i-a83t-tbs-a711.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun8i-a83t-tbs-a711.dts | | | |
121 97 Denis 'GNUtoo' Carikli
| Tablet | iNet Tek | iNet Q972 tablet | "sun6i-a31s-inet-q972.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun6i-a31s-inet-q972.dts | | | |
122 98 Denis 'GNUtoo' Carikli
| Tablet | Allwinner? | GT90H Dual Core Tablet (v4) | "sun8i-a23-gt90h-v4.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun8i-a23-gt90h-v4.dts | | | |
123
| Tablet | Allwinner? | GA10H Quad Core Tablet (v1.1) | "sun8i-a33-ga10h-v1.1.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts | | | |
124 99 Denis 'GNUtoo' Carikli
| Tablet | Allwinner? | INet-D978 Rev 02 | "sun8i-a33-inet-d978-rev2.dts":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/sun8i-a33-inet-d978-rev2.dts | | | |
125 27 Denis 'GNUtoo' Carikli
126 1 Denis 'GNUtoo' Carikli
h3. Allwinner devices
127 13 Denis 'GNUtoo' Carikli
128
Devices with Allwinner SOCs are an interesting targets because:
129
* Many of them do not use signed bootloaders.
130
* Many of the SOCs and various devices using them have good Linux and u-boot mainline support
131
132
For instance the Lime 2 from Olimex is pretty well supported and is easy to find.
133
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.
134
135
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.
136
137
A good tablet for this task should have:
138
* A SOC that has good mainline support, see "the Linux mainlining effort page on linux-sunxi":https://linux-sunxi.org/Linux_mainlining_effort for more details.
139
* A Free software bootloader, or the ability to easily add support for the tablet to a free software bootloader.
140
* The ability to power and use an USB WiFi card or chip that is compatible with the ath9k_htc driver.
141
142
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.
143 1 Denis 'GNUtoo' Carikli
144 78 Denis 'GNUtoo' Carikli
h3. Rockchip devices
145
146 79 Denis 'GNUtoo' Carikli
* There is a "Linux upstream status page":http://opensource.rock-chips.com/wiki_Status_Matrix#Mainline%20Kernel%20Status%20Matrix in the "opensource.rock-chips wiki":http://opensource.rock-chips.com
147
* There is also "some information on u-boot":http://opensource.rock-chips.com/wiki_U-Boot in the "opensource.rock-chips wiki":http://opensource.rock-chips.com/
148
149 113 Kurtis Hanna
|_. Formfactor  |_. Vendor |_. Product |_. Linux dts |_. Linux status page |_. Issues |_. Verdict |
150 114 Kurtis Hanna
| Tablet | Acer | Chromebook Tab 10 D651N-K9WT | "rk3399-gru-scarlet.dtsi":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet.dtsi | | "device specs":https://www.acer.com/ac/en/US/content/model/NX.H0BAA.001 Not many android devices use Coreboot as their bootloader, like this device has, but we likely can use Google's Depthcharge payload in Coreboot to boot into Android. Google "did this":https://www.chromestory.com/2016/01/pixel-c-uses-a-chrome-os-boot-image-not-android/ with the Pixel C. "coreboot support for this board":https://review.coreboot.org/cgit/coreboot.git/tree/src/mainboard/google/gru/devicetree.scarlet.cb "android specific code in depthcharge":https://chromium.googlesource.com/chromiumos/platform/depthcharge/+/master/src/boot/android_dt.c | |
151 78 Denis 'GNUtoo' Carikli
152 134 Denis 'GNUtoo' Carikli
h1. Bootloaders
153 131 Denis 'GNUtoo' Carikli
154 122 Denis 'GNUtoo' Carikli
h2. Bootloader status
155 121 Denis 'GNUtoo' Carikli
156 124 Denis 'GNUtoo' Carikli
|_. Formfactor |_. Vendor |_. Product  |_. signatures |_. Source code |_. status |_. Verdict |
157 137 Denis 'GNUtoo' Carikli
|/5. Smartphone |/5. Samsung | Galaxy SIII (I9300) |/5. the first part is signed | "downstream u-boot for the second part":https://blog.forkwhiletrue.me/posts/an-almost-fully-libre-galaxy-s3/ | | |
158 133 Denis 'GNUtoo' Carikli
| Galaxy SIII 4G (I9305) |/3. Could use the same as the Galaxy SIII (I9300) |/3. |/3. |
159
| Galaxy Note 2 (N7100) |
160
| Galaxy Note 2 4G (N7105) |
161 137 Denis 'GNUtoo' Carikli
| Galaxy Nexus (I9250) | "downstream u-boot for the second part":http://ksyslabs.org/ukernels/gnex_uboot/ | | |
162 138 Denis 'GNUtoo' Carikli
| Smartphone | LG | Optimus Black |/5. unsigned | "upstream u-boot":https://git.denx.de/?p=u-boot.git;a=blob;f=configs/sniper_defconfig | no display(no driver), very few peripherals but enough to be usable | |
163
| Tablet | Amazon | Kindle Fire (first generation) | "upstream u-boot":https://git.denx.de/?p=u-boot.git;a=blob;f=configs/kc1_defconfig | | |
164 139 Denis 'GNUtoo' Carikli
|/3. Smartphone |/3. | GTA04 A3 |/3. "downstream u-boot and xloader":http://projects.goldelico.com/p/gta04-uboot/  |/3. |/3. |
165 137 Denis 'GNUtoo' Carikli
| GTA04 A4 |
166
| GTA04 A5 |
167 121 Denis 'GNUtoo' Carikli
168 1 Denis 'GNUtoo' Carikli
h2. See also
169
170
* [[Google Summer of Code 2018]]
171 12 Denis 'GNUtoo' Carikli
172 140 Kurtis Hanna
h1. Upstream GNU/Linux
173 19 Denis 'GNUtoo' Carikli
174
h2. Upstream userspace hardware support libraries
175 1 Denis 'GNUtoo' Carikli
176 17 Denis 'GNUtoo' Carikli
|_. Usage |_. Replicant |_. GNU/Linux |_. comments |
177
| Bluetooth stack | BlueDroid | Bluez | |
178 47 Denis 'GNUtoo' Carikli
| GPS hardware support | ? | gpsd | |
179 16 Denis 'GNUtoo' Carikli
180 20 Denis 'GNUtoo' Carikli
h2. Upstream non-hardware specific userspace
181 18 Denis 'GNUtoo' Carikli
182
|_. Usage |_. Replicant |_. GNU/Linux |_. comments |
183
| Unix command line tools | ? | Busybox, Coreutils | |
184 44 Denis 'GNUtoo' Carikli
185
h2. Other projects interested in using upstream Linux and/or contributing to it
186
187
* "Postmarketos":https://wiki.postmarketos.org/wiki/The_Mainline_Kernel
188 116 Denis 'GNUtoo' Carikli
189 141 Denis 'GNUtoo' Carikli
h2. Upstream Android
190 1 Denis 'GNUtoo' Carikli
191 141 Denis 'GNUtoo' Carikli
h3. LineageOS
192
193 117 Denis 'GNUtoo' Carikli
* See "device-support-requirements.md":https://github.com/LineageOS/charter/blob/master/device-support-requirements.md for more information on LineageOS expectations.
194 120 Denis 'GNUtoo' Carikli
195
The devices "initially supported by LineageOS 16":https://lineageos.org/Changelog-22/ have either:
196
* Qualcomm SOCs
197
* An 'HiSilicon Kirin 970" SOCs for the "Huawei Honor View 10":https://wiki.lineageos.org/devices/berkeley or the "Huawei P20 Pro":https://wiki.lineageos.org/devices/charlotte
198
199 1 Denis 'GNUtoo' Carikli
It may be because they rely on nonfree software to support devices, which has not been ported to Android 9, or may be because they need more time to add devices with other SOCs like exynos.
200 141 Denis 'GNUtoo' Carikli
201
h3. AOSP and LineageOS
202
203
| Feature | AOSP | LineageOS |
204
| Code quality | Better than LineageOS | |
205 142 Denis 'GNUtoo' Carikli
| Documentation | Better than LineageOS | |
206 141 Denis 'GNUtoo' Carikli
| root | Not sure if supported or not | Supported |
207
| GUI features for developers
208
* Advanced reboot | ? | Supported |