X2xx/s (X200/s-260) 5G-wwan-Modul plus LTE-Antennen in X220?

TuxTP

Member
Themenstarter
Registriert
21 Feb. 2025
Beiträge
58
Hallo,


Bin neu hier, falls ich das im falschen Forum poste, bitte sagen.

Habe ein x220 4290WCU als meinen einzigen Alltagsrechner im Einsatz und bin damit eigentlich happy. Nutze mit einer seperaten Daten-SIM gerne 3G (Broadcom WWAN) und würde gerne auf ein 5G-fähiges Modul wechseln. Habe viel recherchiert, aber nix gefunden, was für mich als bastelnden Laien umsetzbar ist. Zumal die 5G-Module die ich gefunden habe, nur im M2 format existieren. Es gäbe ja durchaus Adapter für Mini PCIe ... aber was passt?

Kurzum: Hat jemand ein HowTo, wie ich 5G-wwan-Module mit meinem x220 nutzen kann? (Tethering oder eine externe USB Lösung möchte ich nicht)

Vielen Dank für eure Hilfe!

Edit by Mornsgrans: Titel erweitert

======================================================================
LÖSUNG für:
TP x220 4290WCU mit 5G-fähigem Breitbandmodul aufrüsten

======================================================================

ACHTUNG: WIE KOMPLIZIERT ES WIRD, HAENGT STARK VOM VERWENDETEN KERNEL AB!

Diese Anleitung bezieht sich auf den Standardkernel von Kubuntu 22.04 - mit dem aktuellen 6.11 0-25 generic Kernel bei Kubuntu 24.04 musste ich etwas rumprobieren, bis es geklappt hat (vgl Bemerkung u.a. unten zu "option" und zu "dkms"- alles in fett)

Mit dem Kernel 6.14.0-24-generic geht es ev. deutlich einfacher - mein Tipp waere, es erstmal mit diesem zu probieren und dann zu schauen, was noch von Hand nachgearbeitet werden muss - OOTB gehts aber leider auch nicht.




- Bios ohne whitelist flashen (habe ich mit einer Win bootCD hingekriegt)

- das RG255C-GL Quectel R17 RedCap Modul im miniPCIe Format in den Slot einbauen und mit den beiden vorhandenen Antennen verbinden, der GNSS Anschluss bleibt frei.

- den allerneusten qmi_wwan Treiber-Quelltext editieren (erhalten von tekmodul.de) wie hier beschrieben https://forums.quectel.com/t/rg255c-gl-gps-with-modemmanager-libqmi/43406/3 -> vielleicht mit dem neuen Kernel nicht mehr nötig (siehe Post)

- sudo make sudo make install um den Treiber qmi_wwan zu kompilieren

- sudo cp qmi_wwan.ko /lib/modules/$(uname -r)/

- auch den Quelltext des Optiontreibers anpassen (vgl. Beiträge im Quectel-Forum), kompilieren und installieren (wie beim qmi)

- sudo echo "2C7C 0316 FF" | tee /sys/bus/usb-serial/drivers/option1/new_id'

- sudo nano /lib/udev/rules.d/77-mm-quectel-port-types.rules editieren wie in diesem Post angegeben: https://forums.quectel.com/t/how-to-use-the-rg255c-with-modemmanager-and-qmicli/42967/3

- wwan beim booten aktivieren mit systemd.restore_state=0 oder mit einem Befehl ( zB rfkill unblock wwan) in einem script


hier habe ich bei dem neuen Kernel eine andere Lösung in Form eines seperaten Scripts
/usr/local/bin/unblock-wan.sh:

Code:
#!/bin/bash
modprobe qmi_wwan
modprobe option
sudo echo 2C7C 0316 FF | sudo tee /sys/bus/usb-serial/drivers/option1/new_id

- Script /etc/systemd/system/unblock-wan.service erstellen:

Dementsprechend sieht der Dienst "unblock-wan.service" anders aus und lädt nur dieses Script:

Code:
[Unit]

Description=Unblock Wireless WAN on Startup

After=network-pre.target

Wants=network-pre.target


[Service]

Type=oneshot

ExecStart=/usr/local/bin/unblock-wan.sh


[Install]

WantedBy=multi-user.target


Code:
[Service]

Type=oneshot

