Commit Graph
229 Commits
Author SHA1 Message Date
Aleksander Morgado e65175234b quectel: new custom +CTZU=? parser
Some quectel devices, like the EC25 have a non-standard additional '3'
mode value:

  0: Disable automatic time zone update via NITZ
  1: Enable automatic time zone update via NITZ
  3: Enable automatic time zone update via NITZ and update LOCAL time to RTC
2020-09-04 08:32:30 +00:00
Aleksander Morgado 55ae47a3bb quectel: add udev rules unit tester 2020-08-16 14:17:41 +02:00
Aleksander Morgado 28ad994e37 sierra: XMM-specific features in XMM based modems (e.g. EM7345)
We create XMM-based modems like the EM7345 with XMM-specific features
like the AT+XLCSLSR based GNSS support. E.g.:

  $ mmcli -m a --location-status
    ------------------------
    Location | capabilities: 3gpp-lac-ci, gps-raw, gps-nmea, agps-msa, agps-msb
             |      enabled: 3gpp-lac-ci
             |      signals: no
    ------------------------
    GPS      | refresh rate: 30 seconds

  $ sudo mmcli -m a --location-enable-gps-nmea
  successfully setup location gathering

  $ sudo mmcli -m a --location-get
    --------------------------
    3GPP |      operator code: 214
         |      operator name: 7
         | location area code: 0000
         | tracking area code: 6FFE
         |            cell id: 0465CD20
    --------------------------
    GPS  |               nmea: $GPGSA,A,1,,,,,,,,,,,,,,,*1E
         |                     $GNGSA,A,1,,,,,,,,,,,,,,,,1*1D
         |                     $GNRMC,235951.000,V,,,,,,,,,,N,V*20
         |                     $GNVTG,,T,,M,,N,,K,N*32
         |                     $GNGGA,235951.000,,,,,0,0,,,M,,M,,*5F

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/25
2020-08-10 19:38:38 +02:00
Aleksander Morgado 26b589cc02 broadmobi: new plugin
Right now, just with port type hints for the BM818.
2020-05-10 10:51:45 +02:00
Aleksander Morgado 997e2cefb8 log: define per-module logging for shared utils and plugins 2020-04-08 17:53:42 +02:00
Aleksander Morgado 1c078531a0 build: use AX_IS_RELEASE() and AX_COMPILER_FLAGS()
The autoconf macros AX_COMPILER_FLAGS_{CFLAGS|GIR|LDFLAGS} test
for compiler and linker support of various flags, and add the flags to
the generated output.

If the command-line option '--enable-compile-warnings' is specified to
'configure', a number of additional warning options is also added to the
output. This is the default.

This update requires the presence of the GNU autoconf-archive in the
system.
2020-01-30 11:59:14 +01:00
Aleksander Morgado 09080073ff build: setup plugin selection logic 2019-11-27 10:11:43 +00:00
Aleksander Morgado 1d1f597b55 telit: setup as loadable 'shared' utils 2019-11-27 10:11:43 +00:00
Aleksander Morgado 7bcb8c9515 foxconn: setup as loadable 'shared' utils 2019-11-27 10:11:43 +00:00
Aleksander Morgado fce7892058 xmm: setup as loadable 'shared' utils 2019-11-27 10:11:43 +00:00
Aleksander Morgado b765e88e57 novatel: setup as loadable 'shared' utils 2019-11-27 10:11:43 +00:00
Aleksander Morgado 2d779b97c4 option: setup as loadable 'shared' utils 2019-11-27 10:11:43 +00:00
Aleksander Morgado 23df25f25c sierra: setup as loadable 'shared' utils 2019-11-27 10:11:43 +00:00
Aleksander Morgado 9907407fd1 mbm: skip setting up as common utils library
The Ericsson MBM modem management is only used by the MBM plugin.
2019-11-27 10:11:43 +00:00
Aleksander Morgado a6d76cfceb icera: setup as loadable 'shared' utils 2019-11-27 10:11:43 +00:00
Aleksander Morgado b1c3f1eb1c plugin-manager: dynamically load 'shared' util libraries 2019-11-27 10:11:43 +00:00
Aleksander Morgado d7d2b9108e foxconn: new plugin to support the T77W968
The Dell DW5821e is really a re-branded Foxconn T77W968.
2019-11-13 12:31:58 +01:00
Aleksander Morgado 89c9566ede simtech: implement +CLCC URC based call list management 2019-10-14 15:32:20 +02:00
Aleksander Morgado 81795f3023 simtech: implement GPS support with AT+CGPS
The new logic is available in a new 'MMSharedSimtech' interface which
is implemented both by the generic AT-based MMBroadbandModemSimtech
modem, and by a new QMI-based new MMBroadbandModemQmiSimtech.

Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/issues/112
2019-10-11 09:24:22 +00:00
Aleksander Morgado be4fa661c1 plugins,telit: refactor #BND command support
And added support for several new things, including:
 * Setting "any" band now attempts to set all supported bands.
 * Added new 2G band value '5' (egsm+dcs+pcs+g850).
 * Setup support for two different 3G band combinations, a default one
   plus an alternate one applicable to the LM940/960 models only. The
   alternate combination is selected via udev tags.

