Ich habe OpenCPN in 18.04 installiert und einen Glonass BN-808 USB-GPS-Empfänger gekauft. Es handelt sich anscheinend um UBLOX M8030, obwohl ich nicht sicher bin, was das eigentlich bedeutet, aber es soll in Linux unterstützt werden.Abonnierenkann den Empfänger am Bus 001, Gerät 003 sehen (was überhaupt nicht dem von OpenCPN geforderten tty- oder /dev-Format entspricht), Ubuntu kann keine Daten von diesem Empfänger lesen. Ich habe die Anweisungen im OpenCPN-Handbuch befolgt, aber ohne Erfolg. Hat jemand Vorschläge? Danke, Dave
BEARBEITEN 1: Ausgabe für tail -f /var/log/syslog
Ich habe tail -f /var/log/syslog ausgeführt und eine viel größere Ausgabe erhalten als Sie, die für mich keinen Sinn ergab.
Der ublox-Empfänger wurde erkannt, aber von dort aus lautete die Ausgabe:
May 23 15:34:19 dave-Aspire-ES1-523 kernel: [ 1018.870051] usb 1-1.1: New USB device found, idVendor=1546, idProduct=01a8
May 23 15:34:19 dave-Aspire-ES1-523 kernel: [ 1018.870060] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
May 23 15:34:19 dave-Aspire-ES1-523 kernel: [ 1018.870064] usb 1-1.1: Product: u-blox GNSS receiver
May 23 15:34:19 dave-Aspire-ES1-523 kernel: [ 1018.870068] usb 1-1.1: Manufacturer: u-blox AG - www.u-blox.com
May 23 15:34:20 dave-Aspire-ES1-523 mtp-probe: checking bus 1, device 5: "/sys/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1"
May 23 15:34:20 dave-Aspire-ES1-523 mtp-probe: bus: 1, device: 5 was not an MTP device
May 23 15:34:20 dave-Aspire-ES1-523 kernel: [ 1019.001058] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
May 23 15:34:20 dave-Aspire-ES1-523 kernel: [ 1019.001512] usbcore: registered new interface driver cdc_acm
May 23 15:34:20 dave-Aspire-ES1-523 kernel: [ 1019.001513] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
May 23 15:34:20 dave-Aspire-ES1-523 upowerd[1059]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1
May 23 15:34:20 dave-Aspire-ES1-523 upowerd[1059]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1/1-1.1:1.1
May 23 15:34:20 dave-Aspire-ES1-523 upowerd[1059]: unhandled action 'bind' on /sys/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1/1-1.1:1.0
May 23 15:34:31 dave-Aspire-ES1-523 ModemManager[831]: [device /sys/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1] creating modem with plugin 'u-blox' and '1' ports
May 23 15:34:31 dave-Aspire-ES1-523 ModemManager[831]: Could not grab port (tty/ttyACM0): 'Cannot add port 'tty/ttyACM0', unhandled serial type'
May 23 15:34:31 dave-Aspire-ES1-523 ModemManager[831]: Couldn't create modem for device '/sys/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.1': Failed to find primary AT port
May 23 15:42:58 dave-Aspire-ES1-523 systemd-resolved[770]: Grace period over, resuming full feature set (UDP+EDNS0) for DNS server fe80::8e0d:76ff:fe57:2816%3.
May 23 15:48:17 dave-Aspire-ES1-523 systemd-resolved[770]: Grace period over, resuming full feature set (UDP+EDNS0) for DNS server 192.168.1.1.
May 23 15:48:19 dave-Aspire-ES1-523 systemd-resolved[770]: Using degraded feature set (UDP) for DNS server fe80::8e0d:76ff:fe57:2816%3.
May 23 15:50:31 dave-Aspire-ES1-523 systemd-resolved[770]: Using degraded feature set (UDP) for DNS server 192.168.1.1.
Ich habe vorhin „apt-get install gpsd-clients“ ausgeführt, bin mir aber nicht sicher, ob es richtig geladen wurde. Das Wort „fail“ habe ich einige Male gesehen.
Antwort1
Um sicherzustellen, dass es erkannt wird, prüfen Sie am besten /var/log/syslog
die Verbindung:
- GNSS-Empfänger trennen
- Öffnen Sie das Terminal und führen Sie
tail -f /var/log/syslog
den Befehl aus - GNSS-Empfänger anschließen und auf seine Initialisierung warten
Für mein u-blox7 GPS/GLONASS habe ich folgende Ausgabe:
22. Mai 23:50:08 Hostname Kernel: [99544.380440] USB 3-2: Neues Full-Speed-USB-Gerät Nummer 12 verwendet xhci_hcd
22. Mai 23:50:08 Hostname Kernel: [99544.509111]usb 3-2: Neues USB-Gerät gefunden, idVendor=1546, idProduct=01a7
22. Mai 23:50:08 Hostname Kernel: [99544.509115] USB 3-2: Neue USB-Gerätezeichenfolgen: Mfr=1, Product=2, SerialNumber=0
22. Mai 23:50:08 Hostname Kernel: [99544.509117]USB 3-2: Produkt: u-blox 7 - GPS/GNSS-Empfänger
22. Mai 23:50:08 Hostname Kernel: [99544.509119]USB 3-2: Hersteller: u-blox AG - www.u-blox.com
22. Mai 23:50:08 Hostname Kernel: [99544.509363] USB 3-2: EP 0x83 – Intervall wird auf 1024 Mikroframes gerundet, laut EP-Beschreibung 2040 Mikroframes.
22. Mai 23:50:08 Hostname MTP-Sonde: Überprüfe Bus 3, Gerät 12: „/sys/devices/pci0000:00/0000:00:14.0/usb3/3-2“
22. Mai 23:50:08 Hostname MTP-Sonde: Bus: 3, Gerät: 12 war kein MTP-Gerät.
22. Mai 23:50:08 Hostname Kernel: [99544.537420]cdc_acm 3-2:1.0: ttyACM0: USB-ACM-Gerät
22. Mai 23:50:08 Hostname Kernel: [99544.538041] usbcore: neuer Schnittstellentreiber cdc_acm registriert
22. Mai 23:50:08 Hostname Kernel: [99544.538044] cdc_acm: USB Abstract Control Model-Treiber für USB-Modems und ISDN-Adapter
Beachten Sie die fettgedruckten Linien oben - wir sehen, dass es wirklichu-blox 7und dass es als serielle Schnittstelle erkannt wird -ttyACM0(Wirklich /dev/ttyACM0
).
Zum Testen des GNSS-Empfängers können Sie Folgendes verwenden gpsmon
(er dekodiert NMEA in Zeit, Breitengrad, Längengrad und andere Daten):
- Installieren
gpsmon
mitsudo apt-get install gpsd-clients
- Starten Sie
gpsmon
den gefundenen seriellen Port mitsudo gpsmon /dev/ttyACM0
- Warten Sie, bis GNSS Satelliten findet und NMEA-Daten erhält.
Hinweis: Um als normaler Benutzer auf die seriellen Schnittstellen zugreifen zu können, müssen Sie Ihren Benutzer mit zur dialout
Gruppe hinzufügen sudo usermod -a -G dialout $USER
.
Antwort2
Ihr Kernel verarbeitet den Typ nicht richtig.
Erstellen Sie eine Datei: /etc/udev/rules.d/49-ublox.rules. Geben Sie den Befehl ein:
sudo nano /etc/udev/rules.d/49-ublox.rules
und fügen Sie folgenden Text ein:
# 1546:01a8 - uBlox Receiver
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a8", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a8", ENV{MTP_NO_PROBE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a8", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="1546", ATTRS{idProduct}=="01a8", MODE:="0666"
Dann entweder neu starten oder schreiben:
sudo udevadm control --reload-rules
Schließen Sie das Gerät anschließend wieder an. Das Gerät sollte als /dev/ttyACM0 angezeigt werden (die Nummer kann sich ändern). Anschließend können Sie mit den vorherigen Antworten fortfahren.