ExecStart=/bin/bash -c 'modprobe -r option && modprobe qmi_wwan && echo "2C7C 0316 FF" | tee /sys/bus/usb-serial/drivers/option1/new_id'

[Install]

WantedBy=multi-user.target

- script ausführbar machen

- sudo systemctl enable unblock-wan.service

- rebooten

- im NM-Applet eine neue Breitbandverbindung mit dem jetzt sichtbaren Modul erstellen (Standardwerte für meinen Mobilfunkprovider haben funktioniert)

- DKMS installieren - reicht leider nicht: man muss es noch sehr aufwendig konfigurieren, damit es kapiert, welche Module es aktualisieren muss: vgl. https://help.ubuntu.com//community/DKMS - ICH VERWENDE ES NICHT MEHR, DA ICH DIE KONFIGURATION NICHT HINGEKRIEGT HABE UND ES ZU NICHT BOOTENDEN KERNELN GEFÜHRT HAT!


Und es funktioniert!
Ein grosses Problem für mich war, dass ich eigentlich von Kernelmodulen, code Kompilieren usw. keinen Schimmer habe, dementsprechend "kryptische" Tipps der Cracks im QuectelForum nicht verstand und auch sonst einiges falsch gemacht habe ...

Vielen, lieben Dank für eure Hilfe - hätte das nie alleine geschafft!
 
Zuletzt bearbeitet:
Lösung
Hallo Schoerg

Vielen Dank - ich soll leider nicht den "normalen" qmi_wwan nutzen (das klappt), sondern qmi_wwan.c . Den habe ich auch brav kompiliert (Quellcode von Quectel) nur krieg ich ihn nicht geladen. Und das Niveau im Quectel- Forum ist mindestens 5 Etagen über meinem ... und der Supporter dort entsprechend wenig "verbose" ... :rolleyes:

Evtl hilft auch ein neuerer Kernel, laut deiner Ausgabe ist ja kein QMI da

hier https://www.spinics.net/lists/linux-usb/msg264889.html

war ein Patch dazu, aber erst im Dezember also kann sein das du den noch nicht hast.
Hallo Mornsgrans,

Hm, ich denke der Einwahlvorgang - könntest Du mir einen Tipp geben, welches Log du brauchst?

Vielen Dank!
 
Sollte im Syslog stehen. Einfach nach einem Einwahlversuch die zuletzt geänderte Datei in /var/log anschauen.
 