During the refactor, the following Telit-specific helpers were also
removed and exchanged with more generic counterparts.
 * mm_telit_bands_contains() -> mm_common_bands_garray_lookup()
 * mm_telit_get_band_flags_from_string() -> mm_parse_uint_list()
2019-09-17 10:52:42 +02:00
Aleksander Morgado 7b3df735cd tplink: new plugin
Includes port type hints for the TP-Link MA260.

  P:  Vendor=2357 ProdID=9000 Rev=00.00
  S:  Manufacturer=TP-LINK, Incorporated
  S:  Product=TP-LINK HSPA+ Modem
  S:  SerialNumber=863745010845895
  C:  #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
  I:  If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
  I:  If#=0x1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
  I:  If#=0x2 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
  I:  If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
  I:  If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
2019-09-11 13:56:57 +00:00
Aleksander Morgado 1334f689e2 dlink: new plugin
Includes port type hints for the D-Link DWM-222.

  P:  Vendor=2001 ProdID=7e35 Rev=02.28
  S:  Manufacturer=Mobile Connect
  S:  Product=Mobile Connect
  S:  SerialNumber=0123456789ABCDEF
  C:  #Ifs= 6 Cfg#= 1 Atr=80 MxPwr=500mA
  I:  If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
  I:  If#=0x1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
  I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
  I:  If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
  I:  If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
  I:  If#=0x5 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
