Geodaten aktivieren bei Dell WWAN 5811e Snapdragon X7 LTE-A Wireless-Karte

  • Dies kleine how to soll zeigen wie NMEA-Signale unter openSUSE Leap 15.0 verfügbar gemacht werden, wenn
    in einem DELL Notebook der Baureihen Latitude, Inspiron oder Precision eine WWAN-Karte mit der Bezeichnung
    5811e verbaut ist. Die Karte wird bei DELL als Qualcomm® Snapdragon X7 LTE-A-Karte aufgeführt.
    Der Befehl lsusb fördert so etwas wie:


    Code
    Bus 002 Device 002: ID 413c:81b6 Dell Computer Corp.

    zutage. Der verbaute Chip ist von Sierra Wireless. Neben einem LTE-A-fähigen Modem verfügt dieser über ein GNSS-Empfänger (global navigation satellite system receiver). Dieser bietet GPS-, GLONASS- und Beidou-Satellitensystemunterstützung. usb-devices zeigt, sofern keine gps-Signale verfügbar sind:


    Code
    T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=5000 MxCh= 0
    D: Ver= 3.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1
    P: Vendor=413c ProdID=81b6 Rev=00.06
    S: Manufacturer=Sierra Wireless, Incorporated
    S: Product=DW5811e Snapdragon™ X7 LTE
    S: SerialNumber=0815blabla
    C: #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=504mA
    I: If#=12 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
    I: If#=13 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim


    Es wird also nur das KernelModul cdc_mbim geladen. (Der cdc_mbim-Treiber unterstützt USB-Geräte nach der "Universal
    Serial Bus Communications Class Subclass Specification for Mobile Broadband Interface Model" und ist optimiert für mobile Breitband Geräte (3G/LTE-Geräte)). Es fehlt das Kernel-Modul, das die GNSS-Signale verfügbar macht. Im Falle des hier werkelnden Chips ist dies der qcserial-Treiber.
    Es stellt sich die Frage, warum der qcserial-Treiber nicht geladen wird, wenn eine Unterstützung der Hardeware gegeben ist, wie der Blick in die Linux Kernel Driver DataBase zeigt. Das Problem offenbart sich schnell,
    wenn überprüft wird, welche USB composition für das Gerät gewählt wurde (oder besser ausgedrückt voreingestellt ist.) (USB compositions legen fest, mit welchen Interfaces ein Gerät auf dem USB-Bus erscheinen soll.)
    Glücklicherweise gibt es ein perl-script (Autor: Bjørn Mork), dass die gewünschte Aussage hinsichtlich der USB compositionen liefert.
    Ein Aufruf mit perl swi_setusbcomp.pl führt zu Ausgabe von


    Die USB composition Nr. 9 lässt lediglich das MBIM-Interface auf dem USB-Bus erscheinen. Für die gewünschten GNSS-Signale brauchen wir aber das NMEA-Interface (National Marine Electronics Association).
    (NMEA 0183 beschreibt einen Kommunikationstandard zwischen GNSS-Empfänger und auswertenden Geräten wie PCs oder anderen Endgeräten. Das NMEA-Interface arbeitet genau nach dieser Vorgabe.) Also wäre USB composition Nr. 8 die, die benötigt wird. Mit perl swi_setusbcomp.pl --usbcomp=8 wird dies erreicht. usb-devices zeigt nach dieser Änderung und Neustart, dass das Kernel-Modul qcserial nun geladen ist.

    Jetzt muss nur noch dafür Sorge getragen werden, dass die NMEA-Daten auf den USB-Bus gelegt werden.
    Die Ausgabe obigen perl-scripts gibt über die Spaltennummer des Interfaces die Nummer des pseudo-UBS-Devices auf den die Daten des Interfaces gelegt werden an. Also werden die NMEA-Daten mit
    echo "\$GPS_START" >/dev/ttyUSB1 explizites eingeschaltet. Die NMEA-Daten werden dann auf den USB-Bus gelegt.
    Mit cat /dev/ttyUSB1 lassen sich die NMEA-Daten auf stout anschauen. Fertig.


    Anm.: Unter Umständen wird die WWAN-Karte nicht korrekt vom System erkannt. Abhilfe schafft in einem solchen Fall eine eigene udev-Regel, die in eine Textdatei, z.B. mit dem Namen 99-dell5811e.rules im
    Verzeichnis /etc/udev/rules.d/ abgelegt wird. Die Dateirechte sind 644 (oktal), Eigentümer und Gruppe auf root:root setzen.


    be tolerant - not ignorant
    Alle Hunde sind schwarz.
    Es gibt einen Hund der nicht weiß ist.

    Für den Inhalt des Beitrages 122154 haftet ausdrücklich der jeweilige Autor: Boreas