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.

Reply via email to