Support for the Dell DW5825e / Fibocom FM101 (Qualcomm X12 chipset) - what am I missing?

Dan Williams dan at ioncontrol.co
Mon May 19 14:28:23 UTC 2025


On Mon, 2025-05-19 at 15:43 +0200, johanngerbhoff at tutamail.com wrote:
> 
> Hi everyone,
> 
> managed to get the DW5825e working with SELinux on Tumbleweed via the
> following steps:
> 
> ### SELinux Setup ###
> 
> --> install necessary tools if they aren't yet installed
> sudo zypper in restorecond policycoreutils policycoreutils-devel
> selinux-policy-devel setools-console
> 
> --> set SELinux policy to permissive in /etc/selinux/config
> 
> --> reboot, create APN settings in NetworkManager and connect once to
> your mobile network
> 
> --> analyze the audit log to see the behaviour SELinux wants to
> block.
> 
> sudo audit2allow -w -a
> 
> --> if the only denied entries are related to ModemManager,
> fibo_config, fibo_flash, fibo_helperd and dmidecode, you can
> automatically generate a SELinux module to allow the execution of
> these tools via audit2allow.
> 
> sudo audit2allow -a -R -M fibocomservices
> 
> !! This command might fail with "could not open interface info
> [/var/lib/sepolgen/interface_info]" !!
> !! This can be fixed by running sudo sepolgen-ifgen and then running
> the audit2allow command again !!
> 
> --> install the generated module:
> 
> sudo semodule -i fibocomservices.pp
> 
> --> SELinux should now play nice with the Fibocom services.
> --> set SELinux policy to enforcing in /etc/selinux/config
> --> reboot and the connection should succeed now with SELinux
> enabled.

It might be worth submitting the policy to Fibocomm's github repo as a
PR too.

I think that would be "audit2allow -a -R -m fibocomservices" and then
you'll end up with a ".te" (type enforcement) file that you can put in
the PR. It should look something like
https://github.com/stefanberger/swtpm/blob/master/src/selinux/swtpm.te

I'm a bit hazy on process of getting the .te file into something that
can get shipped with a package; looking at some Fedora packages that
ship SELinux policy looks more complicated than I recall. 

But the ".te" file is the start; would you be able to post that output
here?

> 
> 
> I've also posted the working build instructions to the OpenSuse
> forums in the hope that someone might create and maintain an easily
> installable package (unfortunately I myself lack the knowledge and
> resources to do
> so): https://forums.opensuse.org/t/got-the-dell-dw5825e-fibocom-fm101
> -lte-modem-working-on-tumbleweed-would-anyone-be-up-for-packaging-
> and-maintaining-the-necessary-fibocom-software/185130

Good work; thanks for sticking with it!

Dan

