Project

General

Profile

Upstream » History » Version 12

Denis 'GNUtoo' Carikli, 02/21/2018 04:16 PM

1 12 Denis 'GNUtoo' Carikli
h1. Upstream Linux
2 1 Denis 'GNUtoo' Carikli
3 11 Denis 'GNUtoo' Carikli
h2. Benefits of using Upstream Linux
4 2 Denis 'GNUtoo' Carikli
5 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).
6 2 Denis 'GNUtoo' Carikli
7
Benefits:
8
* 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.
9 11 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 enable Replicant to support devices that are not currently supported by LineageOS.
10
* It would enable the support for devices that are or will be added to upstream Linux.
11 2 Denis 'GNUtoo' Carikli
12
h2. Requirements
13
14
* Adding a generic WiFi HAL for external dongles only requires a device that is supported by Replicant, and that can provide enough power for the dongle.
15 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.
16 2 Denis 'GNUtoo' Carikli
17 4 Denis 'GNUtoo' Carikli
h2. Devices
18
19 5 Denis 'GNUtoo' Carikli
It is best to use a device that requires the least amount of work to be functional under Replicant.
20
More precisely we want to minimize:
21 11 Denis 'GNUtoo' Carikli
* The work needed to have the device usable with upstream Linux.
22 5 Denis 'GNUtoo' Carikli
* The work porting or writing Android hardware abstractions layers.
23
24
To achieve that we can choose a device that:
25
* requires no or very minimal work to be fully supported by Linux.
26
* have less hardware features (so we don't need to support them in Linux and in the HALs).
27
* is easy to buy, so the work can be shared among multiple people.
28
29 6 Denis 'GNUtoo' Carikli
It is also a good idea to keep one image per device, as trying to make a single image that
30 11 Denis 'GNUtoo' Carikli
would work on all ARM device supported by upstream Linux is complicated: Even ARM GNU/Linux
31 6 Denis 'GNUtoo' Carikli
distributions still have some issues with that.
32
33 11 Denis 'GNUtoo' Carikli
h3. Smartphones and tablets with a free software bootloader and work in progress upstream Linux support
34 4 Denis 'GNUtoo' Carikli
35 9 Denis 'GNUtoo' Carikli
|_. Device |_. dts | comments |
36 10 Denis 'GNUtoo' Carikli
| P970 (Optimus Black) | omap3-sniper.dts | no display(no driver), very few peripherals |
37 8 Denis 'GNUtoo' Carikli
38 4 Denis 'GNUtoo' Carikli
h3. Replicant supported Samsung Exynos devices
39
40 7 Denis 'GNUtoo' Carikli
|_. Device |_. dts |
41
| i9100 (Galaxy S II)  | exynos4210-trats.dts  |
42
| i9300 (Galaxy S III) | exynos4412-trats2.dts |
43
44
45 4 Denis 'GNUtoo' Carikli
h3. Allwinner devices
46 1 Denis 'GNUtoo' Carikli
47
h2. See also
48
49
* [[Google Summer of Code 2018]]
50 12 Denis 'GNUtoo' Carikli
51
52
h1. Upstream userspace libraries