APU3 mit pfSense und Huawei ME909s-120

Von | 19. April 2020

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

  1. Wert: RSSI 28 -> -57 dBm (0 -> -113 dBm und schlechter / 31 -> -51 dBm und besser / 1 Einheit = 2 dBm)
  2. Wert: immer 99

RSSI, RSRP, SINR und RSRQ auslesen

AT^HCSQ?
^HCSQ: „LTE“,47,51,101,26

  1. Wert: system mode LTE -> 4G
  2. Wert: RSSI 47 -> -74 dBm ( 0 -> -121 dBm / 96 -> -25 dBm / 1 Einheit = 1 dBm)
  3. Wert: RSRP 51 -> -90 dBm (0 -> -141 dBm / 97 -> -44 dBm / 1 Einheit = 1 dBm)
  4. Wert: SINR 101 -> 0 dB (1 -> -20,0 dB / 251 -> 30,0 dB / 1 Einheit = 0,2 dB)
  5. 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,,,,,

  1. Wert: Mode 0 -> „nicht abonniert“
  2. Wert: Type 5 -> LTE
  3. Wert: MCC 262 -> Deutschland
  4. Wert MNC 02 -> Vodafone
  5. 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

  1. Wert: auto_report 0 -> nicht abonniert
  2. Wert: sysmode 6 -> LTE
  3. Wert: LTE-Band 8
  4. Wert: Downlink EARFCN 3600
  5. Wert: Downlink Frequenz 940,0 MHz
  6. Wert: Downlink Bandbreite 10 MHz
  7. Wert: Uplink EARFCN 21600
  8. Wert: Uplink Frequenz 895,0 MHz
  9. 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

  1. Wert: Anzahl der zu suchenden Netz 5
  2. Wert: Signalstärke -110 dB>
  3. 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

  1. Wert: ARFCN Frequenz
  2. Wert: c1 –> nicht unterstützt
  3. Wert: c2 –> nicht unterstützt
  4. Wert: Tracking Area Code
  5. Wert: MCC 262 -> Deutschland
  6. Wert; MNC 02 -> Vodafone
  7. Wert: BSIC 0 -> bei LTE
  8. Wert: RSRP

Service Status

AT^SYSINFOEX
^SYSINFOEX: 2,3,0,1,,6,“LTE“,101,“LTE“

  1. Wert: System service status 2 -> gültiger Service
  2. Wert: Service Domain 3 -> PS (packet switched) + CS (circuit switched [Sprachtelefonie]) Service
  3. Wert: Roaming status 0 -> kein Roaming
  4. Wert: SIM Karten Status 1 -> gültige SIM Karte für PS und CS
  5. Wert: SIM card locked status –> nicht unterstützt
  6. Wert: system mode LTE -> 4G
  7. Wert: submode 101 -> LTE
  8. 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.

  1. Wert: sysmode 03 -> LTE
  2. Wert: Band: 3FFFFFFF -> alle Bänder
  3. Wert : roaming 2 -> keine Änderung
  4. Wert: Service Domain 4 -> keine Änderung
  5. 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

  1. Wert: Type LTE -> 4G
  2. Wert: MCC 262 -> DE
  3. Wert: MNC 02 -> Vodafone
  4. Wert: ARFCN
  5. Wert: CellID mit RNC ID in hex
  6. Wert: Physikalische Zellen ID
  7. Wert: Tracking area Code
  8. Wert: RSRP in dBm
  9. Wert: RSRQ in dB
  10. Wert: RSSI in dBm

Nachbarzellen abfragen

AT^MONNC

  1. Wert: Type LTE -> 4G
  2. Wert: ARFCN
  3. Wert: Physikalische Zellen ID in hex
  4. Wert: RSRP
  5. Wert: RSRQ
  6. Wert: RSSI

Zelle fixieren

AT^FREQLOCK=1,"04",6300,,,451

  1. Wert: aktiv 1 -> aktiv
  2. Wert: Mode 04 -> LTE
  3. Wert: ARFCN 6300 -> 800 MHz/LTE Band 20
  4. n/a
  5. n/a
  6. Physikalische Zellen ID

Fixierung überprüfen

AT^FREQLOCK?
^FREQLOCK: 0,“01″
^FREQLOCK: 0,“02″
^FREQLOCK: 0,“03″
^FREQLOCK: 1,“04″,6300,,,451

  1. Wert: aktiv 1 -> Ja
  2. Wert: Modus 01 = GSM; 02 = WCDMA; 03 = TD-SCDMA; 04 = LTE
  3. Wert: ARFCN
  4. Wert n/a
  5. Wert n/a
  6. Wert: Physikalische Zellen ID

 

Zellen fixierung aufheben

AT^FREQLOCK=0

Debugging

Letzte Fehlercode bei der Einwahl ausgeben

AT^GLASTERR=1
^GLASTERR: 1,50

  1. Wert: service 01 -> CS
  2. Wert: CME Fehler 50 -> ungültige Parameter

Temperatur ausgeben

AT^CHIPTEMP?
^CHIPTEMP: 65535,65535,65535,65535,65535,417

  1. Wert: GSM PA chip Temperatur 65535 -> aktuell nicht unterstützt
  2. Wert: WCDMA PA chip Temperatur 65535 -> aktuell nicht unterstützt
  3. Wert: LTE PA Chip Temperatur 65535 -> aktuell nicht unterstützt
  4. Wert: SIM Karten Temperatur 65535 -> aktuell nicht unterstützt
  5. Wert: Batterie Temperatur 65535 -> aktuell nicht unterstützt
  6. 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?

  1. Richtiger Slot auf dem Board gewählt? –> apu2-documentation/APU_mPCIe_capabilities.md at master · pcengines/apu2-documentation · GitHub
  2. 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
  3. Wird das Modem erkannt?
    usbconfig in der Konsole

    pfSense mit Ausgabe von usbconfig und usbconfig -d 2.3 dump_device_desc

  4. Alle devices vorhanden?
    ls /dev/cuaU*

    Ausgabe ls /dev/cuaU*

Die Verbindung ist langsam. Was kann ich tun?

  1. Modem im USB2/Highspeed Modus?

    pfSense mit Ausgabe von usbconfig

    Kann im BIOS/Coreboot umgestellt werden:

    APU Bios/Coreboot Menu

  2. Alle Antennen im Modem aktiv?
    AT^ANTMODE?
    ^ANTMODE: 0,3
    Alle Antennen für LTE freigeben
  3. 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

RSRQ | Bestimmung und Bedeutung – LTE-Anbieter.info

13 Gedanken zu „APU3 mit pfSense und Huawei ME909s-120

  1. SysErr

    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?

    Antworten
    1. root32 Beitragsautor

      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.

      Antworten
      1. SysErr

        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.

        Antworten
        1. SysErr

          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?

          Antworten
          1. root32 Beitragsautor

            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.

          2. SysErr

            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.

          3. SysErr

            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.

          4. SysErr

            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!!!!

  2. Michael

    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?

    Antworten
  3. Marco

    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?

    Antworten
    1. root32 Beitragsautor

      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 &

      Antworten
  4. opaque

    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“

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.