Commit Graph
165 Commits
Author SHA1 Message Date
Aleksander Morgado 58c955f5f2 core: allow building and running without udev
Instead of relying on the udev daemon and GUDev to manage the devices reported
by the kernel, we can now run ModemManager relying solely on the kernel events
reported via the new ReportKernelEvent() API. Therefore, the '--no-auto-scan'
option is implicit for the ModemManager daemon when udev is disabled in the
build.

Additionally, a new custom implementation of the kernel device object is
provided, which uses sysfs to load the properties and attributes required in
each kernel device, instead of using a GUdevDevice.

The udev rule files are kept in place, and a simple custom parser is provided
which preloads all rules in memory once and then applies them to the different
kernel objects reported via ReportKernelEvent(), e.g. to set port type hints.
A simple unit test setup is prepared to validate the udev rules during the
`check' Makefile target.
2016-09-29 15:43:05 +02:00
Aleksander Morgado aa4577dfb9 core: new kernel device object instead of an explicit GUdevDevice
Instead of relying constantly on GUdevDevice objects reported by GUdev, we now
use a new generic object (MMKernelDevice) for which we provide an initial GUdev
based backend.
2016-09-29 15:43:05 +02:00
Daniele Palmas 1af8304a8f build: modified Telit and Dell sections
This patch adds section for building Telit common code and modifies
Dell section for using Telit library
2016-05-03 11:44:39 -05:00
Aleksander Morgado f9c63bfa05 build,plugins: update build rules
We try to combine in common envvars the compiler and linker flags shared by the
different components, and where possible, also re-using the implicit AM_CFLAGS
and AM_LDFLAGS variables that automake provides, and which apply to all objects
being built in the same Makefile.am.

The plugins build rules are also updated so that whenever a plugin has some
testable 'helpers', these are compiled into a noinst library and then the new
library included by both the plugin and the tester program. This avoids multiple
recompilations of the same sources for different objects.
2016-03-15 19:15:25 +01:00
Aleksander Morgado 3b8361eb06 build,core: update build rules
We try to combine in common envvars the compiler and linker flags shared by the
different components, and where possible, also re-using the implicit AM_CFLAGS
and AM_LDFLAGS variables that automake provides, and which apply to all objects
being built in the same Makefile.am.

The internal libmodem-helpers.la library is also renamed to libhelpers.la
2016-03-15 19:15:25 +01:00
Thomas Sailer 504f422ddd thuraya: add plugin for the Thuraya XT satellite phone modem
Signed-off-by: Thomas Sailer <t.sailer@alumni.ethz.ch>
2016-02-11 15:40:45 +01:00
Aleksander Morgado 1bdb1a558a build: require GLib 2.36
We now need it for GTask support.
2016-01-24 15:26:12 +01:00
Aleksander Morgado aae96778c5 build: don't redefine test_modem_helpers_telit_LDADD 2015-12-19 11:56:07 +01:00
Carlo Lobrano c4ffe572ae telit: add load_unlock_retries interface 2015-12-19 11:39:48 +01:00
Riccardo Vangelisti be09f500bd huawei: added proprietary Huawei call handling 2015-08-02 10:39:47 +02:00
Aleksander Morgado d5adce08f5 build: only compile dbus tests if GIO >= 2.34 is available 2015-04-17 09:58:24 +02:00
Aleksander Morgado 57b5ffa8c4 gobi: remove plugin
There's no real need for a custom Gobi plugin any more. All the vendor-specific
Gobi-powered modems should be handled by vendor-provided plugins supporting QMI
modems; or otherwise, as a last resort, by the generic plugin.
2015-02-18 20:00:01 +01:00
Aleksander Morgado 93d6e4f102 dell: new Dell plugin
For Dell-branded Novatel, Sierra and Ericsson modems.

The Novatel plugin will no longer accept every Dell-branded modem, which was
the current situation. Instead, a new Dell plugin will take care of probing for
the correct vendor string, and based on the results create a specific Novatel,
Sierra or Ericsson modem.

In order to properly support this, the Novatel, Sierra and MBM plugins now
export their implementations into non-inst libraries that the Dell plugin will
import.

Also, for now, the Dell plugin doesn't make any difference between e.g. Sierra
or Ericsson MBIM implementations, just a generic MBIM modem is created in both
cases, as that is anyway what the Ericsson MBM and Sierra plugins do already.

https://bugs.freedesktop.org/show_bug.cgi?id=86713
2015-02-16 17:33:37 +01:00
Aleksander Morgado 6bbc4c1746 sierra: move all the legacy Sierra support to a new 'sierra-legacy' plugin
In short:

  * The 'sierra-legacy' plugin will handle all the old AT based modems,
    including the DirectIP ones. This plugin is filtered by driver ('sierra' or
    'sierra_net') and forbidden-drivers ('qmi_wwan' and 'cdc_mbim'). This plugin
    should also grab HP and AT&T branded models if they are handled by the
    proper kernel driver.

  * The 'sierra' plugin will only handle QMI or MBIM based Sierra modems, which
    are really all the new ones. This plugin is filtered by VID (0x1199) and
    driver (qmi_wwan and cdc_mbim).

For this separation to work, the 'sierra' and 'sierra_net' plugins need to be
complementary to each other.
2015-02-16 17:33:37 +01:00
Aleksander Morgado 5a268430c4 mbm: build a common non-inst library with the core Ericsson modem support 2015-02-16 17:30:38 +01:00
Aleksander Morgado 2992801663 sierra: build a common non-inst library with the core Sierra modem support 2015-02-16 17:30:38 +01:00
Aleksander Morgado 60a17df4c7 novatel: build a common non-inst library with the core Novatel modem support 2015-02-16 17:30:38 +01:00
Aleksander Morgado 7c929b5cf1 novatel: move custom init method to separate source files 2015-02-16 17:30:38 +01:00
Aleksander Morgado 4a0a10c795 haier: new Haier plugin to handle port type hints in the CE81B
https://bugzilla.gnome.org/show_bug.cgi?id=685011
https://bugs.freedesktop.org/show_bug.cgi?id=85001
2015-01-15 10:28:46 +01:00
Jakub Sitnicki 7552030ef9 build: add code coverage support
Build all targets, except for CLI tools (mmcli, uml290), with special
flags needed for collecting code coverage information when the build has
been configured with --enable-code-coverage.

Three new targets are available in the top build directory:

 - `check-code-coverage' runs the test suite and generates a code
   coverage report,

 - `code-coverage-capture' generates a code coverage report from already
   collected data, which can come in handy when one wants to see code
   paths touched by a particular test,

 - `code-coverage-clean' removes the collected coverage data and the
   generated reports.