2019-09-11 13:56:57 +00:00
Aleksander Morgado 141e69bc00 plugins,tests: setup new helper utilities for tests
For now, including a handy method from the ublox tests that allows
comparing arrays of bands that may not be sorted.
2019-09-09 12:24:43 +02:00
Aleksander Morgado 24c0c7aa6b huawei: audio channel setup at modem-level
The audio channel setup is shared between all ongoing calls, so it is
a modem-level feature, not specific to a single call.
2019-07-11 23:21:00 +02:00
Aleksander Morgado fca8955721 ublox: +UCALLSTAT as device-level URC, not in-call
+UCALLSTAT is used to report the state of specific calls by index, and
therefore this is not an in-call URC.
2019-07-11 23:21:00 +02:00
Aleksander Morgado 8ec9789e3c quectel: add port type hints for the Quectel LTE-A EG06
ttyUSB0 (if #0): QCDM/DIAG port
 ttyUSB1 (if #1): GPS data port
 ttyUSB2 (if #2): AT primary port
 ttyUSB3 (if #3): AT secondary port
2019-05-30 17:28:13 +02:00
Aleksander Morgado 147facd2ec plugins,test: setup new simple keyfile tester 2019-04-02 12:14:03 +02:00
Aleksander Morgado 2719265cbd dell,dw5821e: install carrier config mapping 2019-04-02 12:14:03 +02:00
Daniele Palmas c7be4af542 telit: add Telit MBIM broadband modem
Modes and band support are added through AT commands.
2019-02-28 16:09:10 +01:00
Daniele Palmas 3921c120b3 telit: move shared functions to mm-shared-telit 2019-02-28 15:42:28 +01:00
Aleksander Morgado fc02b1320c quectel: report fastboot-based firmware update method and settings
We'll check for AT+QFASTBOOT support during runtime.
2019-01-03 18:53:52 +00:00
LiuQiFeng 26e269ec70 dell: support XMM-based devices 2018-12-10 13:13:53 +01:00
Aleksander Morgado 16162a5033 ublox: implement detailed call state transitions with +UCALLSTAT
Among other things, we now support:
  * Dialing to Ringing Out transition.
  * Ringing Out to Active transition.
2018-10-16 17:09:21 +00:00
Aleksander Morgado fa67a4f9bb sierra-legacy: implement connection status monitoring with !SCACT?
Devices like the Netgear AC313U require explicit context monitoring,
otherwise the device may end up disconnected internally and MM would
still think that the connection is ongoing.
2018-10-09 14:34:59 +00:00
Aleksander Morgado 6e5ea39cba dell: implement Unmanaged GPS support for the DW5821e
The DW5821E module is managed in MBIM mode by default, and exposes a
NMEA capable tty in USB interface #4.

Enabling/disabling the NMEA output via the TTY is done with AT
commands, so this implementation requires also a valid AT port in the
system.

Given that the AT commands used to enable/disable this feature are
based on modifying non-volatile memory through AT^NV, this
implementation is very specific to the DW5821E. If we're able to do
the same on other Dell modules in the future, we'll just rename the
new object to a more generic one.
2018-09-12 18:48:41 +00:00
Aleksander Morgado eb01914bd0 ublox: implement custom ICCID loading
Use AT+CCID to query the SIM ICCID, and fallback to parent's +CRSM
based method otherwise.
2018-09-12 17:17:36 +00:00
Aleksander Morgado 59e79c996b cinterion: new 'MMSharedCinterion' interface
Implement a new interface to keep the code shared between the QMI and
non-QMI modem implementations.

While doing that, also fix the parent interface pointer handling, so
that it isn't a static pointer applicable to all modems, and make it a
per-modem specific pointer. Without this fix, ModemManager would crash
if e.g. running with both a QMI and non-QMI Cinterion modem at the
same time.

The new shared Cinterion logic will be in charge of managing all GPS
sources not already managed by the parent interface. E.g. if the
parent implementation already supports QMI-based GPS location (using
the LOC service for example) prefer that to the custom AT-based
logic.
2018-08-21 17:06:55 +00:00
Aleksander Morgado 36e09ef441 fibocom: include udev rules tests 2018-08-21 17:02:39 +00:00
Aleksander Morgado 475e182819 fibocom: support XMM-based devices 2018-08-21 17:02:39 +00:00
Aleksander Morgado f2c508f8b9 xmm: new 'MMBroadbandModemMbimXmm' modem object 2018-08-21 17:02:39 +00:00
Aleksander Morgado 656102633c xmm: new 'MMBroadbandModemXmm' modem object 2018-08-21 17:02:39 +00:00
Aleksander Morgado 917b23bbc7 xmm: new 'MMSharedXmm' modem interface
With support for managing bands and modes.
2018-08-21 17:02:39 +00:00
Aleksander Morgado 142f1d0360 xmm: new common XACT=? parser for Intel XMM based devices 2018-08-21 17:02:39 +00:00
Aleksander Morgado 1b002a3584 fibocom: ignore intel trace port in the L850-GL 2018-08-21 17:02:39 +00:00
Aleksander Morgado af8adcc756 fibocom: new plugin with support for MBIM devices 2018-08-21 17:02:39 +00:00
Aleksander Morgado d5684ff391 quectel: new plugin
For now just creating generic QMI/AT capable modems.
2017-12-05 10:55:24 +01:00
Aleksander Morgado 291300cfcb sierra: enable QMI connection status polling in Netgear AC341U
The Netgear AC341U seems to delay reporting packet service status
indications or actually not even send them. This leaves us with modems
in connected state in ModemManager but actually disconnected. We can
detect this situation by actively polling ourselves the connection
status.

See e.g. this case where the indication is received 2.5 mins after the
first OutOfCall error detected when loading statistics.

    Aug 30 22:52:50 ModemManager[574]: <info>  Modem /org/freedesktop/ModemManager1/Modem/0: state changed (connecting -> connected)
    Aug 30 22:52:50 ModemManager[574]: <info>  Simple connect state (8/8): All done
    Aug 30 22:52:50 ModemManager[574]: <warn>  Reloading stats failed: Couldn't get packet statistics: QMI protocol error (15): 'OutOfCall'
    Aug 30 22:53:20 ModemManager[574]: <warn>  Reloading stats failed: Couldn't get packet statistics: QMI protocol error (15): 'OutOfCall'
    Aug 30 22:53:50 ModemManager[574]: <warn>  Reloading stats failed: Couldn't get packet statistics: QMI protocol error (15): 'OutOfCall'
    Aug 30 22:54:20 ModemManager[574]: <warn>  Reloading stats failed: Couldn't get packet statistics: QMI protocol error (15): 'OutOfCall'
    Aug 30 22:56:21 ModemManager[574]: <info>  bearer call end reason (2): 'generic-client-end'
    Aug 30 22:56:21 ModemManager[574]: <info>  bearer verbose call end reason (3,2000): [cm] client-end
    Aug 30 22:56:21 ModemManager[574]: <info>  Modem /org/freedesktop/ModemManager1/Modem/0: state changed (connected -> registered)
2017-11-23 14:20:39 +01:00
Aleksander Morgado 17b8fcfd77 build: minor build rules reordering for the udev rules tester
Move it after all plugin build rules.
2017-11-11 13:39:16 +01:00
Aleksander Morgado ce203a1f74 ublox: define port type hints for the TOBY-L4
The TOBY-L4 exposes multiple TTY ports, but each of them has different
purposes:

The TTY at interface #2 is a fully capable AT port but shouldn't be
used to start connections, so we flag it as secondary.

The TTY at interface #4 is a non-AT debug port, so we explicitly
ignore it to make probing faster.

The TTY at interface #6 is the fully capable AT port that must be used
as primary port.

The TTY at interface #8 is an AT-capable port but dedicated to FOTA
update operations.
2017-09-15 10:31:21 -07:00
Aleksander Morgado db5619b3eb build,dell: reorder rules last
Dell plugin is a compilation of other plugins, move last.
2017-06-05 15:05:45 +02:00