Fibocom L860-GL-16 WWAN on Thinkpad T14 Gen3 with Fedora 40

I’ve added the wwan module into my Thinkpad T14 gen3 but facing connection issues…

  1. When I started up the pc with new wwan card I am able to see Mobile Network in Gnome Settings where I can also see Default APN

  2. When I toggle Mobile Data switcher to ON, it seems to be enabled but in the status widget I see this
    image

  3. When I try to get an information what’s going on via journalctl -u NetworkManager -f I am getting repeated messages

Jun 04 17:02:15 fedora-t14 NetworkManager[1884]: <info>  [1717513335.3969] policy: auto-activating connection 'Default' (58518bb5-92eb-490a-a7ad-2cc54221e43d)
Jun 04 17:02:15 fedora-t14 NetworkManager[1884]: <info>  [1717513335.3978] device (wwan0mbim0): Activation: starting connection 'Default' (58518bb5-92eb-490a-a7ad-2cc54221e43d)
Jun 04 17:02:15 fedora-t14 NetworkManager[1884]: <info>  [1717513335.3980] device (wwan0mbim0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
Jun 04 17:02:15 fedora-t14 NetworkManager[1884]: <info>  [1717513335.4335] device (wwan0mbim0): state change: prepare -> disconnected (reason 'user-requested', sys-iface-state: 'managed')
Jun 04 17:02:15 fedora-t14 NetworkManager[1884]: <info>  [1717513335.4343] policy: auto-activating connection 'Default' (58518bb5-92eb-490a-a7ad-2cc54221e43d)
Jun 04 17:02:15 fedora-t14 NetworkManager[1884]: <info>  [1717513335.4350] device (wwan0mbim0): Activation: starting connection 'Default' (58518bb5-92eb-490a-a7ad-2cc54221e43d)
Jun 04 17:02:15 fedora-t14 NetworkManager[1884]: <info>  [1717513335.4351] device (wwan0mbim0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
Jun 04 17:02:15 fedora-t14 NetworkManager[1884]: <info>  [1717513335.4685] device (wwan0mbim0): state change: prepare -> disconnected (reason 'user-requested', sys-iface-state: 'managed')
Jun 04 17:02:15 fedora-t14 NetworkManager[1884]: <info>  [1717513335.4697] policy: auto-activating connection 'Default' (58518bb5-92eb-490a-a7ad-2cc54221e43d)
Jun 04 17:02:15 fedora-t14 NetworkManager[1884]: <info>  [1717513335.4703] device (wwan0mbim0): Activation: starting connection 'Default' (58518bb5-92eb-490a-a7ad-2cc54221e43d)
Jun 04 17:02:15 fedora-t14 NetworkManager[1884]: <info>  [1717513335.4704] device (wwan0mbim0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
Jun 04 17:02:15 fedora-t14 NetworkManager[1884]: <info>  [1717513335.5099] device (wwan0mbim0): state change: prepare -> disconnected (reason 'user-requested', sys-iface-state: 'managed')
Jun 04 17:02:15 fedora-t14 NetworkManager[1884]: <info>  [1717513335.5111] policy: auto-activating connection 'Default' (58518bb5-92eb-490a-a7ad-2cc54221e43d)
Jun 04 17:02:15 fedora-t14 NetworkManager[1884]: <info>  [1717513335.5118] device (wwan0mbim0): Activation: starting connection 'Default' (58518bb5-92eb-490a-a7ad-2cc54221e43d)
Jun 04 17:02:15 fedora-t14 NetworkManager[1884]: <info>  [1717513335.5119] device (wwan0mbim0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
  1. So I try to get some details about the modem such as
    mmcli -m 0
  ----------------------------------
  General  |                   path: /org/freedesktop/ModemManager1/Modem/0
           |              device id: f3b10090e131d8c6ec1c0801cf6a0c41a4dd0237
  ----------------------------------
  Hardware |           manufacturer: Intel
           |                  model: MBIM [8086:7560]
           |      firmware revision: 18601.5001.00.01.01.32_GC
           |           h/w revision: V1.3
           |              supported: gsm-umts, lte
           |                current: gsm-umts, lte
           |           equipment id: 016175006517264
  ----------------------------------
  System   |                 device: /sys/devices/pci0000:00/0000:00:1c.0/0000:08:00.0
           |                physdev: /sys/devices/pci0000:00/0000:00:1c.0/0000:08:00.0
           |                drivers: iosm
           |                 plugin: Intel
           |           primary port: wwan0mbim0
           |                  ports: wwan0 (net), wwan0at0 (at), wwan0at1 (at), wwan0mbim0 (mbim)
  ----------------------------------
  Status   |         unlock retries: sim-pin (3)
           |                  state: disabled
           |            power state: low
  ----------------------------------
  Modes    |              supported: allowed: 3g, 4g; preferred: none
           |                current: allowed: 3g, 4g; preferred: none
  ----------------------------------
  IP       |              supported: ipv4, ipv6, ipv4v6
  ----------------------------------
  3GPP     |                   imei: 016175006517264
           |          enabled locks: fixed-dialing
  ----------------------------------
  3GPP EPS |   ue mode of operation: csps-2
           | initial bearer ip type: ipv4
  ----------------------------------
  SIM      |       primary sim path: /org/freedesktop/ModemManager1/SIM/0

here is power state set to low not sure if it was made by myself since I’ve been trying to restart it via setting to low and back to on but enabling back gives me an error error: couldn't set new power state in the modem: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Retry: Invalid transition basically the same error as I am gonna metion below

mmcli -m --enable
since it’s disable I am trying to enable it this way but I am getting the same error as above

error: couldn't enable the modem: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Retry: Invalid transition'
  1. Lenovo drivers
    At the end I found a Lenovo drivers for this WWAN card, my Thinkpad and Fedora 39 as you can see here where there is this logic, for the Fedora
elif [[ "$NAME" == *"$OS_FEDORA"* ]]
then
	### Copy fcc unlock script for MM
	sudo tar -zxf fcc-unlock.d.tar.gz -C /usr/lib64/ModemManager/
	sudo chmod ugo+x /usr/lib64/ModemManager/fcc-unlock.d/*

	### Copy SAR config files
	sudo tar -zxf sar_config_files.tar.gz -C /opt/fcc_lenovo/

	ln -s /usr/sbin/lspci /usr/bin/lspci

	### Copy libraries
	sudo cp -rvf libmodemauth.so /usr/lib64/
	sudo cp -rvf libconfigserviceR+.so /usr/lib/
	sudo cp -rvf libconfigservice350.so /usr/lib/
	sudo cp -rvf libmbimtools.so /usr/lib/

	### Copy files for selinux for fedora
	sudo cp -rvf mm_FccUnlock.cil /opt/fcc_lenovo
	sudo cp -rvf mm_dmidecode.cil /opt/fcc_lenovo
	sudo cp -rvf mm_sh.cil /opt/fcc_lenovo
	sudo semodule -i /opt/fcc_lenovo/*.cil

else
...


### Copy binary
sudo cp -rvf DPR_Fcc_unlock_service /opt/fcc_lenovo/
sudo cp -rvf configservice_lenovo /opt/fcc_lenovo/

## copy and enable service
sudo cp -rvf lenovo-cfgservice.service /etc/systemd/system/.
sudo systemctl daemon-reload
systemctl enable lenovo-cfgservice

### Grant permissions to all binaries and script
sudo chmod ugo+x /opt/fcc_lenovo/*

## Please reboot machine (this will be needed only one for time)##

At the end when I list the contents of /usr/lib64/ModemManager/fcc-unlock.d/ I can see this
image


After all these steps I am still unavailable to establish connection via wwan I am getting the same error with the Invalid transition I mentioned.

Could someone help me with next steps what I can use to investigate more details what’s happening there.

Thanks

I took the liberty of editing your post and removed the excessive amount of bold text. That is similar to using all caps in that it appears to be yelling at the readers and should only be used to a very minimal amount.

1 Like

Can you please install the following tools:

Please follow the readme file.

And please share the results of the following:
cat /var/log/syslog | grep -i dpr_fcc
cat /var/log/syslog | grep -i configservice

Additionally, Share the versions of the kernel and Modemmanager used.

Thanks, I’ve tried each step from the readme


Install acpi_call dependency:

Use the following command in the terminal:

$ kernel_version=`uname -r`

$ sudo dnf install -y kernel-devel-${kernel_version}

$ sudo dnf install -y gcc

$ sudo dnf install -y dkms

$ sudo dnf upgrade -y kernel-modules

The repository for acpi-call can be pulled from the following:

$ git clone https://github.com/nix-community/acpi_call.git

Enter the directory after cloning

$ cd acpi_call

Then run make to compile it:

$ make dkms-add dkms-build dkms-install modprobe-install

Finally, check that acpi_call has been installed:

$ modprobe acpi-call

$ lsmod | grep acpi_call


Use the follow command to install Linux app:

$ sudo rpm -iv --force Fibocom_L860RPlus_Linux_FWPakcage_3.1.0.17.rpm

$ sudo rpm -iv --force Lenovo_Linux_FW_Switch_Tool_V3.1.0.13.rpm
 

              

Use the follow command to uninstall Linux app:

$ sudo rpm -ev fwpackage

$ sudo rpm -ev fwswitchtool

Then reboot the pc but still it can’t connect :thinking: I have no syslog

❯ cat /var/log/syslog | grep -i dpr_fcc
cat: /var/log/syslog: No such file or directory
❯ cat /var/log/syslog | grep -i configservice
cat: /var/log/syslog: No such file or directory
❯ uname -r
6.9.4-200.fc40.x86_64
❯ rpm -q ModemManager
ModemManager-1.22.0-3.fc40.x86_64
❯ rpm -q kernel
kernel-6.8.10-300.fc40.x86_64
kernel-6.8.11-300.fc40.x86_64

You dont need to do acpi_call as the kernel version is above 6.8. You can rmmod acpi_call.

You can check “mmcli -m 0” to confirm the fw version. Please share the info here.

Please use journalctl command to check whether the fcc_unlock is successful or not. This may need simcard to be available.

Sure :slight_smile:

mmcli -m 0
  ----------------------------------
  General  |                   path: /org/freedesktop/ModemManager1/Modem/0
           |              device id: f3b10090e131d8c6ec1c0801cf6a0c41a4dd0237
  ----------------------------------
  Hardware |           manufacturer: Intel
           |                  model: MBIM [8086:7560]
           |      firmware revision: 18601.5001.00.01.01.32_GC
           |           h/w revision: V1.3
           |              supported: gsm-umts, lte
           |                current: gsm-umts, lte
           |           equipment id: 016175006517264
  ----------------------------------
  System   |                 device: /sys/devices/pci0000:00/0000:00:1c.0/0000:08:00.0
           |                physdev: /sys/devices/pci0000:00/0000:00:1c.0/0000:08:00.0
           |                drivers: iosm
           |                 plugin: Intel
           |           primary port: wwan0mbim0
           |                  ports: wwan0 (net), wwan0at0 (at), wwan0at1 (at), wwan0mbim0 (mbim)
  ----------------------------------
  Status   |         unlock retries: sim-pin (3)
           |                  state: enabling
           |            power state: low
  ----------------------------------
  Modes    |              supported: allowed: 3g, 4g; preferred: none
           |                current: allowed: 3g, 4g; preferred: none
  ----------------------------------
  IP       |              supported: ipv4, ipv6, ipv4v6
  ----------------------------------
  3GPP     |                   imei: 016175006517264
           |          enabled locks: fixed-dialing
  ----------------------------------
  3GPP EPS |   ue mode of operation: csps-2
           | initial bearer ip type: ipv4
  ----------------------------------
  SIM      |       primary sim path: /org/freedesktop/ModemManager1/SIM/0

And when I am trying to search for fcc_unlock I am not able to find it :thinking:

❯ sudo journalctl | grep fcc_unlock
Failed to get journal fields: Invalid argument
❯ sudo journalctl -u ModemManager | grep fcc_unlock
~/Projects 4m 4s ❯       

My bad, Sorry, “You don’t need to do acpi_call as the kernel version is above 6.8. You can rmmod acpi_call.” is a wrong statement. You need to have acpi_call installed.

“firmware revision: 18601.5001.00.01.01.32_GC” Seems to be old and not updated yet. If the fwupdate tool worked the new fw version should be “18601.5001.00.01.17.30”

Can you please do the following and share the results:
$ cd acpi_call
$ modprobe acpi-call
$ lsmod | grep acpi_call

install fwupdate and fwswitch from its directory:
$ sudo rpm -iv --force Fibocom_L860RPlus_Linux_FWPakcage_3.1.0.17.rpm
$ sudo rpm -iv --force Lenovo_Linux_FW_Switch_Tool_V3.1.0.13.rpm

And share the results and logs.

You can also update through windows if possible.

better to search using keyword “dpr_fcc” in journalctl (for eg: journalctl -g “dpr”)

❯ modprobe acpi-call
modprobe: ERROR: could not insert 'acpi_call': Operation not permitted
❯ sudo modprobe acpi-call

❯ lsmod | grep acpi_call
acpi_call              28672  0

❯ sudo rpm -iv --force ./Fibocom_L860RPlus_Linux_FWPackage_3.1.0.17.rpm
Verifying packages...
Preparing packages...
fwpackage-3.1.0.17-2.x86_64
❯ sudo rpm -iv --force Lenovo_Linux_FW_Switch_Tool_V3.1.0.13.rpm
Verifying packages...
Preparing packages...
fwswitchtool-3.1.0.13-2.x86_64
cat: /etc/lsb-release: No such file or directory
Created symlink /etc/systemd/system/sysinit.target.wants/fwswitch.service → /usr/lib/systemd/system/fwswitch.service.
fwswitch install success!

❯ journalctl -g “dpr”
-- No entries --

❯ mmcli -m 1
  ----------------------------------
  General  |                   path: /org/freedesktop/ModemManager1/Modem/1
           |              device id: 34d0a1e1778b182398d3ca7264bef4c5fc5d84d3
  ----------------------------------
  Hardware |           manufacturer: Intel
           |                  model: MBIM [8086:7560]
           |      firmware revision: 18601.5001.00.01.17.30_VF
           |           h/w revision: V1.3
           |              supported: gsm-umts, lte
           |                current: gsm-umts, lte
           |           equipment id: 016175006517264
  ----------------------------------
  System   |                 device: /sys/devices/pci0000:00/0000:00:1c.0/0000:08:00.0
           |                physdev: /sys/devices/pci0000:00/0000:00:1c.0/0000:08:00.0
           |                drivers: iosm
           |                 plugin: Intel
           |           primary port: wwan0mbim0
           |                  ports: wwan0 (net), wwan0at0 (at), wwan0at1 (ignored), 
           |                         wwan0mbim0 (mbim)
  ----------------------------------
  Status   |         unlock retries: sim-pin (3)
           |                  state: disabled
           |            power state: low
  ----------------------------------
  Modes    |              supported: allowed: 3g, 4g; preferred: none
           |                current: allowed: 3g, 4g; preferred: none
  ----------------------------------
  IP       |              supported: ipv4, ipv6, ipv4v6
  ----------------------------------
  3GPP     |                   imei: 016175006517264
           |          enabled locks: fixed-dialing
  ----------------------------------
  3GPP EPS |   ue mode of operation: csps-2
           | initial bearer ip type: ipv4v6
  ----------------------------------
  SIM      |       primary sim path: /org/freedesktop/ModemManager1/SIM/1
           |         sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/1 (active)
           |                         slot 2: /org/freedesktop/ModemManager1/SIM/2

Also the weird thing is, when I turn off the WAN after a while it disappears completely and I have to restart pc to see the settings again. (in a gnome settings at least)

After the RPM installation today I was able to see some kind of Lenovo update

then the WAN connection appears in the gnome settings, but still in same state, when it’s only trying to connect…

I was also wondering to try some another Linux as a live usb to see if the card will work properly or to get the update more easier :man_shrugging: what do you think?

Now your FW got updated.
This is good.

then the WAN connection appears in the gnome settings, but still in same state, when it’s only trying to connect…
Did you set the APN in networkmanager?
You can do it through nm-connection-editor as well.

Once you set the APN, please run your Modemmanager in debugmode (–debug) and check the logs.

There’s still a chance that fcc_unlock is not successful. Journalctl should be showing some info regarding this if it was successful.

You can use the latest fcc_unlock from git as well.
lenovo/lenovo-wwan-unlock: FCC and DPR unlock for Lenovo PCs (github.com)

I was also wondering to try some another Linux as a live usb to see if the card will work properly or to get the update more easier :man_shrugging: what do you think?
You can try this as well. But AFAIK Fedora 40 should be working.

Now it’s working!!
I tried to install fcc_unlock from the repository you sent as you can see

❯ chmod ugo+x ./fcc_unlock_setup.sh
❯ ./fcc_unlock_setup.sh
Copying files and libraries...
Fedora Linux
Place your finger on the fingerprint reader
ln: failed to create symbolic link '/usr/bin/lspci': File exists
'libmodemauth.so' -> '/usr/lib64/libmodemauth.so'
'libconfigserviceR+.so' -> '/usr/lib/libconfigserviceR+.so'
'libconfigservice350.so' -> '/usr/lib/libconfigservice350.so'
'libmbimtools.so' -> '/usr/lib/libmbimtools.so'
'mm_FccUnlock.cil' -> '/opt/fcc_lenovo/mm_FccUnlock.cil'
'mm_dmidecode.cil' -> '/opt/fcc_lenovo/mm_dmidecode.cil'
'mm_sh.cil' -> '/opt/fcc_lenovo/mm_sh.cil'
'DPR_Fcc_unlock_service' -> '/opt/fcc_lenovo/DPR_Fcc_unlock_service'
removed '/opt/fcc_lenovo/DPR_Fcc_unlock_service'
'configservice_lenovo' -> '/opt/fcc_lenovo/configservice_lenovo'
'lenovo-cfgservice.service' -> '/etc/systemd/system/./lenovo-cfgservice.service'
Fix supports ModemManager version greater than 1.23.2 or later only.

and after that, the connection is established! So don’t know what was the exact problem, but thank you so much :pray: I am gonna try to restart the pc :sweat_smile: will see

Great to hear that.
2 reasons:

  1. You didnt have FW updater and fwswitching tool installed (default fw was old).
  2. fcc_unlock was not working.

I would suggest you upgrade the Modemmanager to something newer than 1.23.2. There’s a patch for intermittent wakeup while in suspend and some other improvements too.

Thanks a lot once again.
How can I upgrade the Modemmanager?

currently I have ModemManager 1.22.0-3.fc40

You can follow this page for instructions. There may have dependency issues as well.

FYI, its not mandatory to upgrade. You may not feel big differences other than suspend related ones.

Sure I already noticed it :slight_smile: when I woke up computer, I could not see the wan connection at all, but when I run any modemmanager command, it appears :wink:

Please update all your fw and try again.

Run “fwupdmgr get-updates --force”
Then “fwupdmgr update”

There could be a delay upto 60 seconds (occasionally) for the modem to come back from suspemd. Please wait a while.

1 Like

Hello again,

Currently I am facing an issue with fwswitchtool when I am trying to upgrade all libs

but not sure why it’s happening and if I could now remove the fwswitchtool or not…