> 
> Best,
> Jo
> 
> 15. Mai 2025, 17:17 von :
> > Hi everyone. 
> > 
> > I found the culprit responsible for the wonky behaviour of
> > ModemManager not connecting when auto-launched but working okay
> > when launched manually. It's SELinux, which is per default set to
> > enforcing on OpenSuse. When set to permissive, the modem now works
> > flawlessly with the build.
> > 
> > Obviously disarming SELinux is not ideal so I'll have to learn to
> > write a custom SELinux policy to enable the DW5825e with the
> > enforcing mode. I can't promise any immediate results in this
> > regard as this is something completely new to me - but I'm on it.
> > 
> > Here are the working building instructions for enabling the DW5825e
> > on OpenSuse Tumbleweed (tested with snapshots 20250513 and
> > 20250501):
> > 
> > ---
> > 
> > Fibocom FM101 / Dell DW5825e OpenSUSE Build:
> > 
> > ### Source: ###
> > https://github.com/fibocom-pc/linux_apps_opensource
> > 
> > ### How it works ###
> > ModemManager calls fibo_ma (via the fcc unlock script corresponding
> > to the modem's hardware id) which performs the necessary magic for
> > a FCC unlock.
> > The closed-source fibo_ma calls fibo_helper_service which provides
> > a dbus interface for comms with the modem.
> > 
> > ### SELinux not working ###
> > The modem fails to connect if SELinux is set to enforcing in
> > /etc/selinux/config.
> > For now, set it to permissive.
> > !!! This is dangerous and ugly !!!
> > 
> > 
> > fibo_flash.service is used to flash the firmware to the modem ->
> > needs the OEM FwFlashSrv firmware file from Dell. The firmware
> > flashed is persistent though, so I think a once successfully
> > flashed modem should continue working successfully.
> > fibo_config.service applies config settings from a provided
> > fbwwanConfig.ini to the modem. The file provided by Dell is the
> > same one as the one in the Fibocom Github repo.
> > 
> > fibo_ma seems to check via dmidecode whether the modem and chassis
> > are Dell devices and refuses to fcc unlock the modem if this check
> > fails.
> > 
> > ### Files needed from Dell Ubuntu 22.04 OEM Install ###
> > /opt/fibocom/fibo_flash_service/FwFlashSrv (Firmware)
> > /opt/fibocom/fibo_ma_service/fcc-unlock.d (ModemManager FCCUnlock
> > files)
> > --> only 413c:8213 is needed but copy the other hw ids for future
> > use as well
> > --> needs to be made available to ModemManager in OpenSuse: Should
> > be linked to /usr/lib64/ModemManager/fcc-unlock.d
> > 
> > ### Libraries & Tools: ###
> > cmake
> > dmidecode
> > gcc
> > gcc-c++
> > pkgconf-pkg-config
> > glib2
> > glib2-devel
> > libxml2
> > libxml2-devel
> > libmbim
> > libmbim-devel
> > libqmi-glib5
> > libqmi-tools
> > libdbus-glib-1-2
> > ModemManager
> > ModemManager-devel
> > systemd-devel
> > 
> > 
> > libdbus-glib-1-2
> > --> create symlink from libdbus-1.so.3 to /usr/lib64/libdbus-1.so
> > !!!messy!!!
> > ---> sudo ln -s /usr/lib64/libdbus-1.so.3 /usr/lib64/libdbus-1.so
> > 
> > ### Build ###
> > cd to linux_apps_opensource directory
> > cmake -S . -B build
> > cmake --build build
> > 
> > --> Create dbus config for fibocom helper: /usr/share/dbus-
> > 1/system.d/com.fibocom.helper.conf
> > <!DOCTYPE busconfig PUBLIC
> > "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
> > "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
> > <busconfig>
> >   <!-- This config allows anyone to control mcdm -->
> > 
> >   <policy context="default">
> >     <allow send_destination="com.fibocom.helper"/>
> >   </policy>
> > 
> >   <policy user="root">
> >     <allow own="com.fibocom.helper"/>
> >   </policy>
> > </busconfig>
> > 
> > --> Create dbus service file: /usr/share/dbus-1/system-
> > services/com.fibocom.helper.service
> > [D-BUS Service]
> > Name=com.fibocom.helper
> > Exec=/bin/false
> > User=root
> > SystemdService=fibo_helper.service
> > 
> > 
> > 
> > --> Create fibo_config service
> > /etc/systemd/system/fibo_config.service
> > [Unit]
> > Description=Firmware Config Service
> > After=ModemManager.service fibo_helper.service
> > 
> > [Service]
> > EnvironmentFile=/lib/systemd/system/fibo_config.d/env.conf
> > ExecStart=/opt/fibocom/fibo_config_service/fibo_config
> > ExecReload=/bin/kill -HUP $MAINPID
> > Restart=on-abort
> > Type=simple
> > Restart=on-abort
> > User=root
> > 
> > [Install]
> > WantedBy=multi-user.target
> > 
> > --> Create fibo_flash service
> > /etc/systemd/system/fibo_flash.service
> > [Unit]
> > Description=Firmware Flash Service
> > After=ModemManager.service fibo_helper.service
> > 
> > [Service]
> > EnvironmentFile=/lib/systemd/system/fibo_flash.d/env.conf
> > ExecStart=/opt/fibocom/fibo_flash_service/fibo_flash
> > ExecReload=/bin/kill -HUP $MAINPID
> > Restart=on-abort
> > Type=simple
> > Restart=on-abort
> > User=root
> > 
> > [Install]
> > WantedBy=multi-user.target
> > 
> > --> Create fibo_helper service
> > /etc/systemd/system/fibo_helper.service
> > [Unit]
> > Description=Firmware Helper Service
> > After=ModemManager.service
> > 
> > [Service]
> > EnvironmentFile=/lib/systemd/system/fibo_helper.d/env.conf
> > ExecStart=/opt/fibocom/fibo_helper_service/fibo_helperd
> > ExecReload=/bin/kill -HUP $MAINPID
> > Restart=on-abort
> > Type=simple
> > Restart=on-abort
> > User=root
> > 
> > [Install]
> > WantedBy=multi-user.target
> > 
> > --> Create fibo_helper_mbim service
> > /etc/systemd/system/fibo_helper_mbim.service
> > [Unit]
> > Description=Firmware Helper Service
> > After=ModemManager.service fibo_helper.service
> > 
> > [Service]
> > EnvironmentFile=/lib/systemd/system/fibo_helper.d/env.conf
> > ExecStart=/opt/fibocom/fibo_helper_service/fibo_helperm
> > ExecReload=/bin/kill -HUP $MAINPID
> > Restart=on-abort
> > Type=simple
> > Restart=on-abort
> > User=root
> > 
> > [Install]
> > WantedBy=multi-user.target
> > 
> > --> Create systemd directories for environment files
> > sudo mkdir /lib/systemd/system/fibo_config.d/
> > sudo mkdir /lib/systemd/system/fibo_flash.d/
> > sudo mkdir /lib/systemd/system/fibo_helper.d/
> > 
> > --> Create environment files (as root)
> > echo "LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/lib64" >
> > /lib/systemd/system/fibo_config.d/env.conf
> > echo "LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/lib64" >
> > /lib/systemd/system/fibo_flash.d/env.conf
> > echo "LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/lib64" >
> > /lib/systemd/system/fibo_helper.d/env.conf
> > 
> > --> Create the following udev rule: /usr/lib/udev/rules.d/76-mm-
> > fibocom-linux-apps-port-types.rules
> > # do not edit this file, it will be overwritten on update
> > ACTION!="add|change|move|bind",
> > GOTO="mm_fibocom_linux_apps_port_types_end"
> > SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*",
> > ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}"
> > 
> > ATTRS{idVendor}=="2cb7", ATTRS{idProduct}=="01a2",
> > ENV{.MM_USBIFNUM}=="02", SUBSYSTEM=="tty",
> > ENV{ID_MM_PORT_IGNORE}="1"
> > ATTRS{idVendor}=="2cb7", ATTRS{idProduct}=="01a2",
> > ENV{.MM_USBIFNUM}=="03", SUBSYSTEM=="tty",
> > ENV{ID_MM_PORT_IGNORE}="1"
> > ATTRS{idVendor}=="2cb7", ATTRS{idProduct}=="01a2",
> > ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_PORT_IGNORE}="1"
> > ATTRS{idVendor}=="2cb7", ATTRS{idProduct}=="01a2",
> > ENV{.MM_USBIFNUM}=="05", ENV{ID_MM_PORT_IGNORE}="1"
> > 
> > ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8213",
> > ENV{.MM_USBIFNUM}=="02", SUBSYSTEM=="tty",
> > ENV{ID_MM_PORT_IGNORE}="1"
> > ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8215",
> > ENV{.MM_USBIFNUM}=="02", SUBSYSTEM=="tty",
> > ENV{ID_MM_PORT_IGNORE}="1"
> > 
> > LABEL="mm_fibocom_linux_apps_port_types_end"
> > 
> > --> Create the following udev rule: /usr/lib/udev/rules.d/77-mm-
> > fibocom.rules
> > ACTION!="add|change|move|bind", GOTO="mm_fibocom_end"
> > ENV{SUBSYSTEM}=="pci", ENV{PCI_ID}=="14C3:4D75",
> > ATTR{power/wakeup}="disabled", GOTO="mm_fibocom_end"
> > ENV{SUBSYSTEM}=="pci", ENV{PCI_ID}=="8086:7560",
> > ATTR{power/wakeup}="disabled", GOTO="mm_fibocom_end"
> > 
> > LABEL="mm_fibocom_end"
> > 
> > --> Edit the ExecStart line in
> > /usr/lib/systemd/system/ModemManager.service:
> > ExecStart=/usr/sbin/ModemManager --test-quick-suspend-resume
> > 
> > --> Create fcc unlock script for the DW5825e (413c:8213) as
> > /usr/share/ModemManager/fcc-unlock.available.d/413c:8213
> > #!/bin/sh
> > 
> > # SPDX-License-Identifier: CC0-1.0
> > # 2023 Nero zhang <sinaro at sinaro.es>
> > #
> > # Fibocom FM101 FCC unlock mechanism
> > #
> > 
> > # run fcc-unlock binary
> > /opt/fibocom/fibo_ma_service/fibo_ma
> > exit $?
> > 
> > --> Tell ModemManager to automatically activate available fcc
> > unlocks
> > ln -sft /usr/lib64/ModemManager/fcc-unlock.d
> > /usr/share/ModemManager/fcc-unlock.available.d/*
> > 
> > --> reload systemd to make fibocom services available
> > systemctl daemon-reload
> > 
> > --> activate fibocom services
> > sudo systemctl enable fibo_helper.service
> > sudo systemctl enable fibo_helper_mbim.service
> > sudo systemctl enable fibo_flash.service
> > sudo systemctl enable fibo_config.service
> > 
> > --> reboot
> > 
> > --> add connection profile / APN via NetworkManager.
> > 
> > --> Success!
> > 
> > 
> > Best,
> > Jo.
> > 
> > 9. Mai 2025, 15:35 von johanngerbhoff at tutamail.com:
> > > Hi Dan, thank you for taking the time to respond!
> > > > Does the modem actually get registered with the network, or
> > > > does it
> > > > completely fail to communicate with it? By "connecting" I'm not
> > > > sure if
> > > > you mean a data connection or just registering.
> > > It didn't get registered at all with the initial setup
> > > instructions I posted as I missed a few crucial steps. I actually
> > > got the modem to connect now via doing the following:
> > > 
> > > --> libudev0-shim is NOT needed: Analyzing the package for
> > > ubuntu, I found out that Fibocom's tools are actually built
> > > against libudev1 but they expect it to be called libudev - so I
> > > now linked libudev.so.1.7.10 to libudev.so
> > > 
> > > --> The path for 76-mm-fibocom-linux-apps-port-types.rules should
> > > be /usr/lib/udev/rules.d. The content is as follows:
> > > # do not edit this file, it will be overwritten on update
> > > ACTION!="add|change|move|bind",
> > > GOTO="mm_fibocom_linux_apps_port_types_end"
> > > SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*",
> > > ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}"
> > > 
> > > ATTRS{idVendor}=="2cb7", ATTRS{idProduct}=="01a2",
> > > ENV{.MM_USBIFNUM}=="02", SUBSYSTEM=="tty",
> > > ENV{ID_MM_PORT_IGNORE}="1"
> > > ATTRS{idVendor}=="2cb7", ATTRS{idProduct}=="01a2",
> > > ENV{.MM_USBIFNUM}=="03", SUBSYSTEM=="tty",
> > > ENV{ID_MM_PORT_IGNORE}="1"
> > > ATTRS{idVendor}=="2cb7", ATTRS{idProduct}=="01a2",
> > > ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_PORT_IGNORE}="1"
> > > ATTRS{idVendor}=="2cb7", ATTRS{idProduct}=="01a2",
> > > ENV{.MM_USBIFNUM}=="05", ENV{ID_MM_PORT_IGNORE}="1"
> > > 
> > > ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8213",
> > > ENV{.MM_USBIFNUM}=="02", SUBSYSTEM=="tty",
> > > ENV{ID_MM_PORT_IGNORE}="1"
> > > ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8215",
> > > ENV{.MM_USBIFNUM}=="02", SUBSYSTEM=="tty",
> > > ENV{ID_MM_PORT_IGNORE}="1"
> > > 
> > > LABEL="mm_fibocom_linux_apps_port_types_end"
> > > 
> > > --> There is an additional udev rule that I missed to copy:
> > > /usr/lib/udev/rules.d/77-mm-fibocom.rules. Content as follows:
> > > ACTION!="add|change|move|bind", GOTO="mm_fibocom_end"
> > > ENV{SUBSYSTEM}=="pci", ENV{PCI_ID}=="14C3:4D75",
> > > ATTR{power/wakeup}="disabled", GOTO="mm_fibocom_end"
> > > ENV{SUBSYSTEM}=="pci", ENV{PCI_ID}=="8086:7560",
> > > ATTR{power/wakeup}="disabled", GOTO="mm_fibocom_end"
> > > 
> > > LABEL="mm_fibocom_end"
> > > 
> > > --> ModemManager's ExecStart line in
> > > /usr/lib/systemd/system/ModemManager.service is modified with a
> > > switch:
> > > ExecStart=/usr/sbin/ModemManager --test-quick-suspend-resume
> > > 
> > > --> a dbus service file needs to be created as /usr/share/dbus-
> > > 1/system-services/com.fibocom.helper.service.
> > > Contents:
> > > [D-BUS Service]
> > > Name=com.fibocom.helper
> > > Exec=/bin/false
> > > User=root
> > > SystemdService=fibo_helper.service
> > > 
> > > 
> > > And here's where it gets interesting: I am now able to
> > > successfully connect to the LTE network and surf the internet
> > > when manually running ModemManager. When trying to launch
> > > ModemManager automatically on startup though, ModemManager seems
> > > to fail creating a process group and can't access the cdc_mbim
> > > port for some reason. Both logs attached as follows:
> > > 
> > > --> Successful connection via manual ModemManager launch as root.
> > > After about 10 minutes the modem resets but reconnects
> > > immediately (visible at the end of the log).
> > > localhost:~ # /usr/sbin/ModemManager --test-quick-suspend-resume 
> > > ModemManager[4324]: <msg> ModemManager (version 1.22.0) starting
> > > in system bus... 
> > > ModemManager[4324]: <msg> [cdc-wdm0/mbim] MBIM device is not QMI
> > > capable 
> > > ModemManager[4324]: <msg> [device
> > > /sys/devices/pci0000:00/0000:00:14.0/usb4/4-1] creating modem
> > > with plugin 'dell' and '3' ports 
> > > ModemManager[4324]: <msg> [base-manager] modem for device
> > > '/sys/devices/pci0000:00/0000:00:14.0/usb4/4-1' successfully
> > > created 
> > > ModemManager[4324]: <msg> [base-manager] couldn't check support
> > > for device '/sys/devices/pci0000:00/0000:00:14.3': not supported
> > > by any plugin 
> > > ModemManager[4324]: <msg> [base-manager] couldn't check support
> > > for device '/sys/devices/pci0000:00/0000:00:1f.6': not supported
> > > by any plugin 
> > > ModemManager[4324]: <msg> [modem0/cdc-wdm0/mbim] MBIM device is
> > > QMI capable 
> > > ModemManager[4324]: <msg> [modem0] state changed (unknown ->
> > > disabled) 
> > > ModemManager[4324]: <msg> [modem0] state changed (disabled ->
> > > enabling) 
> > > ModemManager[4324]: <msg> [modem0] simple connect started... 
> > > ModemManager[4324]: <msg> [modem0] simple connect state (4/10):
> > > wait to get fully enabled 
> > > ModemManager[4324]: <wrn> [modem0] Cannot power-up: hardware
> > > radio switch is OFF 
> > > ModemManager[4324]: <wrn> [modem0] Cannot power-up: hardware
> > > radio switch is OFF 
> > > ModemManager[4324]: <wrn> [modem0] couldn't enable interface:
> > > 'Invalid transition' 
> > > ModemManager[4324]: <wrn> [modem0] failed enabling modem: Invalid
> > > transition 
> > > ModemManager[4324]: <msg> [modem0] state changed (enabling ->
> > > disabled) 
> > > ModemManager[4324]: <wrn> [modem0] failed waiting for enabled
> > > state: disabled 
> > > ModemManager[4324]: <msg> [modem0] simple connect started... 
> > > ModemManager[4324]: <msg> [modem0] simple connect state (3/10):
> > > enable 
> > > ModemManager[4324]: <msg> [modem0] state changed (disabled ->
> > > enabling) 
> > > ModemManager[4324]: <msg> [modem0] simple connect started... 
> > > ModemManager[4324]: <msg> [modem0] simple connect state (4/10):
> > > wait to get fully enabled 
> > > ModemManager[4324]: <wrn> [modem0] couldn't reload extended
> > > signal information: No signal details given 
> > > ModemManager[4324]: <msg> [modem0] power state updated: on 
> > > ModemManager[4324]: <msg> [modem0] 3GPP packet service state
> > > changed (unknown -> attached) 
> > > ModemManager[4324]: <wrn> [modem0] connection attempt cancelled 
> > > ModemManager[4324]: <msg> [modem0] state changed (enabling ->
> > > enabled) 
> > > ModemManager[4324]: <msg> [modem0] simple connect state (5/10):
> > > wait after enabled 
> > > ModemManager[4324]: <msg> [modem0] 3GPP registration state
> > > changed (unknown -> registering) 
> > > ModemManager[4324]: <msg> [modem0] 3GPP registration state
> > > changed (registering -> home) 
> > > ModemManager[4324]: <msg> [modem0] state changed (enabled ->
> > > registered) 
> > > ModemManager[4324]: <msg> [modem0] simple connect state (6/10):
> > > register 
> > > ModemManager[4324]: <msg> [modem0] simple connect state (7/10):
> > > wait to get packet service state attached 
> > > ModemManager[4324]: <msg> [modem0] simple connect state (8/10):
> > > bearer 
> > > ModemManager[4324]: <msg> [modem0] simple connect state (9/10):
> > > connect 
> > > ModemManager[4324]: <msg> [modem0] state changed (registered ->
> > > connecting) 
> > > ModemManager[4324]: <msg> [modem0] state changed (connecting ->
> > > connected) 
> > > ModemManager[4324]: <msg> [modem0] simple connect state (10/10):
> > > all done 
> > > ModemManager[4324]: <wrn> [modem0/bearer1] reloading stats
> > > failed: Transaction timed out 
> > > ModemManager[4324]: <msg> [modem0] port 'cdc-wdm0' no longer
> > > controllable, reprobing 
> > > ModemManager[4324]: <msg> [base-manager] port cdc-wdm0 released
> > > by device '/sys/devices/pci0000:00/0000:00:14.0/usb4/4-1' 
> > > ModemManager[4324]: <wrn> [/dev/cdc-wdm0] MBIM error: Device must
> > > be open to send commands 
> > > ModemManager[4324]: <wrn> [/dev/cdc-wdm0] MBIM error: Device must
> > > be open to send commands 
> > > ModemManager[4324]: <wrn> [/dev/cdc-wdm0] MBIM error: Device must
> > > be open to send commands 
> > > ModemManager[4324]: <wrn> [/dev/cdc-wdm0] MBIM error: Device must
> > > be open to send commands 
> > > ModemManager[4324]: <wrn> [/dev/cdc-wdm0] MBIM error: Device must
> > > be open to send commands 
> > > ModemManager[4324]: <wrn> [modem0/cdc-wdm0/mbim] Couldn't
> > > properly close QMI device: Device must be open to send commands 
> > > ModemManager[4324]: <msg> [base-manager] port ttyUSB0 released by
> > > device '/sys/devices/pci0000:00/0000:00:14.0/usb4/4-1' 
> > > ModemManager[4324]: <msg> [base-manager] port wwp0s20f0u1
> > > released by device '/sys/devices/pci0000:00/0000:00:14.0/usb4/4-
> > > 1' 
> > > ModemManager[4324]: <msg> [cdc-wdm0/mbim] MBIM device is not QMI
> > > capable 
> > > ModemManager[4324]: <msg> [device
> > > /sys/devices/pci0000:00/0000:00:14.0/usb4/4-1] creating modem
> > > with plugin 'dell' and '3' ports 
> > > ModemManager[4324]: <msg> [base-manager] modem for device
> > > '/sys/devices/pci0000:00/0000:00:14.0/usb4/4-1' successfully
> > > created 
> > > ModemManager[4324]: <msg> [modem1/cdc-wdm0/mbim] MBIM device is
> > > QMI capable
> > > 
> > > --> failed connection when launching ModemManager via systemd:
> > > localhost:~ # systemctl start ModemManager 
> > > localhost:~ # systemctl status ModemManager 
> > > ● ModemManager.service - Modem Manager 
> > >      Loaded: loaded
> > > (/usr/lib/systemd/system/ModemManager.service; enabled; preset:
> > > enabled) 
> > >      Active: active (running) since Fri 2025-05-09 15:20:52 CEST;
> > > 14s ago 
> > >  Invocation: 1c378c21a150400d8bf3664cb2a40cd8 
> > >    Main PID: 14659 (ModemManager) 
> > >       Tasks: 6 (limit: 18296) 
> > >         CPU: 118ms 
> > >      CGroup: /system.slice/ModemManager.service 
> > >              └─14659 /usr/sbin/ModemManager --test-quick-suspend-
> > > resume 
> > >  
> > > May 09 15:20:55 localhost.localdomain ModemManager[14739]: <wrn>
> > > couldn't setup proxy specific process group 
> > > May 09 15:20:55 localhost.localdomain ModemManager[14742]: <wrn>
> > > couldn't setup proxy specific process group 
> > > May 09 15:20:55 localhost.localdomain ModemManager[14745]: <wrn>
> > > couldn't setup proxy specific process group 
> > > May 09 15:20:55 localhost.localdomain ModemManager[14748]: <wrn>
> > > couldn't setup proxy specific process group 
> > > May 09 15:20:55 localhost.localdomain ModemManager[14751]: <wrn>
> > > couldn't setup proxy specific process group 
> > > May 09 15:20:56 localhost.localdomain ModemManager[14659]: <msg>
> > > [device /sys/devices/pci0000:00/0000:00:14.0/usb4/4-1] creating
> > > modem with plugin 'dell' and '3' ports 
> > > May 09 15:20:56 localhost.localdomain ModemManager[14659]: <wrn>
> > > [plugin/dell] could not grab port cdc-wdm0: Cannot add port
> > > 'usbmisc/cdc-wdm0', unhandled port type 
> > > May 09 15:20:56 localhost.localdomain ModemManager[14659]: <wrn>
> > > [base-manager] couldn't create modem for device
> > > '/sys/devices/pci0000:00/0000:00:14.0/usb4/4-1': Failed to find
> > > primary AT port 
> > > May 09 15:20:56 localhost.localdomain ModemManager[14659]: <msg>
> > > [base-manager] couldn't check support for device
> > > '/sys/devices/pci0000:00/0000:00:14.3': not supported by any
> > > plugin 
> > > May 09 15:20:56 localhost.localdomain ModemManager[14659]: <msg>
> > > [base-manager] couldn't check support for device
> > > '/sys/devices/pci0000:00/0000:00:1f.6': not supported by any
> > > plugin
> > > 
> > > I have no clue why ModemManager can't access the cdc-wdm0 port -
> > > perhaps it isn't given enough privileges when launched via
> > > systemd? The service file does however look like any other
> > > ModemManager service I've ever encountered:
> > > 
> > > --> Contents of /usr/lib/systemd/system/ModemManager.service:
> > > [Unit] 
> > > Description=Modem Manager 
> > > After=polkit.service 
> > > Requires=polkit.service 
> > > ConditionVirtualization=!container 
> > >  
> > > [Service] 
> > > Type=dbus 
> > > BusName=org.freedesktop.ModemManager1 
> > > ExecStart=/usr/sbin/ModemManager --test-quick-suspend-resume 
> > > StandardError=null 
> > > Restart=on-abort 
> > > CapabilityBoundingSet=CAP_SYS_ADMIN CAP_NET_ADMIN 
> > > ProtectSystem=true 
> > > ProtectHome=true 
> > > PrivateTmp=true 
> > > RestrictAddressFamilies=AF_NETLINK AF_UNIX AF_QIPCRTR 
> > > NoNewPrivileges=true 
> > > User=root 
> > >  
> > > [Install] 
> > > WantedBy=multi-user.target 
> > > Alias=dbus-org.freedesktop.ModemManager1.service
> > > > It may not even use AT commands; it might be running through an
> > > > MBIM
> > > > service instead. At the moment I'm not sure of any unlock
> > > > procedure for
> > > > the Fibcom Qualcomm-based devices other than their binary
> > > > tools.
> > > The ModemManager log indicates that MBIM / QMI are present but
> > > that's also the only clue I have, sadly.
> > > 
> > > Once again, sorry for maybe not following the most methodical
> > > approach - feels like throwing things on a wall and hope that
> > > something sticks.
> > > Maybe someone could help with solving that systemd ModemManager
> > > startup issue? I can also provide the Dell-specific firmware file
> > > if someone would like to investigate further.
> > > 
> > > Best, Jo.
> > > 
> > 
> 
>  



More information about the ModemManager-devel mailing list