如何让 GPS 接收器 BU-353 在 Ubuntu 上工作?

如何让 GPS 接收器 BU-353 在 Ubuntu 上工作?

我有一个带 USB 接口的 GPS 接收器 BU-353,我正尝试让它在 Ubuntu 下工作。

我运行了gpsd -n -N -D 2 /dev/ttyUSB0,并得到了这个输出:

gpsd: launching (Version 2.94)
gpsd: listening on port gpsd
gpsd: running with effective group ID 1000
gpsd: running with effective user ID 1000
gpsd: opening GPS data source type 3 at '/dev/ttyUSB0'
gpsd: speed 38400, 8N1
gpsd: Garmin: garmin_gps Linux USB module not active.
gpsd: speed 9600, 8O1
gpsd: speed 38400, 8N1
gpsd: gpsd_activate(): opened GPS (fd 6)
gpsd: speed 4800, 8N1
gpsd: NTPD ntpd_link_activate: 0
gpsd: /dev/ttyUSB0 identified as type SiRF binary (2.687608 sec @ 4800bps)
gpsd: detaching 127.0.0.1 (sub 1, fd 8) in detach_client
gpsd: detaching 127.0.0.1 (sub 1, fd 8) in detach_client

此后我启动了 tangoGPS,它说没有找到 GPS 和 GPSD。

答案1

众所周知,BU-353 可与 gpsd 配合使用。

  1. 尝试-b标志(例如gpsd -b /dev/ttyUSB0

  2. 打开一个单独的终端窗口并运行gpsmon(包含在“gpsd-clients”包中)以检查 gpsd 输出。每次重新启动 gpsd 时都重新启动 gpsmon。

    探戈会不会开始得太早了?加密狗需要几秒钟来整理信号、识别卫星并计算定位;udev 需要几秒钟来启动 gpsd,而 gpsd 又需要几秒钟来探测加密狗(可能尚未准备好)并在数据流最终开始时开始广播有用信息。gpsmon也可以帮助诊断该问题。

  3. 如果没有 gpsd 输出,则进行更详细的检查。请按照以下步骤测试加密狗、内核模块、挂载、设备节点和 gpsd:

    • 拔下 USB 适配器并终止 gpsd ( sudo pkill gpsd)。等待 10 秒钟即可/dev/ttyUSB0释放。
    • 重新插入 USB 加密狗并等待 10 秒钟。
    • 检查dmesg | tail -n 5以验证加密狗是否确实已安装到/dev/ttyUSB0。如果它没有安装,那么您缺少内核模块(根据您的描述,这不太可能)。有时它会被安装到/dev/ttyUSB1如果0不是免费的!
    • 查看 udev 是否​​识别了加密狗并启动了 gpsd ( ps -e | grep gpsd)。如果没有,则说明 udev 规则存在问题,必须使用以下命令手动启动 gpsdgpsd /dev/ttyUSB0
    • 一旦 gpsd 运行,请检查加密狗输出(加密狗输出 = gpsd 输入)。尝试cat /dev/ttyUSB0(使用 CTRL+c 停止)。如果失败,请尝试将波特率重置为 4800:

      pkill gpsd
      stty 4800 > /dev/ttyUSB0
      gpsd -b /dev/ttyUSB0
      cat /dev/ttyUSB0     # CTRL+c to stop
      
    • 如果您有良好的加密狗输出(= gpsd 输入),请打开第二个终端窗口并尝试gpsmoncgps测试 gpsd 输出。
    • 最后,既然您有了良好的加密狗输出和良好的 gpsd 输出,请尝试 tangoGPS。

答案2

我遇到了类似的问题。我做了这里的所有操作,但仍然无法在 openCPN 中运行。我偶然发现另一个论坛说尝试将 gpsd 的默认设置更改为此/etc/default/gpsd

# Default settings for the gpsd init script and the hotplug wrapper.

# Start the gpsd daemon automatically at boot time
START_DAEMON="false"

# Use USB hotplugging to add new USB devices automatically to the daemon
USBAUTO="true"

# Devices gpsd should collect to at boot time.
# They need to be read/writeable, either by user gpsd or the group dialout.
DEVICES="/dev/ttyUSB0"

# Other options you want to pass to gpsd
GPSD_OPTIONS="-n -G -b"
GPSD_SOCKET="/var/run/gpsd.sock"
#end of file gpsd

令我惊讶的是,它成功了。

相关内容