gpsd cannot open /dev/ttyUSB0
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
gpsd (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: gpsd
from the man page:
> gpsd must start up as root in order to open the NTPD shared-memory segment, open its logfile, and create its local control
> socket. Before doing any processing of GPS data, it tries to drop root privileges by setting its UID to "nobody" (or another userid
> as set by configure) and its group ID to the group of the initial GPS passed on the command line — or, if that device doesn't
> exist, to the group of /dev/ttyS0.
> The assumption behind gpsd's particular behavior is that all the tty devices to which a GPS might be connected are owned by
> the same non-root group and allow group read/write, though the group may vary because of distribution-
> administrative practice. If this assumption is false, gpsd may not be able to open GPS devices in order to read them (such
> failures will be logged)."
since I have no /dev/ttyS0 and gpsd is configured for start up without any devices / adding devices later via hotplug / control socket it switches it's user-/group-id to nobody(65535) / root(0) and can therefore not open /dev/ttyUSB0 which is later created with group id dialout by udev.
description: | updated |
Confirmed in 12.04.2
Fixed in GPSD in Aug 2009, here is the original bug report in Debian bugtracker http:// bugs.debian. org/cgi- bin/bugreport. cgi?bug= 542384
Gpsd developers added compile time option (!?) to set fallback gpsd group when device from command line is unavailable when gpsd starts. IMO, it should be runtime command line argument, not compile time option, but that is what we've got.
Attached patch setting 'gpsd_group= dialout' compile option.