使用来自 digitalbarbedwire.com 的帖子中的信息,使用 Adafruit Ultimate GPS 帽子和 PPS 使用最新的 Jessie Lite Raspbian 2017 年 1 月的 RPI2。简单的设置和 PPS 以及所有 gps 命令在本地工作得很好。
我试图让 gpsd 在端口 2947 上接受通过网络传入的请求以导出位置信息(OpenCPN)。我编辑了 /etc/default/gpsd 以添加 -G 选项 GPSD_OPTIONS="-n -G" 但不允许外部请求。如果我停止 gpsd(sudo service stop gpsd),并在前台调用 gps(/usr/sbin/gpsd -N -n -G /dev/ttyAMA0 /dev/pps0,一切正常!所以我猜有一个将gpsd作为守护进程启动的权限问题,但我还没有弄清楚。让我发疯!
有什么建议么?
相关文件:
$ cat /lib/systemd/system/gpsd.socket
[Unit]
Description=GPS (Global Positioning System) Daemon Sockets
[Socket]
ListenStream=/var/run/gpsd.sock
ListenStream=[::1]:2947
ListenStream=0.0.0.1:2947
SocketMode=0600
[Install]
WantedBy=socket
$ cat /etc/default/gpsd
# Default settings for the gpsd init script and the hotplug wrapper.
# Start the gpsd daemon automatically at boot time
START_DAEMON="true"
# 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/ttyAMA0 /dev/pps0"
# Other options you want to pass to gpsd
GPSD_OPTIONS="-n"
$ cat /lib/systemd/system/gpsd.service
[Unit]
Description=GPS (Global Positioning System) Daemon
Requires=gpsd.socket
# Needed with chrony SOCK refclock
After=chronyd.service
[Service]
EnvironmentFile=-/etc/default/gpsd
ExecStart=/usr/sbin/gpsd -N -G $GPSD_OPTIONS $DEVICES
[Install]
Also=gpsd.socket
有任何想法吗?