我在 18.04 安裝了 OpenCPN,並購買了 Glonass BN-808 USB GPS 接收器。顯然是 UBLOX M8030,雖然我不確定這實際上意味著什麼,但 Linux 應該支援它。然而雖然LSSB可以在匯流排 001 裝置 003 處看到接收器(這與 OpenCPN 要求的 tty 或 /dev 格式完全不同),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 但我不確定它是否正確加載,我確實看到了幾次“失敗”這個詞。
答案1
確保檢測到它的最佳方法是檢查/var/log/syslog
其連接:
- 斷開 GNSS 接收器
- 打開終端機並運行
tail -f /var/log/syslog
命令 - 連接 GNSS 接收器並等待其初始化
對於我的 u-blox7 GPS/GLONASS 我有以下輸出:
5 月 22 日 23:50:08 主機名稱核心:[99544.380440] USB 3-2:使用 xhci_hcd 的新全速 USB 裝置編號 12 5 月 22 日 23:50:08
主機名稱核心:[99544.509111]USB 3-2:找到新的 USB 設備,idVendor=1546,idProduct=01a7
5 月 22 日 23:50:08 主機名稱核心:[99544.509115] usb 3-2:新 USB 裝置字串:Mfr=1、Product=2、SerialNumber=0
5 月22 日23:50:08 主機名稱核心:[99544.509117]USB 3-2:產品:u-blox 7 - GPS/GNSS 接收器
5 月 22 日 23:50:08 主機名稱核心:[99544.509119]USB 3-2:製造商:u-blox AG - www.u-blox.com
5 月 22 日 23:50:08 主機名稱核心:[99544.509363] usb 3-2:ep 0x83 - 捨去間隔 1024 個微幀,ep desc 表示 2040 個微幀5 月22 日23:50:08
主機名mtp-probe:檢查匯流排3,裝置12 :「/sys/devices/pci0000:00/0000:00:14.0/usb3/3-2」
5月22日23:50:08主機名稱mtp-probe:匯流排:3,設備:12不是MTP設備
5月22日23日:50:08 主機名稱核心: [99544.537420]cdc_acm 3-2:1.0: ttyACM0: USB ACM 設備
5月22日23:50:08主機名核心:[99544.538041] usbcore:註冊新介面驅動程式cdc_acm 5月22日23:50:08主機名稱
核心:[99544.538044] cdc_acm:USBDNBacm:USBDNBUSBacm:USBDNBUacm:USBDNBUSBacm:USBDNBUSBacm:USBDNBUacm:USBDNBUacm:USBDNBUSBAPUSBTC的數據機的調變器和數據機的數據機的抽象數據機的數據機配置調變器:USBBDNUSBacm:USBDNUSBacm:USBDNBUSBacm:USBDNUSBacm:USBDNBUSBacm:USBDNBUSBacm:USBDNBUacm:USBDNBUacm:USB.控制模型驅動程式
請注意上面的粗體線 - 我們看到它確實是u-blox 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(數字可能會變更)。然後您可以繼續之前的答案。