Code:
2025-03-24T23:37:23.741995+01:00 x220 NetworkManager[1835]: <warn>  [1742855843.7403] device (ttyUSB2): Activation: failed for connection 'Sunrise'
2025-03-24T23:37:23.742891+01:00 x220 NetworkManager[1835]: <info>  [1742855843.7413] device (ttyUSB2): state change: failed -> disconnected (reason 'none', sys-iface-state: 'managed')
2025-03-24T23:37:23.743209+01:00 x220 NetworkManager[1835]: <info>  [1742855843.7430] policy: auto-activating connection 'Sunrise' (d9346e2b-b333-4408-a079-4f0b52199f2a)
2025-03-24T23:37:23.747507+01:00 x220 NetworkManager[1835]: <info>  [1742855843.7447] device (ttyUSB2): Activation: starting connection 'Sunrise' (d9346e2b-b333-4408-a079-4f0b52199f2a)
2025-03-24T23:37:23.747775+01:00 x220 NetworkManager[1835]: <info>  [1742855843.7450] device (ttyUSB2): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
2025-03-24T23:37:23.771768+01:00 x220 ModemManager[1873]: <msg> [modem0] simple connect started...
2025-03-24T23:37:23.771892+01:00 x220 ModemManager[1873]: <msg> [modem0] simple connect state (6/10): register
2025-03-24T23:37:23.832842+01:00 x220 ModemManager[1873]: <wrn> [modem0] registration in network failed: Network timeout
2025-03-24T23:37:23.840318+01:00 x220 ModemManager[1873]: <msg> [modem0] simple connect started...
2025-03-24T23:37:23.840532+01:00 x220 ModemManager[1873]: <msg> [modem0] simple connect state (6/10): register
2025-03-24T23:37:23.899493+01:00 x220 ModemManager[1873]: <wrn> [modem0] registration in network failed: Network timeout
2025-03-24T23:37:23.907745+01:00 x220 ModemManager[1873]: <msg> [modem0] simple connect started...
2025-03-24T23:37:23.908079+01:00 x220 ModemManager[1873]: <msg> [modem0] simple connect state (6/10): register
2025-03-24T23:37:23.966449+01:00 x220 ModemManager[1873]: <wrn> [modem0] registration in network failed: Network timeout
2025-03-24T23:37:23.967914+01:00 x220 NetworkManager[1835]: <warn>  [1742855843.9676] modem-broadband[ttyUSB2]: failed to connect modem: Network timeout
2025-03-24T23:37:23.968442+01:00 x220 NetworkManager[1835]: <info>  [1742855843.9677] device (ttyUSB2): state change: prepare -> failed (reason 'gsm-registration-timeout', sys-iface-state: 'managed')
2025-03-24T23:37:23.970493+01:00 x220 NetworkManager[1835]: <warn>  [1742855843.9700] device (ttyUSB2): Activation: failed for connection 'Sunrise'
2025-03-24T23:37:23.971727+01:00 x220 NetworkManager[1835]: <info>  [1742855843.9710] device (ttyUSB2): state change: failed -> disconnected (reason 'none', sys-iface-state: 'managed')
2025-03-24T23:37:48.169200+01:00 x220 kwin_x11[4792]: kwin_core: XCB error: 152 (BadDamage), sequence: 43599, resource id: 14710017, major code: 143 (DAMAGE), minor code: 3 (Subtract)
2025-03-24T23:38:00.910044+01:00 x220 kernel: audit: type=1400 audit(1742855880.907:269): apparmor="DENIED" operation="open" class="file" profile="snap.skype.skype" name="/sys/devices/virtual/net/lo/speed" pid=5569 comm="skypeforlinux" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
2025-03-24T23:38:00.910067+01:00 x220 kernel: audit: type=1400 audit(1742855880.908:270): apparmor="DENIED" operation="open" class="file" profile="snap.skype.skype" name="/sys/devices/pci0000:00/0000:00:19.0/net/enp0s25/speed" pid=5569 comm="skypeforlinux" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
2025-03-24T23:38:00.910072+01:00 x220 kernel: audit: type=1400 audit(1742855880.908:271): apparmor="DENIED" operation="open" class="file" profile="snap.skype.skype" name="/sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/wlp3s0/speed" pid=5569 comm="skypeforlinux" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
2025-03-24T23:38:15.419387+01:00 x220 kwin_x11[4792]: kwin_core: XCB error: 3 (BadWindow), sequence: 45909, resource id: 94373779, major code: 129 (SHAPE), minor code: 6 (Input)
Beitrag automatisch zusammengeführt:

Wird jemand daraus schlau?
 
Zuletzt bearbeitet:
Bin jetzt weitergekommen