2015-01-11 19:32:43 +01:00
Aleksander Morgado 15a3ebbd35 cinterion: enable GPS location reporting for the PHS8 in QMI-mode
The PHS8 in QMI-mode doesn't support GPS location retrieval via QMI, so we will
fallback to use the AT-based setup and the TTY for reading NMEA traces.
2014-07-01 15:46:57 +02:00
Aleksander Morgado 8f837b830d cinterion: enable GPS location reporting for the PHS8 in AT-mode
This enables support for GPS location reporting when the PHS8 is NOT used in QMI
mode.
2014-06-27 13:18:29 +02:00
Dan Williams 02f9b926cd broadband-bearer-mbm: support IPv6 DNS and use static IPv4 configuration 2014-06-13 11:30:49 -05:00
Dan Williams a416d8056c broadband-bearer-icera: add IPv6 support
Split out the %IPDPADDR parsing into a helper and add testcases for it,
and add support for IPv6 handling.  If the returned IPv6 is link-local,
the address should be assigned to the interface and SLAAC performed to
retrieve the actual IPv6 prefix and RDNSS/DNSSD information.
2014-06-13 11:30:49 -05:00
Aleksander Morgado 82067915d1 cinterion: use AT^SCFG=? to parse supported bands in 3G devices 2014-02-28 16:35:18 +01:00
Dan Williams 9e1472d5ec trivial: fix dist of gsm-port.conf 2014-02-17 12:34:05 -06:00
Aleksander Morgado bff2a8d2f2 tests: added support for DBus service tests
We can now run 'simulated' modems against a ModemManager running in its own
session bus.
2014-02-13 13:41:58 +01:00
Aleksander Morgado afabde0f2c build: fix linker flags when building plugins
MM_LIBS was missing in PLUGIN_COMMON_LINKER_FLAGS, and replace GUDEV_LDFLAGS
with GUDEV_LIBS.
2014-01-17 11:58:18 +01:00
Aleksander Morgado 0dcf609dcc huawei,tests: enable log traces in the tests 2013-12-09 23:07:18 +01:00
Aleksander Morgado fcc2b1be2c altair-lte: fix LDFLAGS in the helper tests 2013-10-31 11:33:26 +01:00
Prathmesh Prabhu 09ea458f78 altair-lte: obtain subscription state of SIM from registration failure code
This patch uses the extended error code after a registration failure to
determine if the SIM in the relevant modem is associated with a non-provisioned
account. It uses the standard AT+CEER command, but the implementation is
restricted to the altair plugin.
2013-10-10 08:29:56 +02:00
Lionel Landwerlin 43d1c904e6 plugins: fix linkage of huawei test program
https://bugzilla.gnome.org/show_bug.cgi?id=704481
2013-09-19 11:25:57 +02:00
Lionel Landwerlin b330752432 plugins: add missing linker flags
https://bugzilla.gnome.org/show_bug.cgi?id=704481
2013-09-19 11:25:41 +02:00
Quentin.Li c22eca999b mtk: add plugin for various MediaTek devices
Signed-off-by: Quentin.Li <snowmanli88@gmail.com>
2013-09-16 11:53:58 -05:00
Dan Williams 73978cbe6f sim-huawei: add SIM class to handle ICCID request
Use AT^ICCID if possible to read the ICCID.
2013-09-10 09:42:37 +02:00
Dan Williams b8e8c2a56d telit: install udev rules 2013-09-06 21:36:01 -05:00
Dan Williams f3d9c35e9b build: fix multiply defined EXTRA_DIST
plugins/Makefile.am:375: warning: EXTRA_DIST multiply defined in condition TRUE ...
gtester.make:6: ... 'EXTRA_DIST' previously defined here
plugins/Makefile.am:1:   'gtester.make' included from here
2013-07-11 09:07:12 -05:00
Aleksander Morgado 8d0ec0fc24 huawei: new helper to parse ^NDISSTATQRY responses 2013-07-11 09:39:21 +02:00
Dan Williams 89ae657fce telit: add basic plugin for Telit 3GPP and 3GPP2 devices 2013-05-06 12:38:50 -05:00
Aleksander Morgado cb45de048f plugin: allow plugins to require MBIM probing of cdc-wdm ports 2013-04-17 15:19:37 +02:00
Dan Williams f770ea43c2 huawei: fix up udev rules file name 2013-04-11 14:46:43 -05:00
Franko Fang 9d4091cc89 huawei: flag modems which support NDISDUP 2013-04-09 18:41:14 +02:00
ori inbar 84e68cd4cd altair-lte: initial altair lte plugin 2013-04-04 09:39:37 +02:00
Aleksander Morgado b9b5ca39df mbm: wait for unlock reporting READY after PIN/PUK unlock
MBM modems will lie about the unlock status just after having sent a
correct PIN or PUK. So, explicitly wait to get in READY state after having
sent the PIN or PUK, before keeping on.

