Project

General

Profile

Wiki » History » Version 14

Denis 'GNUtoo' Carikli, 10/05/2020 09:45 PM
add more linux development model explanation

1 1 Denis 'GNUtoo' Carikli
h1. Wiki
2
3
h2. Introduction
4
5
As its "README":https://git.replicant.us/replicant/hardware_replicant_libsamsung-ipc/plain/README says, libsamsung-ipc is a free software implementation of the Samsung IPC modem protocol,
6
found in many Samsung devices.
7
8 10 Denis 'GNUtoo' Carikli
So for instance if you want to run a free software GNU/Linux or Android distribution on a Samsung device like the Galaxy SIII (GT-I9300),
9
you will need an implementation of its modem protocol if you want to be able to call, send SMS, connect to cellular networks, etc.
10
11
Having a very minimal library like libsamsung-ipc enables to use that protocol with with various distributions, daemons, in order to reduce the amount of duplication of work.
12
The consequence is that you will also need another daemon (like rild, or oFono) to use the samsung-ipc protocol, and that daemon will needs to have support for libsamsung-ipc.
13
14 5 Denis 'GNUtoo' Carikli
h2. Infrastructure
15
16 1 Denis 'GNUtoo' Carikli
*git:* libsamsung-ipc git is hosted in "hardware_replicant_libsamsung-ipc":https://git.replicant.us/replicant/hardware_replicant_libsamsung-ipc on the Replicant git infrastructure.
17 6 Denis 'GNUtoo' Carikli
*Mailing list*: libsamsung-ipc uses the "Replicant's mailing list":https://redmine.replicant.us/projects/replicant/wiki/CommunityAndContact#Mailing-list.
18 7 Denis 'GNUtoo' Carikli
*Bug tracking*: We currently uses the "Replicant bug tracker":https://redmine.replicant.us/projects/replicant/issues.
19 5 Denis 'GNUtoo' Carikli
Feel free to also add entries there on issues that affect libsamsung-ipc but not Replicant.
20
In this case it's a good idea to use "Telephony and mobile data" in the category and also mention that it doesn't affect Replicant (if that's not obvious) and how to reproduce the issue if that's applicable.
21 12 Denis 'GNUtoo' Carikli
*IRC*: #replicant on Freenode and OFTC
22
*How to contribute patches*: See the "CONTRIBUTING":https://git.replicant.us/replicant/hardware_replicant_libsamsung-ipc/plain/CONTRIBUTING file in libsamsung-ipc source code.
23 1 Denis 'GNUtoo' Carikli
24
h3. Distributions
25
26
* It is used in Replicant
27
* It can probably be used in other Android distributions as well if libsamsung-ril support the Android version or RIL API in uses by other Android versions and distributions.
28
* In the past, it was also used by "SHR":https://en.wikipedia.org/wiki/SHR_(operating_system) and was probably also available in an external Debian repository.
29 12 Denis 'GNUtoo' Carikli
* It was also used with "webos-ports":https://www.webos-ports.org/wiki/Galaxy_Nexus_Hardware_Overview for a short moment. They probably reused Samsung's nonfree implementation later on. They probably used libhybris in both cases.
30 1 Denis 'GNUtoo' Carikli
31
h3. Build systems
32
33
* It builds under Android with the Android.mk build system
34
* It also builds under GNU/Linux with the autotools build system. This makes it easy to package.
35
36
h3. Telephony daemons
37
38 11 Denis 'GNUtoo' Carikli
* On Replicant it is used by libsamsung-ril which interfaces with Android's rild.
39 1 Denis 'GNUtoo' Carikli
* In the past it was also used with cornucopia's freesmartphone.org, a middleware written in Vala used to support various hardware features of smartphones and tablet in GNU/Linux. The vapi files were removed as they ended up not being used nor maintained anymore.
40
* There are out of tree patches for adding support for it in Ofono.
41
42
h3. Devices
43
44
* It supports the following devices which are currently supported by Replicant:
45
** Galaxy S II (GT-I9100)
46
** Galaxy S III (GT-I9300)
47
** Galaxy Note (GT-N7000)
48
** Galaxy Note II (GT-N7100)
49
** Galaxy Nexus (GT-I9250)
50
** Galaxy Tab 2 7.0 GSM (GT-P3100)
51
** Galaxy Tab 2 10.1 GSM (GT-P5100)
52
** Galaxy Note 8.0 GSM (GT-N5100)
53
* It also supports devices that are not supported anymore by Replicant:
54
** Nexus S (GT-I902x)
55
** Galaxy S (GT-I9000)
56
57
We also welcome patches for devices that Replicant doesn't want to support, and we will do our best to keep the code for them working.
58 13 Denis 'GNUtoo' Carikli
However keep in mind that we might not want to get devices and/or use devices that are give too much control to the modem or don't have removable batteries.
59
Because of that we might rely on testers to ensure that the code continue to work. This is similar to what Linux does to ensure that the drivers keep working.
60
As Linux does a pretty good job at keeping the compatibility with older hardware, we can follow their development models to do the same:
61 2 Denis 'GNUtoo' Carikli
* New patches shouldn't break exiting drivers
62 1 Denis 'GNUtoo' Carikli
* New patches shouldn't break compilation
63
* Anyone can test and report regressions if there are some, so we can fix it with the help of the reporter and/or testers.
64 14 Denis 'GNUtoo' Carikli
* We try to get good enough quality patches and information through the review to be able to maintain that code indefinitely without access to the hardware.
65 1 Denis 'GNUtoo' Carikli
66
h3. Limitations
67
68 4 Denis 'GNUtoo' Carikli
* The protocol implementation is not 100% complete as shown in the "status of libsamsung-ril":https://redmine.replicant.us/projects/replicant/wiki/Libsamsung-ril however it's still been used daily by people using Replicant, so if there are issues, they tend to be known. Replicant has a "Telephony and mobile data section":https://redmine.replicant.us/projects/replicant/issues?v[category_id][]=99 in its bugreporting system with issues and research topics related to libsamsung-ipc.
69 1 Denis 'GNUtoo' Carikli
* At some point a really problematic bug appeared (some SIM cards were not recognized) but it got eventually fixed and it was in another part of the stack (libsamsung-ril).
70 9 Denis 'GNUtoo' Carikli
* Libsamsung-ril needs to be ported to more recent rild API but the work on that has already started.
71 1 Denis 'GNUtoo' Carikli
* It still depends on modem kernel drivers that are not upstream. Android and GNU/Linux distributions using it were all using derivatives of vendor kernels that had the required modem drivers.
72
73
h2. Documentation
74
75
The "Replicant wiki":https://redmine.replicant.us/projects/replicant/wiki has currently most of the documentation on libsamsung-ipc. The "CellularModem":https://redmine.replicant.us/projects/replicant/wiki/CellularModem portal references most of of the modem related pages.