Я установил OpenCPN в 18.04 и купил приемник Glonass BN-808 USB GPS. По-видимому, это UBLOX M8030, хотя я не уверен, что это на самом деле означает, но предполагается, что он поддерживается в Linux. Однако, покаlsusbвижу приемник на шине 001, устройство 003 (что совсем не похоже на формат tty или /dev, запрашиваемый OpenCPN), Ubuntu не может прочитать данные с указанного приемника. Я следовал инструкциям в руководстве OpenCPN, но безуспешно. Есть у кого-нибудь предложения? Спасибо, Дэйв
ПРАВКА 1: Вывод для tail -f /var/log/syslog
Я запустил tail -f /var/log/syslog и получил гораздо больший вывод, чем вы, и ни один из них не имел для меня никакого смысла.
Приемник ublox был обнаружен, но оттуда вывод был таким:
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.
Ранее я запускал apt-get install gpsd-clients, но не уверен, что он загрузился правильно. Я несколько раз видел слово «fail».
решение1
Лучший способ убедиться в его обнаружении — проверить /var/log/syslog
его подключение:
- Отключить приемник GNSS
- Откройте терминал и выполните
tail -f /var/log/syslog
команду - Подключите приемник GNSS и дождитесь его инициализации.
Для моего u-blox7 GPS/GLONASS у меня следующий вывод:
22 мая 23:50:08 имя хоста ядро: [99544.380440] usb 3-2: новое полноскоростное USB-устройство номер 12 с использованием xhci_hcd
22 мая 23:50:08 имя хоста ядро: [99544.509111]usb 3-2: Найдено новое USB-устройство, idVendor=1546, idProduct=01a7
22 мая 23:50:08 имя хоста ядро: [99544.509115] usb 3-2: Новые строки USB-устройства: Mfr=1, Product=2, SerialNumber=0
22 мая 23:50:08 имя хоста ядро: [99544.509117]usb 3-2: Продукт: u-blox 7 - GPS/GNSS приемник
22 мая 23:50:08 имя хоста ядро: [99544.509119]usb 3-2: Производитель: u-blox AG - www.u-blox.com
22 мая 23:50:08 имя хоста ядро: [99544.509363] usb 3-2: ep 0x83 - интервал округления до 1024 микрокадров, ep desc показывает 2040 микрокадров
22 мая 23:50:08 имя хоста mtp-probe: проверка шины 3, устройства 12: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-2"
22 мая 23:50:08 имя хоста mtp-probe: шина: 3, устройство: 12 не было устройством MTP
22 мая 23:50:08 имя хоста ядро: [99544.537420]cdc_acm 3-2:1.0: ttyACM0: USB-устройство ACM
22 мая 23:50:08 имя_хоста ядро: [99544.538041] usbcore: зарегистрирован новый драйвер интерфейса cdc_acm
22 мая 23:50:08 имя_хоста ядро: [99544.538044] cdc_acm: драйвер абстрактной модели управления USB для модемов USB и адаптеров ISDN
Обратите внимание на жирные линии выше — мы видим, что это действительно так.u-блок 7и что он распознается как последовательный порт -ttyACM0(Действительно /dev/ttyACM0
).
Для проверки приемника GNSS вы можете использовать gpsmon
(он декодирует NMEA во время, широту, долготу и другие данные):
- Установить
gpsmon
с помощьюsudo apt-get install gpsd-clients
- Запустите
gpsmon
для найденного последовательного порта с помощьюsudo gpsmon /dev/ttyACM0
- Подождите, пока GNSS найдет спутники и получит данные NMEA.
Примечание: чтобы иметь доступ к последовательным портам как обычный пользователь, вам необходимо добавить своего пользователя в dialout
группу с помощью sudo usermod -a -G dialout $USER
.
решение2
Ваше ядро неправильно обрабатывает тип.
Создайте файл: /etc/udev/rules.d/49-ublox.rules Произнесите команду:
sudo nano /etc/udev/rules.d/49-ublox.rules
и вставьте в него следующий текст:
# 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"
Затем либо перезапустите, либо напишите:
sudo udevadm control --reload-rules
После этого снова подключите устройство. Устройство должно отображаться как /dev/ttyACM0 (номер может измениться). Затем вы можете продолжить с предыдущих ответов.