- in diese Datei /lib/udev/rules.d/77-mm-quectel-port-types.rules Spezifika zu dem Modul eingetragen (vgl. https://forums.quectel.com/t/how-to-use-the-rg255c-with-modemmanager-and-qmicli/42967/4 )

- einen Dienst erstellt /etc/systemd/system/unblock-wan.service, in dem folgende Befehle enthalten sind:

[Unit]
Description=Unblock Wireless WAN on Startup

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'rfkill unblock wwan && modprobe option && modprobe qmi_wwan && echo "2C7C 0316 FF" | tee /sys/bus/usb-serial/drivers/option1/new_id'
[Install]
WantedBy=multi-user.target

- sudo systemctl start unblock-wan.service

Jetzt ist das Modul sofort beim Start anwählbar - nur der Verbindungsaufbau klappt nicht - wie kann ich schauen, was beim Verbindungsaufbau schiefgeht?
 
Sind denn APN und Zugansdaten des Providers entsprechend hinterlegt?
 
Sind denn APN und Zugansdaten des Providers entsprechend hinterlegt?
Ich denke schon - habe es so wie immer gemacht: im NM-applet gibts ja "Verbindung hinzufügen" und mein Provider ist da ganz normal mit den Standardvorgaben drin. Bin ratlos - habe den Eindruck, dass NM die Verbindung nicht aufbauen kann (s.u.), aber warum???

Vielen Dank!

Code:
systemctl status NetworkManager
● NetworkManager.service - Network Manager
     Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; pre>
     Active: active (running) since Thu 2025-03-27 06:31:56 CET; 51min ago
       Docs: man:NetworkManager(8)
   Main PID: 1988 (NetworkManager)
      Tasks: 4 (limit: 19008)
     Memory: 18.7M (peak: 35.1M)
        CPU: 6.600s
     CGroup: /system.slice/NetworkManager.service
             └─1988 /usr/sbin/NetworkManager --no-daemon

Mär 27 07:22:16 x220 NetworkManager[1988]: <info>  [1743056536.8854] device (ttyU>
Mär 27 07:22:16 x220 NetworkManager[1988]: <warn>  [1743056536.8878] device (ttyU>
Mär 27 07:22:16 x220 NetworkManager[1988]: <info>  [1743056536.8888] device (ttyU>
Mär 27 07:22:16 x220 NetworkManager[1988]: <info>  [1743056536.8908] policy: auto>
Mär 27 07:22:16 x220 NetworkManager[1988]: <info>  [1743056536.8945] device (ttyU>
Mär 27 07:22:16 x220 NetworkManager[1988]: <info>  [1743056536.8949] device (ttyU>
lines 1-17...skipping...
● NetworkManager.service - Network Manager
     Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; preset: enabled)
     Active: active (running) since Thu 2025-03-27 06:31:56 CET; 51min ago
       Docs: man:NetworkManager(8)
   Main PID: 1988 (NetworkManager)
      Tasks: 4 (limit: 19008)
     Memory: 18.7M (peak: 35.1M)
        CPU: 6.600s
     CGroup: /system.slice/NetworkManager.service
             └─1988 /usr/sbin/NetworkManager --no-daemon

Mär 27 07:22:16 x220 NetworkManager[1988]: <info>  [1743056536.8854] device (ttyUSB2): state change: prepare -> failed (reason 'gsm-registration-timeout', sys-iface-s>
Mär 27 07:22:16 x220 NetworkManager[1988]: <warn>  [1743056536.8878] device (ttyUSB2): Activation: failed for connection 'Sunrise'
Mär 27 07:22:16 x220 NetworkManager[1988]: <info>  [1743056536.8888] device (ttyUSB2): state change: failed -> disconnected (reason 'none', sys-iface-state: 'managed')
Mär 27 07:22:16 x220 NetworkManager[1988]: <info>  [1743056536.8908] policy: auto-activating connection 'Sunrise' (601a7487-86ed-4621-853b-3d059ba0b3a3)
Mär 27 07:22:16 x220 NetworkManager[1988]: <info>  [1743056536.8945] device (ttyUSB2): Activation: starting connection 'Sunrise' (601a7487-86ed-4621-853b-3d059ba0b3a3)
Mär 27 07:22:16 x220 NetworkManager[1988]: <info>  [1743056536.8949] device (ttyUSB2): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed>
Mär 27 07:22:17 x220 NetworkManager[1988]: <warn>  [1743056537.1239] modem-broadband[ttyUSB2]: failed to connect modem: Network timeout
Mär 27 07:22:17 x220 NetworkManager[1988]: <info>  [1743056537.1240] device (ttyUSB2): state change: prepare -> failed (reason 'gsm-registration-timeout', sys-iface-s>
Mär 27 07:22:17 x220 NetworkManager[1988]: <warn>  [1743056537.1268] device (ttyUSB2): Activation: failed for connection 'Sunrise'
Mär 27 07:22:17 x220 NetworkManager[1988]: <info>  [1743056537.1291] device (ttyUSB2): state
 
Habe nix gefunden, APN habe ich geändert - nix.

Code:
mmcli -m 0
  --------------------------------
  General  |                 path: /org/freedesktop/ModemManager1/Modem/0
           |            device id: d9feae76a69539a9ae47a15028af955e2a9c892a
  --------------------------------
  Hardware |         manufacturer: Quectel
           |                model: RG255C-GL
           |    firmware revision: RG255CGLABR01A04M4G
           |            supported: gsm-umts
           |              current: gsm-umts
           |         equipment id: 864624060052208
  --------------------------------
  System   |               device: /sys/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.4
           |              physdev: /sys/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.4
           |              drivers: option
           |               plugin: quectel
           |         primary port: ttyUSB2
           |                ports: ttyUSB0 (ignored), ttyUSB1 (gps), ttyUSB2 (at)
  --------------------------------
  Status   |       unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
           |                state: enabled
           |          power state: on
           |       signal quality: 0% (recent)
  --------------------------------
  Modes    |            supported: allowed: any; preferred: none
           |              current: allowed: any; preferred: none
  --------------------------------
  IP       |            supported: ipv4, ipv6, ipv4v6
  --------------------------------
  3GPP     |                 imei: 864624060052208
           |         registration: idle
           | packet service state: detached
  --------------------------------
  3GPP EPS | ue mode of operation: csps-1
  --------------------------------
  SIM      |     primary sim path: /org/freedesktop/ModemManager1/SIM/0

Gibts da Probs?
 
Vielen Dank!

Leider hat das nicht geklappt... hatte auch schon mal vermutet, dass es an dem Modus des Moduls liegen könnte mbim vs was anderes.
Beitrag automatisch zusammengeführt:

Habe mittlerweile mit meinem Provider telefoniert. APN gegengecheckt. Sie sehen, dass sich eine Quectel verbinden möchte !!! Aber es sei ein Problem auf meiner Seite ...
 
Ich würde das Modul mal unter Windows testen. Da sind die Treiber meist deutlich besser. Dann könnte man mal prüfen, ob's an Linux bzw. an der Konfiguration liegt oder ob's unter Windows auch nicht geht.
 
Hm. Fragt sich, wo ich ein Win Livesystem herbekomme. Würde ungern eins kaufen. Mein Haushalt ist Winfrei :-) ...
 
Hm. Fragt sich, wo ich ein Win Livesystem herbekomme. Würde ungern eins kaufen. Mein Haushalt ist Winfrei

Geht mit Rufus Win to go, über USB

Edit:
Das ist natürlich Käse, weil Rufus selbst ein Windows-Tool ist.....sorry.
 
Zuletzt bearbeitet:
Aber aufpassen: Hiren's wird von Sicherheits-Software sehr oft als Schadprogramm identifiziert. Kommt vermutlich von einigen hardware-nahen Tools, die darauf enthalten sind/sein können.
 
Hiren ist auch mit Rufus nicht zu einem Bootbaren Stix zu bekommen. Mit ventoy ist die letzte Option, megaaufwendig.


Werde die Karte mal in ein x250 mit Win stecken - habe ich mal für eine Freundin gebastelt ... die SIM habe ich nochmal im Handy getestet, geht problemlos.

Überlege, dass Teil wieder zurückzuschicken echt frustrierend.
 
Nimm mal eine ältere Rufus-Version, ich nutze für die alten ThinkPads Version 1.3.2

Bei neuen Versionen scheitert man meist mit GPT/UEFI Boot, weil alte Systeme meist auf Legacy Boot/MBR eingestellt sind.
 
Habe jetzt noch einen Tip von Quectel:
Kernelmodule qmi_wwan.c bzw option.c statt dem qmi_wwan bzw option verwenden.

Habe das Paket zu qmi_wwan.c ausgepackt und das Modul kompiliert. Wie kann ich es jetzt aufrufen (am Besten dauerhaft)?

Einfach per modprobe geht nicht, obwohl ich alles aus dem Kompilationsordner nach /lib/modules/6.8.0-56-generic kopiert habe.

sudo modprobe qmi_wwan.c
modprobe: FATAL: Module qmi_wwan.c not found in directory /lib/modules/6.8.0-56-generic

Irgendjemand einen Tip? (Bevor ich dann nochmal Rufus bemühe)
 
qmi_wwan sollte standardmäßig vorhanden sein, modprobe qmi_wwan bzw. in dmesg schauen was drinnen steht.

Evtl. ganzen dmesg output posten?
 
Hallo Schoerg

Vielen Dank - ich soll leider nicht den "normalen" qmi_wwan nutzen (das klappt), sondern qmi_wwan.c . Den habe ich auch brav kompiliert (Quellcode von Quectel) nur krieg ich ihn nicht geladen. Und das Niveau im Quectel- Forum ist mindestens 5 Etagen über meinem ... und der Supporter dort entsprechend wenig "verbose" ... :rolleyes:
 
  • ok1.de
  • IT Refresh - IT Teile & mehr
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben