Kernel layer
While the kernel side is not a scope of the KDE project, it could be helpful to get a general overview to support the higher levels of the KDE Telephony stack.
Plasma Mobile currently only supports devices running a mainline Linux kernel. (See also: Porting a new device to Plasma Mobile).
Mobile devices have a component called the WWAN modem. If the system is modular, the modem is still a distinct submodule: typically either soldered to the board or mounted in an mPCIe slot where it uses just the embedded USB bus and power. In modern proprietary phone SoCs, the modem is a couple of chips rather than a distinct module and may use other interfaces: in not a few smartphone SoCs part of the modem has been a processor core on the same die as the application processor, communicating via proprietary on-chip-interfaces and shared memory.
Among other details (like USB or voice-related stack support), the OS kernel should also have appropriate logic implemented to support protocols of the Radio Interface Layer (RIL). Depending on the manufacturer of the modem, it could be a serial (TTY) interface (legacy mode with AT commands), or some modern protocols (like MBIM or QRTR with QMI commands), or some other.
For example, the Pinephone devices has a Quectel EG-25 modem connected to the main ARM SoC via USB. The modem could be accessed with QMI commands via USB thanks to the support of the mainlined Linux kernel.
Mainlined SDM845 smartphones like OnePlus 6 have a modem exposed as a remote processor of the SoC and also working with QMI via QRTR interface and supported on the kernel level.
Handling a protocol like QMI is out of the scope for any kernel driver. It is exported as a character device enabling the userland side to handle it.
See also
- Wireless WAN - Wikipedia
- Radio Interface Layer - Wikipedia
- Qualcomm MSM Interface - Wikipedia
- raspbian - Difference between PPP, QMI and AT commands - Unix & Linux Stack Exchange
- Cellular module(4G/3G/GSM) interface to host processor or microcontroller through UART how the data rate is achieved? - Electrical Engineering Stack Exchange
- Upstreaming support for Qualcomm PCIe modems - Linaro
- what open source software use qrtr? (#45) · Issues · Mobile broadband connectivity / libqmi · GitLab