I looked up a second hand Thinkpad T495) which is an AMD based system similar to your x395.
I have managed to make it work - upon request - I can also provide a set of packages ready to install.
Research
During my research, I made several mistakes and I found several hints which in the end made it possible.
-
Make sure you have disabled the pin on your sim card before you attempt to update and activate the modem.
-
My biggest mistake was to wipe Windows from the system - bad idea - as Windows is instrumental in getting the modem up-to-date and functional.
-
Another mistake I made was to use pamac to build the custom packages. Instead I had to use the native Arch Linux method.
I will also recommend using linux70 (remove udev-usb-sync), as this will make wonders because of the kernels improvements with relation to these generations of AMD APUs.
It may be possible to execute the Windows configuration tasks below by using a Hirens BootCD - but that I have not tested.
How To Lenovo Fibocom L850-GL using Manjaro Linux
If your Fibocom modem’s firmware release is version 2.0.1.103 then you can proceed to building the custom modem manager packages.
- Boot to Windows
- Download and install the lastest driver package (includes new firmware) from Lenovo download site
- Run Windows update
- Reboot into Windows (Be sure to let the firmware upload finish uninterrupted)
- Connect to the internet
- While connected - Click Start → Power → Restart (This ensures the modem is functional when you reboot into Manjaro)
- Boot into your Manjaro installation
Manjaro Linux modem setup and configuration
Using a clean Manjaro Linux dual-boot installation.
You need to replace ModemManager with the development version.
If get other system issues - make sure to mention you are using a development version of ModemManager.
The development version contains the required functionality, a fibocom module and a fcc-unlock script. The development version depends on other development libraries which will replace existing system libraries with development versions.
The package fwupd depends on libmbin which will create a conflict, a conflict you can only resolve by removing fwupd package.
To ensure no interference - stop and disable the installed ModemManager
sudo systemctl disable --now ModemManager
Uninstall the modemmanager package
sudo pacman -Rns modemmanager
If installed remove the fwupd package
sudo pacman -Rns fwupd
Create a work folder
WORK=~/fibocom
mkdir $WORK
cd $WORK
Then we need three custom scripts - source AUR - the build order is important - do not use an AUR helper
Install base-devel
sudo pacman -Syu base-devel git --needed
git clone https://aur.archlinux.org/libmbin-dev
cd libmbin-dev
PKGDEST=$WORK makepkg -sicC
cd $WORK
git clone https://aur.archlinux.org/libqmi-dev
cd libqmi-dev
PKGDEST=$WORK makepkg -sicC
cd $WORK
cd $WORK
git clone https://aur.archlinux.org/modemmanager-dev
cd modemmanager-dev
PKGDEST=$WORK makepkg -sicC
cd $WORK
You should expect 4 packages in the work folder
ls -l *.pkg.tar.zst
-rw-r--r-- 1 nix nix 629403 12 apr 17:27 libmbim-dev-1:1.33.1_dev-1-x86_64.pkg.tar.zst
-rw-r--r-- 1 nix nix 802096 12 apr 17:34 libmm-glib-dev-1.25.95_dev-1-x86_64.pkg.tar.zst
-rw-r--r-- 1 nix nix 2736562 12 apr 17:28 libqmi-dev-1.37.995_dev-1-x86_64.pkg.tar.zst
-rw-r--r-- 1 nix nix 1544114 12 apr 17:34 modemmanager-dev-1.25.95_dev-1-x86_64.pkg.tar.zst
Verify that all packages has been installed before proceeding - check the /var/log/pacman.log - when all is done symlink the fcc-unlock script
sudo ln -s /usr/share/ModemManager/fcc-unlock.available.d/8086:7360 /etc/ModemManager/fcc-unlock.d/8086:7360
Enable and start the ModemManager service
sudo systemctl enable --now ModemManager
Result
inxi -Fc0
$ inxi -Fc0
System:
Host: tp485 Kernel: 7.0.0-rc7-1-MANJARO arch: x86_64 bits: 64
Desktop: KDE Plasma v: 6.6.4 Distro: Manjaro Linux
Machine:
Type: Laptop System: LENOVO product: 20NKS05100 v: ThinkPad T495
serial: <superuser required>
Mobo: LENOVO model: 20NKS05100 v: SDK0J40697 WIN
serial: <superuser required> Firmware: UEFI vendor: LENOVO
v: R12ET64P(1.34 ) date: 02/23/2024
Battery:
ID-1: BAT0 charge: 50.2 Wh (99.5%) condition: 50.5/50.5 Wh (100%)
CPU:
Info: quad core model: AMD Ryzen 5 PRO 3500U w/ Radeon Vega Mobile Gfx
bits: 64 type: MT MCP cache: L2: 2 MiB
Speed (MHz): avg: 1230 min/max: 1400/2100 cores: 1: 1230 2: 1230 3: 1230
4: 1230 5: 1230 6: 1230 7: 1230 8: 1230
Graphics:
Device-1: Advanced Micro Devices [AMD/ATI] Picasso/Raven 2 [Radeon Vega
Series / Radeon Mobile Series] driver: amdgpu v: kernel
Device-2: Chicony Integrated Camera (1280x720@30) driver: uvcvideo
type: USB
Display: wayland server: X.org v: 1.21.1.21 with: Xwayland v: 24.1.9
compositor: kwin_wayland driver: X: loaded: amdgpu unloaded: modesetting
dri: radeonsi gpu: amdgpu resolution: 1920x1080~60Hz
API: EGL v: 1.5 drivers: kms_swrast,radeonsi,swrast
platforms: gbm,wayland,x11,surfaceless,device
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 26.0.4-arch1.1
renderer: AMD Radeon Vega 8 Graphics (radeonsi raven ACO DRM 3.64
8.0.0-rc7-1-MANJARO)
API: Vulkan v: 1.4.341 drivers: radv surfaces: N/A
Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
de: kscreen-console,kscreen-doctor wl: wayland-info x11: xdpyinfo,xprop
Audio:
Device-1: Advanced Micro Devices [AMD/ATI] Raven/Raven2/Fenghuang HDMI/DP
Audio driver: snd_hda_intel
Device-2: Advanced Micro Devices [AMD] Audio Coprocessor
driver: snd_pci_acp3x
Device-3: Advanced Micro Devices [AMD] Ryzen HD Audio
driver: snd_hda_intel
API: ALSA v: k7.0.0-rc7-1-MANJARO status: kernel-api
Server-1: PipeWire v: 1.6.3 status: active
Network:
Device-1: Intel Wi-Fi 5 Wireless-AC 9x6x [Thunder Peak] driver: iwlwifi
IF: wlp1s0 state: down mac: d6:76:65:90:09:5c
Device-2: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
driver: r8169
IF: enp3s0f0 state: down mac: f8:75:a4:30:8f:b7
Device-3: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
driver: r8169
IF: enp5s0 state: down mac: f8:75:a4:30:8f:b6
IF-ID-1: wwan0 state: unknown mac: N/A
Bluetooth:
Device-1: Intel Wireless-AC 9260 Bluetooth Adapter driver: btusb type: USB
Report: rfkill ID: hci0 state: up address: see --recommends
Drives:
Local Storage: total: 476.94 GiB used: 38.2 GiB (8.0%)
ID-1: /dev/nvme0n1 vendor: SK Hynix model: BC901 HFS512GEJ9X108N
size: 476.94 GiB
Partition:
ID-1: / size: 97.59 GiB used: 38.03 GiB (39.0%) fs: xfs dev: /dev/nvme0n1p4
ID-2: /boot size: 3.86 GiB used: 147.7 MiB (3.7%) fs: ext4
dev: /dev/nvme0n1p2
ID-3: /boot/efi size: 299.4 MiB used: 32.6 MiB (10.9%) fs: vfat
dev: /dev/nvme0n1p1
Swap:
Alert: No swap data was found.
Sensors:
System Temperatures: cpu: 60.0 C mobo: N/A gpu: amdgpu temp: 59.0 C
Fan Speeds (rpm): fan-1: 0 fan-2: 0
Info:
Memory: total: 16 GiB note: est. available: 13.53 GiB used: 2.97 GiB (22.0%)
Processes: 278 Uptime: 34m Shell: Zsh inxi: 3.3.40
lspci -nn | grep 8086:7360
$ lspci -nn | grep 8086:7360
04:00.0 Cellular controller/modem [0d40]: Intel Corporation XMM7360 LTE Advanced Modem [8086:7360] (rev 01)
nmcli -m 0
$ mmcli -m 0
----------------------------------
General | path: /org/freedesktop/ModemManager1/Modem/0
| device id: b776b707c73cf296b6228e1f1aa09ba6436100e4
----------------------------------
Hardware | manufacturer: Fibocom
| model: L850 LTE Module","L850
| firmware revision: 18500.5001.00.04.26.22
| supported: gsm-umts, lte
| current: gsm-umts, lte
| equipment id: 015550001546651
----------------------------------
System | device: /sys/devices/pci0000:00/0000:00:01.5/0000:04:00.0
| physdev: /sys/devices/pci0000:00/0000:00:01.5/0000:04:00.0
| drivers: iosm
| plugin: Intel
| primary port: wwan0at1
| ports: wwan0 (net), wwan0at1 (at), wwan0xmmrpc0 (xmmrpc)
----------------------------------
Status | unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3)
| state: connected
| power state: on
| access tech: lte
| signal quality: 9% (recent)
----------------------------------
Modes | supported: allowed: 3g; preferred: none
| allowed: 4g; preferred: none
| allowed: 3g, 4g; preferred: none
| allowed: 3g, 4g; preferred: 3g
| allowed: 3g, 4g; preferred: 4g
| current: allowed: 3g, 4g; preferred: 4g
----------------------------------
Bands | supported: utran-1, utran-4, utran-5, utran-8, utran-2, eutran-1,
| eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8,
| eutran-12, eutran-13, eutran-17, eutran-18, eutran-19, eutran-20,
| eutran-26, eutran-28, eutran-29, eutran-30, eutran-41, eutran-66
| current: utran-1, utran-4, utran-5, utran-8, utran-2, eutran-1,
| eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8,
| eutran-12, eutran-13, eutran-17, eutran-18, eutran-19, eutran-20,
| eutran-26, eutran-28, eutran-29, eutran-30, eutran-41, eutran-66
----------------------------------
IP | supported: ipv4, ipv6, ipv4v6
----------------------------------
3GPP | imei: 015550001546651
| operator id: 23802
| operator name: Telenor DK
| registration: home
| packet service state: attached
----------------------------------
3GPP EPS | ue mode of operation: csps-2
| initial bearer ip type: ipv4v6
----------------------------------
SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0
----------------------------------
Bearer | paths: /org/freedesktop/ModemManager1/Bearer/0
ip a
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: wwan0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
link/none
inet 10.181.147.199/0 brd 255.255.255.255 scope global noprefixroute wwan0
valid_lft forever preferred_lft forever
3: enp3s0f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether f8:75:a4:30:8f:b7 brd ff:ff:ff:ff:ff:ff
altname enxf875a4308fb7
4: enp5s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether f8:75:a4:30:8f:b6 brd ff:ff:ff:ff:ff:ff
altname enxf875a4308fb6
5: wlp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 3e:16:02:f5:8b:db brd ff:ff:ff:ff:ff:ff permaddr 7c:b2:7d:c2:87:dd
altname wlx7cb27dc287dd