3

I have installed OpenCPN in 18.04 and I bought a Glonass BN-808 USB GPS Receiver. It is apparently UBLOX M8030 although I'm not sure what that actually means, but it is supposed to be supported in Linux. However while lsusb can see the receiver at bus 001 device 003 ( which is nothing like the tty or /dev format requested by OpenCPN ), Ubuntu cannot read any data from said receiver. I have followed the instructions in the OpenCPN manual but with no success. Anyone have any suggestions? Thanks Dave

EDIT 1: Output for tail -f /var/log/syslog

I ran tail -f /var/log/syslog and got a much larger output than you did, none of which made any sense to me.
The ublox receiver was detectedbut from there the output read:

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.

I ran apt-get install gpsd-clients earlier but I’m not sure if it loaded correctly, I did see the word “fail” a few times.

2 Answers 2

2

The best way to ensure that it is detected is to check /var/log/syslog on its connection:

  1. Disconnect GNSS receiver
  2. Open terminal and run tail -f /var/log/syslog command
  3. Connect GNSS receiver and wait for its initialization

For my u-blox7 GPS/GLONASS I have the following output:

May 22 23:50:08 hostname kernel: [99544.380440] usb 3-2: new full-speed USB device number 12 using xhci_hcd
May 22 23:50:08 hostname kernel: [99544.509111] usb 3-2: New USB device found, idVendor=1546, idProduct=01a7
May 22 23:50:08 hostname kernel: [99544.509115] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
May 22 23:50:08 hostname kernel: [99544.509117] usb 3-2: Product: u-blox 7 - GPS/GNSS Receiver
May 22 23:50:08 hostname kernel: [99544.509119] usb 3-2: Manufacturer: u-blox AG - www.u-blox.com
May 22 23:50:08 hostname kernel: [99544.509363] usb 3-2: ep 0x83 - rounding interval to 1024 microframes, ep desc says 2040 microframes
May 22 23:50:08 hostname mtp-probe: checking bus 3, device 12: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-2"
May 22 23:50:08 hostname mtp-probe: bus: 3, device: 12 was not an MTP device
May 22 23:50:08 hostname kernel: [99544.537420] cdc_acm 3-2:1.0: ttyACM0: USB ACM device
May 22 23:50:08 hostname kernel: [99544.538041] usbcore: registered new interface driver cdc_acm
May 22 23:50:08 hostname kernel: [99544.538044] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

Note the bold lines above - we see that it is really u-blox 7 and that it is recognized as serial port - ttyACM0 (really /dev/ttyACM0).

To test the GNSS receiver you can use gpsmon (it will decode NMEA to time, latitude, longitude and other data):

  1. Install gpsmon with sudo apt-get install gpsd-clients
  2. Launch gpsmon for the found serial port with sudo gpsmon /dev/ttyACM0
  3. Wait GNSS to find satellites and get NMEA data.

Note: to have access to serial ports as normal user, you need to add your user to the dialout group with sudo usermod -a -G dialout $USER.

1

Your kernel is not handling the type correctly.

Create a file: /etc/udev/rules.d/49-ublox.rules Say by the command:

sudo nano /etc/udev/rules.d/49-ublox.rules

and put the following text into it:

# 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"

Then either restart or write:

 sudo udevadm control --reload-rules

After which plug the device again. The device should show up as /dev/ttyACM0 (the number might change). Then you can continue from the previous answers.

4
  • Where do I put this file? May 24, 2019 at 22:34
  • @Dave.Jumanji The name of the file is 49-ublox.rules, and put it in the /etc/udev/rules.d/ directory. (You will need to be root to do so).
    – Domo N Car
    May 25, 2019 at 15:44
  • Thanks but I'm way out of my depth here. I don't know how to do that and searching this site generates answers I don't understand. May 26, 2019 at 0:12
  • Do not panic! It really works after all... :-) It is mostly harmless!
    – xerostomus
    Oct 3, 2022 at 18:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .