Wer schon einmal versucht hat, ein brandneues WWAN-Modem unter Linux zu verwenden, kennt das Spiel:
Das Modem wird erkannt, die SIM wird erkannt, eine IP-Adresse wird vergeben und trotzdem funktioniert kein Internet.
Genau dieses Problem hatte ich bei meinem neuen Lenovo ThinkPad X1 Carbon Gen 13 mit dem integrierten Quectel RM520N-GL 5G-Modem unter Ubuntu 26.04.
Da ich beim Vorgängermodell bereits einen ähnlichen Kampf mit dem WWAN-Modem hatte, wollte ich die Erkenntnisse hier dokumentieren.
Vielleicht erspart dieser Artikel dem einen oder anderen einige Stunden Fehlersuche.
Ausgangslage
Hardware
- Lenovo ThinkPad X1 Carbon Gen 13 (Typ 21NS004UMZ)
- Quectel RM520N-GL 5G Modem
- Swisscom SIM
Software
- Ubuntu 26.04 (Resolute)
- Kernel 7.0
- NetworkManager 1.54.3
- ModemManager 1.25.95
Das Modem wurde grundsätzlich erkannt:
sudo mmcli -L
/org/freedesktop/ModemManager1/Modem/0 [quectel] RM520N-GL
Auch die SIM wurde korrekt erkannt:
sudo mmcli -m 0
operator name: Swisscom
registration: home
packet service state: attached
Trotzdem funktionierte zunächst keine Datenverbindung.
Symptom 1: FCC Lock
Bereits früh fiel auf, dass das Modem im FCC-Lock festhing.
sudo mbimcli -d /dev/wwan0mbim0 --quectel-query-radio-state
Ausgabe:
Radio state retrieved: 'fcc-locked'
Das bedeutet, dass das Modem zwar erkannt wird, die Funkfunktion aber durch die Firmware gesperrt ist.
Dieses Verhalten ist bei vielen Lenovo ThinkPads unter Linux bekannt und betrifft insbesondere neuere WWAN-Module.
Lenovo WWAN FCC Unlock Service installieren
Lenovo stellt für Linux ein offizielles FCC-Unlock-Paket zur Verfügung:
https://github.com/lenovo/lenovo-wwan-unlock
Das Tool entsperrt unterstützte WWAN-Module und konfiguriert die erforderlichen
FCC- und SAR-Einstellungen, damit das Modem unter Linux korrekt verwendet werden kann.
Installation:
git clone https://github.com/lenovo/lenovo-wwan-unlock.git
cd lenovo-wwan-unlock
chmod +x fcc_unlock_setup.sh
sudo ./fcc_unlock_setup.sh
Anschliessend ModemManager neu starten:
sudo systemctl restart ModemManager
Danach den FCC-Lock erneut prüfen:
sudo mbimcli -d /dev/wwan0mbim0 --quectel-query-radio-state
Vorher:
Radio state retrieved: 'fcc-locked'
Nach erfolgreicher Installation:
Radio state retrieved: 'on'
Falls nötig kann das Modem zusätzlich manuell aktiviert werden:
sudo mbimcli -p -d /dev/wwan0mbim0 --quectel-set-radio-state=on
Erst ab diesem Zeitpunkt konnte sich das Modem korrekt im Mobilfunknetz registrieren und eine Datenverbindung aufbauen.
Symptom 2: Verbindung aufgebaut, aber kein Internet
Nach dem Entsperren zeigte ModemManager plötzlich:
state: connected
access tech: lte, 5gnr
und sogar:
packet service state: attached
Trotzdem funktionierte zunächst kein Internetzugriff.
ping 1.1.1.1
100% packet loss
Das machte die Fehlersuche besonders mühsam, da alles nach einer funktionierenden Verbindung aussah.
Verdächtige Fehlermeldungen
Während der Fehlersuche tauchten mehrere ungewöhnliche Fehlermeldungen auf:
MBIM protocol error: NotOpened
No valid data port found to launch connection
Failed processing MBIMEx v3.0 subscriber ready status notification
Dadurch entstand zunächst der Verdacht auf:
- Firmware-Probleme
- ModemManager-Bugs
- MHI-Treiber-Probleme
- MBIM-Kompatibilitätsprobleme
AT-Diagnose
Über den integrierten AT-Port konnte direkt mit dem Modem kommuniziert werden.
sudo microcom -p /dev/wwan0at0 -s 115200
Wichtige Informationen:
+CPIN: READY
SIM funktioniert.
+COPS: 0,0,"Swisscom",13
Swisscom-Netz erkannt.
+CGPADDR: 1,"10.x.x.x"
IP-Adresse vorhanden.
+QENG: "servingcell","NOCONN"
Das Modem war zu diesem Zeitpunkt noch nicht vollständig verbunden.
Die ursprüngliche NetworkManager-Verbindung war beschädigt
Letztendlich stellte sich heraus, dass die bestehende Mobilfunkverbindung fehlerhaft war.
Alte Verbindung löschen:
nmcli connection delete Swisscom
Neue Verbindung erstellen:
nmcli connection add \
type gsm \
ifname "*" \
con-name Swisscom-Test \
apn gprs.swisscom.ch
IPv6 deaktivieren:
nmcli connection modify Swisscom-Test ipv6.method disabled
Verbindung aktivieren:
nmcli connection up Swisscom-Test
Danach erhielt das Modem eine neue IP-Adresse und die Verbindung verhielt sich deutlich stabiler.
Der entscheidende Test
Um sicherzustellen, dass tatsächlich das Mobilfunknetz verwendet wird, wurden WLAN und Ethernet deaktiviert.
WLAN deaktivieren:
nmcli radio wifi off
Ethernet deaktivieren:
sudo ip link set enp73s0 down
Routing prüfen:
ip route
default via 10.213.36.60 dev wwan0
Jetzt war ausschliesslich das WWAN-Modem aktiv.
Funktionstest
Ping auf den Swisscom DNS-Server:
ping -I wwan0 193.5.23.8
5 packets transmitted
5 received
0% packet loss
Ping auf Cloudflare:
ping -I wwan0 1.1.1.1
5 packets transmitted
5 received
0% packet loss
Öffentliche IP-Adresse prüfen:
curl --interface wwan0 https://tools.onesystems.ch/api/tools/my-ip
Spätestens hier war klar:
Die Verbindung funktioniert.
Warum funktionierte es vorher nicht?
Die wahrscheinlichste Ursache war eine Kombination aus:
- aktivem FCC-Lock
- einer beschädigten oder fehlerhaft aufgebauten NetworkManager-Verbindung
- mehreren alten Bearern innerhalb von ModemManager
Nach dem Neuaufbau der Verbindung funktionierte das Modem zuverlässig.
Erkenntnisse
FCC-Lock prüfen
sudo mbimcli -d /dev/wwan0mbim0 --quectel-query-radio-state
Bei:
fcc-locked
entsperren:
sudo mbimcli -p -d /dev/wwan0mbim0 --quectel-set-radio-state=on
Modemstatus prüfen
sudo mmcli -m 0
Wichtige Punkte:
registration: home
packet service state: attached
state: connected
Alte Verbindung löschen
nmcli connection delete <Name>
Neue Verbindung erstellen:
nmcli connection add type gsm ifname "*" apn gprs.swisscom.ch con-name Swisscom
Test ohne WLAN oder Ethernet
Nur so lässt sich zuverlässig feststellen, ob die Daten tatsächlich über WWAN laufen.
nmcli radio wifi off
sudo ip link set <ethernet-interface> down
