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

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 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:

    Quellcode

    1. 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:

    Quellcode

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

    Quellcode

    1. ...
    2. Current USB composition: 9
    3. USB compositions:
    4. 0 - HIP DM NMEA AT MDM1 MDM2 MDM3 MS NOT SUPPORTED
    5. 1 - HIP DM NMEA AT MDM1 MS NOT SUPPORTED
    6. 2 - HIP DM NMEA AT NIC1 MS NOT SUPPORTED
    7. 3 - HIP DM NMEA AT MDM1 NIC1 MS NOT SUPPORTED
    8. 4 - HIP DM NMEA AT NIC1 NIC2 NIC3 MS NOT SUPPORTED
    9. 5 - HIP DM NMEA AT ECM1 MS NOT SUPPORTED
    10. 6 - DM NMEA AT QMI SUPPORTED
    11. 7 - DM NMEA AT RMNET1 RMNET2 RMNET3 NOT SUPPORTED
    12. 8 - DM NMEA AT MBIM SUPPORTED
    13. * 9 - MBIM SUPPORTED
    14. 10 - NMEA MBIM NOT SUPPORTED
    15. 11 - DM MBIM NOT SUPPORTED
    16. 12 - DM NMEA MBIM NOT SUPPORTED
    17. 13 - Config1: comp6 Config2: comp8 NOT SUPPORTED
    18. 14 - Config1: comp6 Config2: comp9 NOT SUPPORTED
    19. 15 - Config1: comp6 Config2: comp10 NOT SUPPORTED
    20. 16 - Config1: comp6 Config2: comp11 NOT SUPPORTED
    21. 17 - Config1: comp6 Config2: comp12 NOT SUPPORTED
    22. 18 - Config1: comp7 Config2: comp8 NOT SUPPORTED
    23. 19 - Config1: comp7 Config2: comp9 NOT SUPPORTED
    24. 20 - Config1: comp7 Config2: comp10 NOT SUPPORTED
    25. 21 - Config1: comp7 Config2: comp11 NOT SUPPORTED
    26. 22 - Config1: comp7 Config2: comp12 NOT SUPPORTED
    27. ...
    Alles anzeigen

    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.

    Quellcode

    1. T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=5000 MxCh= 0
    2. D: Ver= 3.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs= 1
    3. P: Vendor=413c ProdID=81b6 Rev=00.06
    4. S: Manufacturer=Sierra Wireless, Incorporated
    5. S: Product=DW5811e Snapdragon™ X7 LTE
    6. S: SerialNumber=0815blabla
    7. C: #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=504mA
    8. I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=qcserial
    9. I: If#=12 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0e Prot=00 Driver=cdc_mbim
    10. I: If#=13 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
    11. I: If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=qcserial
    12. I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=qcserial
    Alles anzeigen
    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.

    Quellcode

    1. # load qcserial module
    2. SUBSYSTEM=="usb", \
    3. ATTR{idVendor}=="413c", ATTR{idProduct}=="81b6", \
    4. RUN+="/sbin/modprobe -b qcserial"
    5. # force Dell WWAN 5811e (Snapdragon™ X7 LTE)to configuration #1
    6. SUBSYSTEM=="usb", \
    7. ATTR{idVendor}=="413c", ATTR{idProduct}=="81b6", \
    8. ATTR{bConfigurationValue}="1"
    9. # add the new id in the qcserial driver
    10. SUBSYSTEM=="drivers", \
    11. ENV{DEVPATH}=="/bus/usb-serial/drivers/qcserial", \
    12. ATTR{new_id}="413c 81b6"
    Alles anzeigen
    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