aboutsummaryrefslogtreecommitdiff
path: root/plugins
AgeCommit message (Collapse)Author
2022-03-16modem-helpers: improve and fix COPS=? numeric fields parsingAleksander Morgado
The numeric fields in the +COPS=? response were relying on a very weak parsing logic, assuming that they were single-digit numeric values and not using the common string to integer conversion utilities. This commit improves the conversion from the 3GPP/ETSI defined network availability and access technology values to the MM defined ones, providing enum-based matches even if the numeric values are the same. The commit also fixes the parsing of access technology values > 10, required to report 5G related values.
2022-03-09fibocom: new shared interface for common logicAleksander Morgado
The set_initial_eps_bearer_settings() operation is the same in XMM capable and generic MBIM modem objects. Place it in a common shared interface so that we don't duplicate code.
2022-03-09fibocom: toggle modem power after attach APN on mbimJack Song
2022-03-09fibocom: Add reset functionalitySven Schwermer
Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
2022-03-07intel: custom setup for all available AT portsAleksander Morgado
Fully disable send delay as we're using AT ports via the new WWAN subsystem.
2022-03-07xmm: setup single GPS control port exclusivelyAleksander Morgado
Use the same logic always to decide which is the best GPS control/data port, and then perform the initial port setup (GNSS engine off) only that single port.
2022-03-07xmm: prefer port flagged as AT_GPS_CONTROL to manage the GNSS engineAleksander Morgado
Use the new AT_GPS_CONTROL udev tag to decide which is the best port to manage the GNSS engine.
2022-03-07intel: inherit GNSS location support from the shared XMM interfaceAleksander Morgado
We're not going to implement all XMM shared operations from the shared utils, as the newer Intel modems support the new operations in the Microsoft MBIM Extensions. Just inherit the GNSS management capabilities.
2022-03-07intel: periodic signal checks disabled by defaultAleksander Morgado
As we can rely on async MBIM notifications.
2022-03-07intel: SIM hot swap supported by defaultAleksander Morgado
2022-03-07intel: avoid attempting QMI over MBIM in non-Qualcomm deviceAleksander Morgado
2022-03-07intel: disable data over TTY by defaultAleksander Morgado
Only data over NET is expected
2022-03-07intel: new MBIM capable devicesom
2022-03-07intel: new plugin for PCI devices with vendor id 0x8086som
For now, just detecting the device and creating generic MBIM or AT based modems.
2022-03-01build,meson: Fix daemon enums dependenciesIñigo Martínez
meson generates the `mm-daemon-enums-types` source and header files. These are used when building `ModemManager` executable and different plugins. However, these enums are only stated as dependencies on the `ModemManager` executable build. This has been fixed by also adding the generated files targets as dependencies in the required plugins.
2022-03-01plugins: Fix port enums includesIñigo Martínez
The `broadmobi`, `dlink`, `telit` and `tplink` plugins include the `mm-port-enums-types.h` header. However, they do not use any symbol defined there. The `huawei` plugin as includes the `mm-port-enums-types.h` header but it does not include the build targets as dependencies. These issues have been fixed by removing the unnecessary includes from `broadmobi`, `dlink`, `telit` and `tplink` plugins and by including the enums build target in the `huawei` target.
2022-02-19fibocom: remove executable bit from rules fileguihkx
This silents a warning given by udev: Configuration file /usr/lib/udev/rules.d/77-mm-fibocom-port-types.rules is marked executable. Please remove executable permission bits. Proceeding anyway.
2022-02-16fibocom: detect ID_MM_FIBOCOM_INITIAL_EPS_OFF_ON on runtimeAleksander Morgado
We won't create a full new different modem object based on whether the ID_MM_FIBOCOM_INITIAL_EPS_OFF_ON tag is found or not. Instead, we always will create the same object type, and detect whether the OFF/ON cycle is required during runtime.
2022-02-16fibocom: initial EPS settings update always available in parentAleksander Morgado
Assume that the method to change the initial EPS bearer settings is always implemented in the parent, so that we can avoid the runtime check. This also fixes the codepath that would happen if the iface_modem_3gpp_parent->set_initial_eps_bearer_settings == NULL condition was valid, as that would end up with a GTask never completed.
2022-02-16fibocom: toggle modem power after attach APNJack Song
When the attach APN settings are changed, the device will go through a radio on -> radio off -> radio on cycle so that the new changes are taken into consideration. This change is done in a Fibocom-specific MBIM modem implementation because it's working around a firmware bug that would prevent for the attach settings to be considered automatically.
2022-02-16meson,tests: fix DBus service lookup in test-plugin-genericAleksander Morgado
2022-02-09quectel: add name to device IDsDylan Van Assche
fwupd expects device IDs which are unique for each device and its variants. However, Quectel re-uses the same USB VID & PID among different variants such as EG25, EC25, EC20, etc. Moreover, each variant may have subvariants such as EG25GGB, EG25GGC, EG25AFF, EG25AFX, etc. Add the name of the modem to the device IDs to build more unique device IDs such as USB\VID_2C7C&PID_0125&REV_0001&NAME_EC25GGB.
2022-01-26quectel: add Sahara udev tag to EM05 modemsIvan Mikhanchuk
2022-01-21telit: add port hints for Telit LE910C1-EUXDaniele
2022-01-20foxconn: firmware info loading only if MBIM-QMUX enabled in libqmiAleksander Morgado
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/477
2022-01-18quectel: new ID_MM_QUECTEL_FIREHOSE udev tagAleksander Morgado
To identify which devices support the firehose update protocol.
2022-01-18quectel: combine firmware functions in mm-shared-quectelIvan Mikhanchuk
2022-01-18quectel: fix reference cycleAleksander Morgado
The 'update_settings' object must be referenced before the task is completed.
2022-01-11fibocom: Double-check connection after dialingSven Schwermer
Fibocom's documentation states that we must double-check the connection is established when setting up an ECM connection. The possible replies - according to the documentation - are: +GTRNDIS: <state>,<cid>,<ip>,<prim. dns>,<sec. dns> OK or +GTRNDIS: 0 We just care about the state value which is 1 if everything worked.
2022-01-11fibocom: Use ECM bearer if +GTRNDIS is availableSven Schwermer
Some modems might have a net port but don't support +GTRNDIS which is used by the ECM bearer. That case will be caught by this additional check.
2022-01-11fibocom: Add L610 supportSven Schwermer
2022-01-11fibocom: Add udev port rules for MA510-GLSven Schwermer
2022-01-11fibocom: Add bearer for ECM-based connectionsSven Schwermer
2022-01-11fibocom: Subclass broadband modemSven Schwermer
This is required in order to be able to use a custom bearer which in turn is necessary for establishing ECM connections.
2022-01-11plugins/quectel/mm-shared-quectel: use QGMR to set versionDylan Van Assche
Quectel modems report only their major firmware version through AT+GMR, use AT+QGMR instead to report the full firmware version.
2022-01-11plugins/quectel/mm-broadband-modem-qmi-quectel: ignore carrier revisionDylan Van Assche
Quectel EG25-G QMI modem firmware revisions are not matched with carrier configs. Different VoLTE profiles might be selected by the user causing the carrier config revision to change. Since fwupd uses this string for firmware updates, it gets confused and thinks the user has an update available.
2021-12-26iface-modem-3gpp-profile-manager: support 'apn-type' as index fieldAleksander Morgado
The modem may report the 'apn-type' field is the one to be used as index; if that's the case, allow setting and deleting profiles based on the given 'apn-type' field. This change also makes the internal profile management operations use one index field or another, based on what the protocol implements.
2021-12-13ublox: add support to SIM hot swapAlexander Yashin
Main thing that's required to get modem hot-swapping to work is the UDCONF=50,1 command(see u-blox AT-command manual). But there are a lot of u-blox modules which do not support this command. So in this patch, it's supposed that this thing is configured beforehand(Like the UUSBCONF functioning mode) for modules, where SIM hot-swaping feature is possible. For the modems where it's not, the patch will not have any effects. ---- For ublox modems, CIEV: 12(X) messages allow to know if SIM is (un)plugged. The values are encoded as: - 0: no SIM detected - 1: SIM detected It's required from a modem to generate these events about the SIM detection state. To set up these `CIEV: 12,(X)` URC events the `+CMER=1,0,0,1,0` command is used. That command is supported by almost all u-blox modems except SARA-G300/SARA-G310/LEON-G1(For these models the hot-swap feature will not work). As this 12 that is used in CIEV may be completely different in other modules, the test command parsing is quite important to get that index number. So, this logic is also added in cind_simind_format_check_ready function. ---- It seems that it's necessary to issue this `+CMER` set up there despite that the `+CMER` configuration will take place later in the 3GPP interface enabling sequence. Because without it simind indications will not be enabled at all. CMER configuration may be later overwritten by 3GPP interface enabling sequence, but in the worst-case scenario only hot-swap feature will not work.
2021-12-13plugins: ublox: bearer: SIM absence should not break disconnectAlexander Yashin
If we have a modem with an established connection, and then the SIM is getting removed from that modem, this forces modem reprobing sequence. It looks like that: ``` mm-base-modem:mm_base_modem_process_sim_event -> mm-base-modem:mm_base_modem_disable -> mm-base-modem:disable -> mm-broadband-modem:common_disable -> mm-broadband-modem:disabling_step, -> ctx->step=DISABLING_STEP_FIRST -> ctx->step=DISABLING_STEP_WAIT_FOR_FINAL_STATE -> ctx->step=DISABLING_STEP_DISCONNECT_BEARERS ``` At this stage, there is no actual connection existing already, but bearer objects still exist and are still marked as connected. So, if there were any active bearers - they will be disconnected. In order to disconnect, ublox bearer sends +CGACT=0,%u, modem then will return CME ERROR: 10(SIM not inserted): ``` [modem0/ttyACM0/at] --> 'AT+CGACT=0,1<CR>' [modem0/ttyACM0/at] <-- '<CR><LF>+CME ERROR: 10<CR><LF>' [modem0/ttyACM0/at] operation failure: 10 (SIM not inserted) [modem0/bearer0] couldn't disconnect: SIM not inserted ``` this error will break disabling and reprobing. To fix that, it's require to add 'SIM not inserted' state as a valid condition to continue bearer disconnection.
2021-12-10fibocom: update FM101 port type hints to final layoutMingjie Zhang
The port type hints for the FM101 were updated to be in line with the final product layout, where USB interface #2 is now used as an AT port (not ignored) and USB interface #4 is now used as debug port. USB interface #6 is removed as it no longer exists.
2021-12-01udev: avoid [0-9]* as shell globbing patternsAleksander Morgado
The udev rules expect matches based on shell globbing pattern, not based on regex. This means that "[0-9]*" doesn't mean "zero or more digits", it actually means "one digit and zero or more other characters". So, avoid the regex like match, even if it worked for us, because it didn't mean what we thought it meant, plus, it breaks our custom udev rules processing logic, in which we convert the input patterns into real regex expressions. See https://bbs.archlinux.org/viewtopic.php?pid=1415916#p1415916 While at it, also make sure that the wildcard matching is done exclusively for prefix and suffix matches, never in the middle of a string, or our custom rules parser would not match correctly.
2021-11-17iface-modem: use external dispatcher to attempt FCC unlockAleksander Morgado
We remove the built-in FCC unlock procedures from the ModemManager, we will no longer run them automatically, and instead rely on external scripts/programs to do that. Packages providing the external FCC unlock tools can install them in ${pkglibdir}/fcc-unlock.d. Users manually enabling external FCC unlock tools can install them in ${pkgsysconfdir}/fcc-unlock.d. The user-enabled path takes precedence over the package-enabled one.
2021-11-10plugins: add fibocom FM101 to fibocom port types rules fileZhangMingjie
This patch add fibocom FM101 to 77-mm-fibocom-port-types.rules file. which contains two sets of vid and pid pairs, "2cb7:01a2" and "2cb7:01a4".
2021-11-08build,meson: Make feature options booleanIñigo Martínez
Different options are set as `feature`, also every possible plugin, but this may cause confusion. All options set as `feature` but plugins have been made `boolean` to avoid further confusions. `help2man` is also installed in the CI image because is required to build different libraries.
2021-11-04core: replace 'master' with 'main'Aleksander Morgado
2021-11-04core: replace 'dummy' with 'placeholder'Aleksander Morgado
2021-11-04core: replace 'whitelist' with 'allowlist' and 'blacklist' with 'blocklist'Aleksander Morgado
We keep the 'WHITELIST-ONLY' filter type name still as an option in --filter-policy=[POLICY], but deprecated and with the better 'ALLOWLIST-ONLY' replacement suggested from now on.
2021-10-28foxconn: delete the carrier mapping table of T99W175Freedom Liu
For T99W175, Qualcomm realized mcfg switching mechanism in FW side. It can work indepently without MM's help. Therefore, delete mcfg switching mechanism in MM.
2021-10-25telit: allow unlock retries loading for unknown error csim replyDaniele Palmas
When trying to lock the modem LE910S1 replies: 'AT+CSIM=1<CR>' '<CR><LF>ERROR<CR><LF>' but the modem actually supports CSIM unlock retries reporting.
2021-10-25telit: avoid sim hot swap procedure if #QSS is not supportedDaniele Palmas