Qualcomm MSM Interface

Last updated

The Qualcomm MSM Interface is a proprietary interface for interacting with Qualcomm baseband processors and is a replacement for the legacy cellular extensions of the Hayes command set. [1] With mobile chipsets, communication between the application processor and the baseband processor happens through shared memory. On PCs with data cards, QMI is exposed through USB. [2] [3]

Contents

Linux

In the Linux kernel, QMI can be used through two mutually exclusive drivers: GobiNet and qmi_wwan. These two drivers take completely different approaches to handle the protocol. GobiNet is a complex proprietary driver which implements within the kernel most of the core protocol logic, while qmi_wwan is part of the upstream kernel and leaves all those tasks to user-space processes, and therefore keeping the kernel driver as small as possible. [1] [4] There are several userspace implementations, such as uqmi on OpenWrt, [5] oFono [6] and libqmi [7]

See also

Related Research Articles

Video4Linux is a collection of device drivers and an API for supporting realtime video capture on Linux systems. It supports many USB webcams, TV tuners, and related devices, standardizing their output, so programmers can easily add video support to their applications.

OpenVPN is a virtual private network (VPN) system that implements techniques to create secure point-to-point or site-to-site connections in routed or bridged configurations and remote access facilities. It implements both client and server applications.

<span class="mw-page-title-main">UEFI</span> Technical specification for firmware architecture

Unified Extensible Firmware Interface is a specification for the firmware architecture of a computing platform. When a computer is powered on, the UEFI-implementation is typically the first that runs, before starting the operating system. Examples include AMI Aptio, Phoenix SecureCore, TianoCore EDK II, InsydeH2O.

Computer operating systems based on the Linux kernel are used in embedded systems such as consumer electronics, in-vehicle infotainment (IVI), networking equipment, machine control, industrial automation, navigation equipment, spacecraft flight software, and medical instruments in general.

<span class="mw-page-title-main">Free and open-source graphics device driver</span> Software that controls computer-graphics hardware

A free and open-source graphics device driver is a software stack which controls computer-graphics hardware and supports graphics-rendering application programming interfaces (APIs) and is released under a free and open-source software license. Graphics device drivers are written for specific hardware to work within a specific operating system kernel and to support a range of APIs used by applications to access the graphics hardware. They may also control output to the display if the display driver is part of the graphics hardware. Most free and open-source graphics device drivers are developed by the Mesa project. The driver is made up of a compiler, a rendering API, and software which manages access to the graphics hardware.

<span class="mw-page-title-main">NDISwrapper</span> Driver wrapper for Windows devices used on Linux

NDISwrapper is a free software driver wrapper that enables the use of Windows XP network device drivers on Linux operating systems. NDISwrapper works by implementing the Windows kernel and NDIS APIs and dynamically linking Windows network drivers to this implementation. As a result, it only works on systems based on the instruction set architectures supported by Windows, namely IA-32 and x86-64.

Netlink is a socket family used for inter-process communication (IPC) between both the kernel and userspace processes, and between different userspace processes, in a way similar to the Unix domain sockets available on certain Unix-like operating systems, including its original incarnation as a Linux kernel interface, as well as in the form of a later implementation on FreeBSD. Similarly to the Unix domain sockets, and unlike INET sockets, Netlink communication cannot traverse host boundaries. However, while the Unix domain sockets use the file system namespace, Netlink sockets are usually addressed by process identifiers (PIDs).

A Bluetooth stack is software that is an implementation of the Bluetooth protocol stack.

<span class="mw-page-title-main">Kernel-based Virtual Machine</span> Virtualization module in the Linux kernel

Kernel-based Virtual Machine (KVM) is a free and open-source virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. It was merged into the mainline Linux kernel in version 2.6.20, which was released on February 5, 2007. KVM requires a processor with hardware virtualization extensions, such as Intel VT or AMD-V. KVM has also been ported to other operating systems such as FreeBSD and illumos in the form of loadable kernel modules.

nouveau (software) Open source software driver for Nvidia GPU

nouveau is a free and open-source graphics device driver for Nvidia video cards and the Tegra family of SoCs written by independent software engineers, with minor help from Nvidia employees.

The Remote Network Driver Interface Specification (RNDIS) is a Microsoft proprietary protocol used mostly on top of USB. It provides a virtual Ethernet link to most versions of the Windows, Linux, and FreeBSD operating systems. Multiple revisions of a partial RNDIS specification are available from Microsoft, but Windows implementations have been observed to issue requests not included in that specification, and to have undocumented constraints.

Lanedo is a professional open source software development consultancy based in Germany. It operates as a European company with limited liability based in Hamburg. The company has been involved with a number of mobile and embedded platforms over the years including Maemo and MeeGo. Their software development has a focus around Linux in general and targeting platforms ranging from mobile and embedded to desktop environments.

OpenWrt is an open-source project for embedded operating systems based on Linux, primarily used on embedded devices to route network traffic. The main components are Linux, util-linux, musl, and BusyBox. All components have been optimized to be small enough to fit into the limited storage and memory available in home routers.

musl Implementation of C standard library for Linux operating system

musl is a C standard library intended for operating systems based on the Linux kernel, released under the MIT License. It was developed by Rich Felker to write a clean, efficient, and standards-conformant libc implementation.

OpenConnect is a free and open-source cross-platform multi-protocol virtual private network (VPN) client software which implement secure point-to-point connections.

postmarketOS Free and open-source operating system for smartphones, based on Alpine Linux

postmarketOS is an operating system primarily for smartphones, based on the Alpine Linux distribution.

WireGuard is a communication protocol and free and open-source software that implements encrypted virtual private networks (VPNs). It aims to be lighter and better performing than IPsec and OpenVPN, two common tunneling protocols. The WireGuard protocol passes traffic over UDP.

<span class="mw-page-title-main">PinePhone</span> Smartphone with Linux-based mobile operating system

The PinePhone is a smartphone developed by Hong Kong–based computer manufacturer Pine64, designed to provide users with full control over the device. This is achieved through the utilization of mainline Linux-based mobile operating systems, assembly of the phone using screws, and facilitating simplified disassembly for repairs and upgrades. The 2G-4GLTE modem, GPS, Wi-Fi, Bluetooth and both cameras can be physically switched off. The PinePhone ships with the Manjaro Linux operating system using the Plasma Mobile graphic interface, although other distributions can be installed by users.

<span class="mw-page-title-main">PinePhone Pro</span> Smartphone with Linux-based mobile operating system

The PinePhone Pro is a smartphone developed by Hong Kong–based computer manufacturer Pine64. The phone is the successor to the PinePhone released in 2019. The default operating system is Sailfish OS. The device is a developer platform with open hardware specifications but with unfinished software. The target group of the device is free and open-source software developers who will develop the software. The device was first shipped to developers in December 2021, and in February 2022 devices were made available to consumers.

References

  1. 1 2 Morgado, Aleksander (December 10, 2013). "Qualcomm Gobi devices in Linux based systems" (PDF). Osmocom.org.
  2. "Qualcomm Linux Modems by Quectel & Co - QMI".
  3. "QMI". postmarketOS wiki.
  4. "QMI/Gobi management in the kernel: qmi_wwan or GobiNet?". SIGQUIT. 2014-06-10. Retrieved 2019-12-06.
  5. "OpenWrt Project: How To use LTE modem in QMI mode for WAN connection". openwrt.org. 3 January 2015. Retrieved 2019-12-06.
  6. "qmimodem\drivers - ofono/ofono.git - Open Source Telephony". git.kernel.org. Retrieved 2019-12-06.
  7. "libqmi". www.freedesktop.org. Retrieved 2019-12-06.