diff options
author | Yegor Yefremov <yegorslists@googlemail.com> | 2024-01-23 11:11:10 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2024-01-25 15:10:31 +0000 |
commit | 18144e73bcf04871c10e09157d31d15754f50772 (patch) | |
tree | 63bb6a35f3c2f9a54afa11a8fa18607e8abbeb95 /README.md | |
parent | 030ec7c5bb0cde247c3d0300e121d5e8804cd905 (diff) |
build: convert README to markdown
Also add SPDX license identifier and a copyright notice.
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 00000000..0e848691 --- /dev/null +++ b/README.md @@ -0,0 +1,57 @@ +<!-- +SPDX-License-Identifier: GPL-2.0-or-later + +Copyright (C) 2008 Tambet Ingo <tambet@gmail.com> +--> + +# ModemManager + +ModemManager provides a unified high level API for communicating with mobile +broadband modems, regardless of the protocol used to communicate with the +actual device (Generic AT, vendor-specific AT, QCDM, QMI, MBIM...). + +## Using + +ModemManager is a system daemon and is not meant to be used directly from +the command line. However, since it provides a DBus API, it is possible to use +'dbus-send' commands or the new 'mmcli' command line interface to control it +from the terminal. The devices are queried from udev and automatically updated +based on hardware events, although a manual re-scan can also be requested to +look for RS232 modems. + +## Implementation + +ModemManager is a DBus system bus activated service (meaning it's started +automatically when a request arrives). It is written in C, using glib and gio. +Several GInterfaces specify different features that the modems support, +including the generic MMIfaceModem3gpp and MMIfaceModemCdma which provide basic +operations for 3GPP (GSM, UMTS, LTE) or CDMA (CDMA1x, EV-DO) modems. If a given +feature is not available in the modem, the specific interface will not be +exported in DBus. + +## Plugins + +Plugins are loaded on startup, and must implement the MMPlugin interface. It +consists of a couple of methods which tell the daemon whether the plugin +supports a port and to create custom MMBroadbandModem implementations. It most +likely makes sense to derive custom modem implementations from one of the +generic classes and just add (or override) operations which are not standard. +There are multiple fully working plugins in the plugins/ directory that can be +used as an example for writing new plugins. Writing new plugins is highly +encouraged! The plugin API is open for changes, so if you're writing a plugin +and need to add or change some public method, feel free to suggest it! + +## License + +The ModemManager and mmcli binaries are both GPLv2+. +The libmm-glib library is LGPLv2+. + +## Code of Conduct + +Please note that this project is released with a Contributor Code of Conduct. +By participating in this project you agree to abide by its terms, which you can +find in the following link: +https://www.freedesktop.org/wiki/CodeOfConduct + +CoC issues may be raised to the project maintainers at the following address: +modemmanager-devel-owner@lists.freedesktop.org |