https://bugzilla.gnome.org/show_bug.cgi?id=696702
2013-03-29 20:17:59 +01:00
Franko Fang 696403e50a huawei: handle modems exposing 'net' ports with AT^NDISDUP
Modems with ECM (e.g. usb0) ports should use AT^NDISDUP in the control port to
request the connection and afterwards just fire up the DHCP client in the net
port.

This patch is originally developed by:
  Franko Fang <fangxiaozhi@huawei.com>

And afterwareds reviewed and updated by:
  Aleksander Morgado <aleksander@gnu.org>
2013-01-16 10:56:53 +01:00
Aleksander Morgado 5c8ef351bb pantech: create a Pantech-specific SIM object
We'll just skip most SIM info retrieval commands based on AT+CRSM, as they seem
to be unsupported.
2012-10-15 13:34:16 +02:00
Aleksander Morgado fa76ca95a7 via: new 'Via CBP7' plugin
This is the port to git master of the following commit:

commit ff8c60641aa2ea41080c15f81f633b3f78e07bf8
Author: Dan Williams <dcbw@redhat.com>
Date:   Mon Sep 10 17:12:38 2012 -0500

    via: new plugin for CBP7-based CDMA and EVDO devices (bgo #683525)

    The Via baseband is used in a number of CDMA/EVDO devices, from
    ChinaTelecom USB sticks, to the Fusion Wireless/UBlox 2770p, to
    various Motorola Android phones.
2012-10-09 16:42:40 +02:00
Aleksander Morgado 7cd047b75d build,plugins: include missing builddir in CPPFLAGS
Built files in the ModemManager daemon (e.g. mm-serial-enums-types.[c|h]) will
be available in ${top_builddir}/src, not in ${top_srcdir}/src.
2012-10-04 12:25:35 +02:00
Aleksander Morgado b6d628b3a1 build: merge libmm-common into libmm-glib
It's pointless to have libmm-common around, just merge it into libmm-glib and
make ModemManager depend on libmm-glib directly. At the end, the non-common
stuff in libmm-glib is really minimal.
2012-10-04 10:17:05 +02:00
Aleksander Morgado 4804c37604 build: new `--without-qmi' configure option
For those who don't care about the QMI support through libqmi-glib, or if you're
stuck with glib 2.30 (libqmi-glib requires 2.32), this configure switch allows
disabling the QMI support completely.

The logic to detect cdc-wdm ports is still in place, but the QMI probing is
never launched at them. Also, all QMI-related objects won't be compiled.
2012-09-05 20:02:31 +02:00