A BU-353 should work out of the box with gpsd. But you have a a few things going on,
- the first item is systemd is in charge of launching an instance of gpsd. Until it is turned off (
sudo service gpsd stop) you will be chasing your tail.
-F Creates a control socket for device addition and removal commands. It must be a valid pathname on your local filesystem. It is doubtful your control socket would possibly be the USB gps you're trying to read. Typically the control socket is
/var/run/gpsd.sock but could be
- you need to have write permissions to open the control socket.
sudo gpsd -N -D3 -F /var/run/gpsd.sock works, while
gpsd -N -D3 -F /var/run/gpsd.sock will fail because non-privileged user cannot write to the control socket. Likewise,
gpsd -N -D3 -F /tmp/when_pigs_fly should work. (But, none will work if a gpsd is already running.)
Additionally you must consider additional instructions in
/etc/default/gpsd For example,
# Default settings for the gpsd init script and the hotplug wrapper.
# Start the gpsd daemon automatically at boot time
# Use USB hotplugging to add new USB devices automatically to the daemon
# Devices gpsd should collect to at boot time.
# They need to be read/writeable, either by user gpsd or the group dialout.
# Other options you want to pass to gpsd
These are introduced in
/lib/systemd/system/gpsd.service as an
The first line is useless.
systemd is in charge and does not fork off the process. It runs with the
I set USBAUTO="true" because gpsd's use of
udev and hotplugging is fairly transparent-. Plug in something that's a gps and it works. If it's not gps, it minds it's own business.
But I do code in the location of a gps that I'm currently working with. Because, stopping/restarted gpsd without rebooting, the gpsd won't 'know' about the gps at
/dev/ttyACM0 (or wherever it is) without a hotplug event. I code in the location to not have to un/plug the gps every time I restart gpsd without a reboot.
GPSD_OPTIONS= could include
-b at your discretion.
Additionally, there are other test clients (
xgps) that are more robust for checking gps output, but that should get you pointed in the right direction.