Hi,
I'm struggling to get my Fibocom L850GL LTE modem working under Manjaro Linux on a 3th Gen Lenovo ThinkPad X1 Yoga.
I installed this driver along with the xmm7360-usb-modeswitch via Pamac from the AUR, but was unable to get it to connect to the internet even via USB mode. I initially seeked some help in the AUR comments. I've been trying to make it run for some 3 weeks now, and I don't create issues for nothing but this time I've run out of ideas. Note, that this is going to be quite lengthy, so I'll provide a short tldr and an in-detail version.
TL;DR aka short version
What does not work
Modem init sript timeouts while "RPC executing UtaMsCallPsAttachApnConfigReq". See the full log: https://pastebin.com/MjK1suhv
What was tested and works
The SIM card when inserted into a stock LG G4 H-815 smartphone running Android 6.0. APN auto-configures, internet works out-of-the-box.
This exact modem on this machine, when booted into Windows 10 (Windows To Go edition from a pendrive, with newest drivers installed via their official driver update program). APN auto-configures, internet works out-of-the-box.
Modem discovery on mmcli --list-modems on both xmm7360 and iosm drivers, PCI and USB mode.
Reading firmware version, IMEI and phone number in GNOME Settings in USB mode after running xmm7360-usb-modeswitch.
Reading firmware version, IMEI in GNOME Settings in PCIe mode with xmm7360 (iosm shows "No SIM inserted").
wwan0 interface is there when checking with ip a:
2: wwan0: <POINTOPOINT,MULTICAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/none
ip link set wwan0 up, after which ip a shows:
wwan0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
link/none
inet6 fe80::cc45:271b:5929:b191/64 scope link stable-privacy proto kernel_ll
valid_lft forever preferred_lft forever
Communicating with the modem on Manjaro with AT commands, using minicom with the iosm driver and /dev/wwan0at0 as the terminal. USB mode creates ttyXMM* devices in place of /dev/wwan0at* ones. I don't see any serial AT interfaces appearing in /dev/ when using xmm7360 dkms module.
All of the above worked regardless of kernel version (tested 6.1.41, 6.4.6 and 6.5-rc5).
Some extra info:
inxi -M:
Machine:
Type: Convertible System: LENOVO product: 20LD002MMX v: ThinkPad X1 Yoga 3rd
serial:
Mobo: LENOVO model: 20LD002MMX v: SDK0J40697 WIN
serial: UEFI: LENOVO v: N25ET63W (1.49 )
date: 12/20/2022
CPU: Intel i7-8550U (without Intel vPro - which is the difference between the 20LG... yoga in #108, also he was using Mint)
Firmware Version (GNOME Settings > Mobile Network > Modem Details):
18500.5001.00.02.24.09
updated on 2023-08-08 on Windows 10 to
18500.5001.07.05.27.12
via the newest driver package from Lenovo Support website.
dmesg -w | grep xmm7360 with xmm7360.service enabled so that it runs during boot:
04:00.0 0d40: 8086:7360 (rev 01)
Subsystem: 8086:0020
Flags: bus master, fast devsel, latency 0, IRQ 141, IOMMU group 14
Memory at <redacted> (64-bit, non-prefetchable) [size=4K]
Memory at <redacted> (64-bit, non-prefetchable) [size=1K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable+ Count=1/4 Maskable- 64bit+
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [148] Latency Tolerance Reporting
Capabilities: [150] L1 PM Substates
Kernel driver in use: xmm7360
Kernel modules: iosm, xmm7360
The full in-detail version - what I did and how step-by-step.
This is all on newest up-to-date Manjaro linux. Note that kernel is configured with -iosm=on (running some KVMs).
I installed the PCI driver with pamac after enabling AUR support:
I rebooted the PC after install, but noted iosm driver is still in use (with lspci -k). I tried rmmod iosm and modprobe xmm7360 manually after booting and logging into the GNOME Shell, on linux 6.1.41 it did show the new driver as a second modem in mmcli --list-modems, on linux 6.5.rc3 it did not show up after changing the kernel driver module.
Thanks to advice from @thotypous I created /etc/modprobe.d/xmm7360.conf containing:
blacklist iosm
It now uses xmm7360 module on boot. FYI carried out the rest described below on linux 6.5.rc3 mainline kernel. (Note: I later tried on 6.5.rc5 with same results).
I edited /etc/xmm7360 for my provider (T-Mobile), also enabled dbus=True (wanted to test Network Manager integration). Attempted to init the modem with systemctl start xmm7360.service as root some time after booting, but it failed due to timeout while "RPC executing UtaMsCallPsAttachApnConfigReq": https://pastebin.com/MjK1suhv (same pastebin as in short version).
I then tried enabling it so it would run at boot with systemctl enable xmm7360.service, which copied the service to /etc/systemd/system/graphical.target.wants/xmm7360.service. This started causing a kernel panic on boot originating from the xmm7360 module. I think I was booting the linux kernel directly from the UEFI. I booted via GRUB, and now the kernel panic is gone for some reason, but the python RPC script still times out. I also tested on 6.4.6 kernel, still times out. I tried manually running the init script directly with python /usr/lib/xmm7360-pci-git/rpc/open_xdatachannel.py -c /etc/xmm7360(I got that directly from the systemd service), alas no luck.
After that, I tried passing the modem to a Windows 10 VM via IOMMU and libvirt-vfio (through virt-manager and using libvfio as the driver, like you would for a GPU pass-through), but it was not detected by the VM.
Feeling defeated, I used a Ventoy/Windows 10 To Go pendrive I prepared myself some time earlier to boot Windows 10 on the Thinkpad's bare hardware (which is something I very much wanted to avoid since buying this thing). There, I downloaded the "Lenovo System Update" (the succesor to "Lenovo Vantage" from the official Lenovo website, checking checksums and whatnot, and run it. I installed a driver for everything except a Intel ME FW update. After a reboot, the modem worked out-of-the-box on Windows, so I know that the hardware is functional.
At the moment I unblacklisted the iosm module (this brought back the wwan0at* channels, which do not appear when booting purely with xmm7360 and iosm blacklisted!) and disabled the xmm7360 service. I then tried some AT commands on wwan0at1, and it seems to work - see screenshot next line:
I tried the procedure described in #204, but it did not work (it did however get past the UtaMsCallPsAttachApnConfigReq, but got stuck on unsolicited messages, no error but the lte up script did not return to shell).
Any ideas of what else I might try? Worst case scenario I'll probably end up using my android phone as a router, but I'd rather not (e.g. I trust my laptop a little more than the unrooted Android spyphone, also I don't have a dual SIM (so I'd have to change my number and notify everyone of that change...), phone can get lost/stolen etc.)
Hi, I'm struggling to get my Fibocom L850GL LTE modem working under Manjaro Linux on a 3th Gen Lenovo ThinkPad X1 Yoga.
I installed this driver along with the
xmm7360-usb-modeswitch
via Pamac from the AUR, but was unable to get it to connect to the internet even via USB mode. I initially seeked some help in the AUR comments. I've been trying to make it run for some 3 weeks now, and I don't create issues for nothing but this time I've run out of ideas. Note, that this is going to be quite lengthy, so I'll provide a short tldr and an in-detail version.TL;DR aka short version
What does not work
What was tested and works
mmcli --list-modems
on bothxmm7360
andiosm
drivers, PCI and USB mode.xmm7360-usb-modeswitch
.xmm7360
(iosm
shows "No SIM inserted").wwan0
interface is there when checking withip a
:ip link set wwan0 up
, after whichip a
shows:minicom
with theiosm
driver and/dev/wwan0at0
as the terminal. USB mode createsttyXMM*
devices in place of/dev/wwan0at*
ones. I don't see any serial AT interfaces appearing in/dev/
when usingxmm7360
dkms module.Some extra info:
inxi -M
: Machine: Type: Convertible System: LENOVO product: 20LD002MMX v: ThinkPad X1 Yoga 3rd serial:dmesg -w | grep xmm7360
withxmm7360.service
enabled so that it runs during boot:lspci -s 04:00.0 -kvn
:The full in-detail version - what I did and how step-by-step.
This is all on newest up-to-date Manjaro linux. Note that kernel is configured with
-iosm=on
(running some KVMs). I installed the PCI driver withpamac
after enabling AUR support:I rebooted the PC after install, but noted
iosm
driver is still in use (withlspci -k
). I triedrmmod iosm
andmodprobe xmm7360
manually after booting and logging into the GNOME Shell, on linux 6.1.41 it did show the new driver as a second modem inmmcli --list-modems
, on linux 6.5.rc3 it did not show up after changing the kernel driver module.Thanks to advice from @thotypous I created
/etc/modprobe.d/xmm7360.conf
containing:It now uses xmm7360 module on boot. FYI carried out the rest described below on linux 6.5.rc3 mainline kernel. (Note: I later tried on 6.5.rc5 with same results).
I edited
/etc/xmm7360
for my provider (T-Mobile), also enabled dbus=True (wanted to test Network Manager integration). Attempted to init the modem withsystemctl start xmm7360.service
as root some time after booting, but it failed due to timeout while "RPC executing UtaMsCallPsAttachApnConfigReq": https://pastebin.com/MjK1suhv (same pastebin as in short version).I then tried enabling it so it would run at boot with
systemctl enable xmm7360.service
, which copied the service to/etc/systemd/system/graphical.target.wants/xmm7360.service
. This started causing a kernel panic on boot originating from the xmm7360 module. I think I was booting the linux kernel directly from the UEFI. I booted via GRUB, and now the kernel panic is gone for some reason, but the python RPC script still times out. I also tested on 6.4.6 kernel, still times out. I tried manually running the init script directly withpython /usr/lib/xmm7360-pci-git/rpc/open_xdatachannel.py -c /etc/xmm7360
(I got that directly from the systemd service), alas no luck.After that, I tried passing the modem to a Windows 10 VM via IOMMU and libvirt-vfio (through virt-manager and using libvfio as the driver, like you would for a GPU pass-through), but it was not detected by the VM.
Feeling defeated, I used a Ventoy/Windows 10 To Go pendrive I prepared myself some time earlier to boot Windows 10 on the Thinkpad's bare hardware (which is something I very much wanted to avoid since buying this thing). There, I downloaded the "Lenovo System Update" (the succesor to "Lenovo Vantage" from the official Lenovo website, checking checksums and whatnot, and run it. I installed a driver for everything except a Intel ME FW update. After a reboot, the modem worked out-of-the-box on Windows, so I know that the hardware is functional.
At the moment I unblacklisted the iosm module (this brought back the wwan0at* channels, which do not appear when booting purely with xmm7360 and iosm blacklisted!) and disabled the xmm7360 service. I then tried some AT commands on wwan0at1, and it seems to work - see screenshot next line:![Screenshot from 2023-08-16 01-01-56](https://github.com/xmm7360/xmm7360-pci/assets/62726159/be1d1e32-104b-4235-88aa-00aebeb91ce5)
I tried the procedure described in #204, but it did not work (it did however get past the UtaMsCallPsAttachApnConfigReq, but got stuck on unsolicited messages, no error but the
lte up
script did not return to shell).Any ideas of what else I might try? Worst case scenario I'll probably end up using my android phone as a router, but I'd rather not (e.g. I trust my laptop a little more than the unrooted Android spyphone, also I don't have a dual SIM (so I'd have to change my number and notify everyone of that change...), phone can get lost/stolen etc.)