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
<http://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.