Hallo,
aktuell beschäftige ich mich mit einer LTE Verbindung mittels Huawei miniPCIe Karte und pcEngines APU3. Vieles lässt sich auf auf die APU2 und APU4 übertragen.
Da viele informationen im Internet verteilt sind, versuche ich eine kleine Sammlung mit wichtigen Informationen zu erstellen.
Inhaltsverzeichnis
Mein Setup
- Hardware: pcEngines APU3c4
- OS: pfSense 2.4.5 mit coreboot 4.0.30
- Modem: Huawei ME909s-120
- Tarif: Vodafone Gigacube Basic
- Monoband-Antenne: Novero Dabendorf 800MHz mit low loss Kabel
Einrichten
Eine gute Anleitung gibt es hier: APU3 pfSense LTE 3G modem configuration – TekLager.se
Meine Konfiguration:
- Link Interface:
/dev/cuaU0.0
- Phone number:
*99#
- Access Point Name (APN):
home.vodafone.de
- Init string:
&F
Huawei Modem
Handbücher
AT Befehle – direkt von Huawei
Anwendungshandbuch – direkt von Huawei
Hardwarehandbuch – von paoli.cz
Konsole
cu -l /dev/cuaU0.2
Damit kommt man auf die serielle Konsole des Modems, cuaU0.0 wird für die Steuerung der Datenverbindung verwendet.
Die Konsole kann mit ~. verlassen werden.
Netzinformationen ausgeben
RSSI ausgeben
AT+CSQ
+CSQ: 28,99
^RSSI: 29
- Wert: RSSI 28 -> -57 dBm (0 -> -113 dBm und schlechter / 31 -> -51 dBm und besser / 1 Einheit = 2 dBm)
- Wert: immer 99
RSSI, RSRP, SINR und RSRQ auslesen
AT^HCSQ?
^HCSQ: „LTE“,47,51,101,26
- Wert: system mode LTE -> 4G
- Wert: RSSI 47 -> -74 dBm ( 0 -> -121 dBm / 96 -> -25 dBm / 1 Einheit = 1 dBm)
- Wert: RSRP 51 -> -90 dBm (0 -> -141 dBm / 97 -> -44 dBm / 1 Einheit = 1 dBm)
- Wert: SINR 101 -> 0 dB (1 -> -20,0 dB / 251 -> 30,0 dB / 1 Einheit = 0,2 dB)
- Wert RSRQ 26 -> -7 dB (0 -> -20,0 dB / 34 -> -3,0 dB / 1 Einheit = 0, dB)
Werte abonnieren
AT^CURC=1
Werte abbestellen
AT^CURC=0
Netzinformation mit CellID
AT+XCELLINFO?
+XCELLINFO: 0,5,262,02,1111111,,,,,
- Wert: Mode 0 -> „nicht abonniert“
- Wert: Type 5 -> LTE
- Wert: MCC 262 -> Deutschland
- Wert MNC 02 -> Vodafone
- Wert CellID in hex
Netzinfo „abonnieren“/regelmäßig ausgeben
AT+XCELLINFO=1
Netzinfo abbestellen
AT+XCELLINFO=0
verwendetes Band und Frequenzen ausgeben
AT^HFREQINFO?
^HFREQINFO: 0,6,8,3600,9400,10000,21600,8950,10000
- Wert: auto_report 0 -> nicht abonniert
- Wert: sysmode 6 -> LTE
- Wert: LTE-Band 8
- Wert: Downlink EARFCN 3600
- Wert: Downlink Frequenz 940,0 MHz
- Wert: Downlink Bandbreite 10 MHz
- Wert: Uplink EARFCN 21600
- Wert: Uplink Frequenz 895,0 MHz
- Wert: Uplink Bandbreite 10 MHz
Band + Frequenz Ausgabe „abonnieren“
AT^HFREQINFO=1
Band + Frequenz Ausgabe abbestellen
AT^HFREQINFO=0
Zeige alle verfügbaren LTE Netze an
AT^NETSCAN=5,-110,3
- Wert: Anzahl der zu suchenden Netz 5
- Wert: Signalstärke -110 dB>
- Wert: mode 3 -> LTE
Ist nur erfolgreich, wenn keine Datenvebindung aufgebaut ist. Andernfalls bekommt man einen CME Fehler
^NETSCAN: 15,,,4,262,02,0,-64,2,80
- Wert: ARFCN Frequenz
- Wert: c1 –> nicht unterstützt
- Wert: c2 –> nicht unterstützt
- Wert: Tracking Area Code
- Wert: MCC 262 -> Deutschland
- Wert; MNC 02 -> Vodafone
- Wert: BSIC 0 -> bei LTE
- Wert: RSRP
Service Status
AT^SYSINFOEX
^SYSINFOEX: 2,3,0,1,,6,“LTE“,101,“LTE“
- Wert: System service status 2 -> gültiger Service
- Wert: Service Domain 3 -> PS (packet switched) + CS (circuit switched [Sprachtelefonie]) Service
- Wert: Roaming status 0 -> kein Roaming
- Wert: SIM Karten Status 1 -> gültige SIM Karte für PS und CS
- Wert: SIM card locked status –> nicht unterstützt
- Wert: system mode LTE -> 4G
- Wert: submode 101 -> LTE
- Wert: submode Name LTE -> 4G
LTE Band fixieren
AT^SYSCFGEX="03",3FFFFFFF,2,4,80000,,
Die LTE-Antenne von novero dabendorf ist auf das LTE Band 20 ausgelegt, daher geben wir das dem Modem vor.
- Wert: sysmode 03 -> LTE
- Wert: Band: 3FFFFFFF -> alle Bänder
- Wert : roaming 2 -> keine Änderung
- Wert: Service Domain 4 -> keine Änderung
- Wert: LTE Band 80000 -> LTE Band 20
Einstellungen abfragen
AT^SYSCFGEX?
Einstellungen rücksetzen
AT^SYSCFGEX="00",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,,
LTE Mast/Zelle fixieren
Beste Zelle finden, dann fixieren 🙂
aktuelle Zelle abfragen
AT^MONSC
^MONSC: LTE,262,02,6300,111111,451,1111,-79,-7,-55
- Wert: Type LTE -> 4G
- Wert: MCC 262 -> DE
- Wert: MNC 02 -> Vodafone
- Wert: ARFCN
- Wert: CellID mit RNC ID in hex
- Wert: Physikalische Zellen ID
- Wert: Tracking area Code
- Wert: RSRP in dBm
- Wert: RSRQ in dB
- Wert: RSSI in dBm
Nachbarzellen abfragen
AT^MONNC
- Wert: Type LTE -> 4G
- Wert: ARFCN
- Wert: Physikalische Zellen ID in hex
- Wert: RSRP
- Wert: RSRQ
- Wert: RSSI
Zelle fixieren
AT^FREQLOCK=1,"04",6300,,,451
- Wert: aktiv 1 -> aktiv
- Wert: Mode 04 -> LTE
- Wert: ARFCN 6300 -> 800 MHz/LTE Band 20
- n/a
- n/a
- Physikalische Zellen ID
Fixierung überprüfen
AT^FREQLOCK?
^FREQLOCK: 0,“01″
^FREQLOCK: 0,“02″
^FREQLOCK: 0,“03″
^FREQLOCK: 1,“04″,6300,,,451
- Wert: aktiv 1 -> Ja
- Wert: Modus 01 = GSM; 02 = WCDMA; 03 = TD-SCDMA; 04 = LTE
- Wert: ARFCN
- Wert n/a
- Wert n/a
- Wert: Physikalische Zellen ID
Zellen fixierung aufheben
AT^FREQLOCK=0
Debugging
Letzte Fehlercode bei der Einwahl ausgeben
AT^GLASTERR=1
^GLASTERR: 1,50
- Wert: service 01 -> CS
- Wert: CME Fehler 50 -> ungültige Parameter
Temperatur ausgeben
AT^CHIPTEMP?
^CHIPTEMP: 65535,65535,65535,65535,65535,417
- Wert: GSM PA chip Temperatur 65535 -> aktuell nicht unterstützt
- Wert: WCDMA PA chip Temperatur 65535 -> aktuell nicht unterstützt
- Wert: LTE PA Chip Temperatur 65535 -> aktuell nicht unterstützt
- Wert: SIM Karten Temperatur 65535 -> aktuell nicht unterstützt
- Wert: Batterie Temperatur 65535 -> aktuell nicht unterstützt
- Wert: CRYSTAL Temperatur 417 -> 41,7°C
komplettes Modem neustart
AT^REST
Mobile Terminal neustarten
AT+CFUN=1,1
Detallierte Fehlermeldungen
AT+CMEE=2
Grundeinstellungen wiederherstellen
ATZ0
pfSense
PPP Konfigurationsdateien
- /var/etc/mpd_wan.conf
- /usr/local/sbin/mpd.script
Bitte die Einstellungen in der Weboberfläche vornehmen
Package cellular
Mittels Package Manager kann man das Paket ‚cellular‘ installieren.
Unter Services -> Cellular Modem kann man das Monitoring konfigurieren und Rest auslösen lassen.
Weiterer Vorteil: Das aktuelle Modem ist immer unter cuaZ99.0 erreichbar und kann in der PPP Konfiguration verwendet werden. Die Konsole unter cuaZ99.1
FAQ
In welche (Himmels)richtung muss ich meine Antenne ausrichten?
Unter cellmapper.net oder mittels App von OpenSignal kann man den nächsten Masten finden.
Im Vodafone Forum oder an der Hotline kann man den nächst geeigneten Mast ebenfalls erfragen.
Welche LTE Bänder gibt es und wie lauten die Frequenzen dazu?
Kann man hier nachlesen: LTE Frequenzen: Eine Einführung für Deutschland und weltweit – lte-anbieter.info
und hier: GSM, UMTS, LTE & 5G: Mobilfunk-Frequenzen im Überblick – inside-digital.de
Mein Modem wird nicht erkannt. Was kann ich tun?
- Richtiger Slot auf dem Board gewählt? –> apu2-documentation/APU_mPCIe_capabilities.md at master · pcengines/apu2-documentation · GitHub
- Wurde ein Delay in die Boot Konfiguration eingetragen?
echo 'loader_delay="30"' >> /boot/loader.conf
Das Modem muss hochgefahren sein bevor der Treiber geladen wird - Wird das Modem erkannt?
usbconfig in der Konsole - Alle devices vorhanden?
ls /dev/cuaU*
Die Verbindung ist langsam. Was kann ich tun?
- Modem im USB2/Highspeed Modus?
Kann im BIOS/Coreboot umgestellt werden:
- Alle Antennen im Modem aktiv?
AT^ANTMODE?
^ANTMODE: 0,3
Alle Antennen für LTE freigeben - Antennen ausrichten
Es wurde ein falscher/ungültiger Init String verwendet und jetzt funktioniert gar nichts mehr
Im PPP log steht dann: The modem is not responding to „AT“ at ModemCmd: label
Das MT neustarten hilft. Allerdings wird das Modem als cuaU1 konfiguriert und die Einwahl funktioniert wieder nicht.
Im PPP log steht dann: can’t open /dev/cuaU0.0: Device not configured
Nach einem Neustart wird das Modem wieder als cuaU0 erkannt.
Unter Status -> Monitoring -> Cellular funktioniert der Graph nicht
Das Monitoring kann man mit folgendem Befehl nachstarten:
php -f /usr/local/bin/3gstats.php cuaU0.2 wan
Allerdings fehlt die Umrechnung der Einheiten in dB, so dass nur der RAW informationen erfasst und dargestellt sind.
Wieso ist das Default Gateway 10.64.64.0?
PPP benötigt keinen Standard gateway, es reicht wenn für die default Route das Interface ppp0 gesetzt ist.
Falls das Gateway monitoring/dpinger verwendet wird, würde ich eine alternative monitoring Adresse eintragen. Ich verwende die erste öffentliche IP, die mittels tracert zum Vorschein kam.
Was bedeuten die anderen Werte oder CME Fehler/Gibt es noch andere AT Befehle?
In dem Handbuch mit den AT Befehlen ist alles beschrieben
Wie kann ich im init String mehrere Befehle hintereinander anreihen?
Mittels Strichpunkt (;) trennen.
AT^MONSC;^MONNC
Wie kann ich Anführungszeichen/Gänsefüßchen im init String verwenden?
Die Zeichen müssen vorher „escaped“ werden.
+CGDCONT=1,\“ip\,\“MeinAPN\“
Für was steht RSSI, RSRP, SINR und RSRQ und was bedeuten diese?
LTE Signalstärke | LTE Leistung verbessern mit FTS Hennig – fts-henning.de
RSSI | Interpretation und Bedeutung für die Empfangsqualität – LTE-Anbieter.info
RSRP | Interpretation und Bestimmung – LTE-Anbieter.info
SINR und SNR | Relevanz für Mobilfunknutzer – LTE-Anbieter.info
Vielen Dank für den übersichtlichen Bericht. Ich habe das selbe Setup, allerdings auf Bios 4.11.06 Mainline Release und einen österreichischen A1 Tarif. Zusätzlich habe ich eine WiFi-Karte im 3ten Pci Slot.
Also:
mSATA am mPCIe3 J14
HUAWEI m909s-120 am mPCIE2 J15
Compex WLE200NX am mPCIe3 J16
Es läuft soweit gut, allerdings nur bis max 5mbps und ich vermute, weil die Huawei mit spd=FULL angeschlossen ist. Hast Du eine Idee, wie ich die ugen2.3 auf spd=HIGH bekomme?
Hallo,
um an das BIOS zu kommen, muss ein Computer an der seriellen Konsole angeschlossen sein. Via PuTTY auf die Konsole aufschalten und beim Booten des Boards die F10 Taste drücken.
Anschließend die Einstellung mittels der Taste „h“ ändern.
Sieht dann so aus:https://blog.root32.eu/wp-content/uploads/2020/04/pfsense_coreboot_2.png
Falls das BIOS nicht erreichbar ist, z.B. weil es deaktiviert wurde, dann beim Starten die S1 Taste auf dem Board drücken.
Das habe ich nach Deiner Anleitung schon gemacht. Möglicherweise muss EHCI schon vor Installation von PFsense aktiviert sein? Ich installiere PFsense jetzt neu und berichte hier danach, damit es dokumentiert ist.
Neuinstallation hatte keinen Erfolg. Interessant ist aber, dass direkt nach der Installation, ind er Shell die man benutzen kann um vor dem Neustart noch Einstellungen vorzunehmen, mit usbconfig, das Modem mit spd=HIGH angeführt wird.
Nach dem Neustart ist das Modem aber wieder auf spd=FULL
Hast Du eine Idee?
Ich würde die WLAN Karte Compex WLE200NX testweise ausbauen, evtl. „spuckt“ die oder der Treiber von FreeBSD in die Suppe. pcEngines empfiehlt die Karte in mPCIe3 J14 zu bauen und die FreeBSD Treiber für WLAN Karten sei wohl nicht so toll.
Falls das kein Erfolg bringt, würde ich noch das legacy BIOS testen.
Danke root32 für den Tip mit J14. Ich habe nun die HUAWEI auf J14, J15 leer und auf J16 die WiFi Karte. Vorher habe ich noch das BIOS auf Legacy 4.6.30 geladen. Bei allen USB Geräten ist nun mindestens spd=HIGH. Mit dieser Konfiguration ist allerdings keine mSATA mehr möglich. PFsense muss daher auf einer SD oder SATA installiert werden. Ob das ohne mSATA auf SD-Karte gleich stabil läuft wie auf meinen anderen beiden APU2 wird sich zeigen.
Das Problem dürfte sein, dass J15 und J16 einen USB-Controller teilen. J14 hat einen dezidierten eigenen.
Kein nachhaltiger Erfolg. Die Karte bleibt nicht auf HIGH-Speed. Die Frage ist nun, ob es an PFsense oder der APU3 liegt, dass die HUAWEI nicht tut wie sie soll.
Nach einem neuen Anlauf, mit einem neuen USB3.0 Stick, konnte ich pfsense 2.4.5 auf die interne mSATA laden, Huawei im mittleren mPCIe und Wlan auch installiert.
Jetzt bleibt die Huawei bei spd=HIGH. Datendurchsatz bisher unter 20mbps UP/DOWN, aber das ist schon mal ein großer Erfolg.
Danke für die Anleitung!!!!
Moin und vielen Dank für deine gute Anleitung. Leider startet die Verbindung nicht automatisch, wenn die pfSense neustartet. Wenn ich das PPP Profil ohne Änderung speicher, wird sofort eine Verbindung aufgebaut. Die Nutzung des Connection Checks im Cellular Modul ändert nichts oder ist ggf. falsch konfiguriert. Kannst du mir hier helfen?
Hallo, was steht denn im System Logs -> PPP ?
Vielen Dank für deinen Bericht.
Ich habe das ganze mit einem ME909u-521 aufgebaut.
Das ganze funktioniert sehr gut und auch die Geschwindigkeit scheint bis jetzt i.o zu sein.
Allerdings kriege ich es nicht hin das die Statusdaten stimmen.
Wenn ich php -f /usr/local/bin/3gstats.php cuaU0.2 wan ausführe bleibt das Skript einfach stehen.
Es sieht aus wie wenn die Karte keine Updated zum Status liefert.
Hast du da vieleicht eine Idee?
Hallo, 3gstats.php beendet sich nicht von alleine sondern wertet immer die Informationen von dem Modem aus. Mittels Konsole im Hintergrund ausführen lassen
&> php -f /usr/local/bin/3gstats.php cuaU0.2 wan &
Super Anleitung – DANKE. Hat mir sehr geholfen. Sollte noch wer SMS Abfragen wollen hier dazu der Befehl im Terminal (Router IP z.B. 192.168.0.1):
ssh 192.168.0.1 -l root
Password: XYZ
root: cu -l /dev/cuaU0.2
Connected
AT+CMGL=“ALL“