[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: systemd gpsd does not start on boot



On 10/26/2015 01:09 PM, Michael Biebl wrote:
Am 26.10.2015 um 17:13 schrieb Philippe Clérié:
On 10/25/2015 01:52 PM, Michael Biebl wrote:
Am 25.10.2015 um 12:59 schrieb Philippe Clérié:
On 10/23/2015 05:33 PM, Philippe Clérié wrote:
I'm running raspbian jessy on a rpi2 with an Adafruit GPS board. Gpsd
refuses to load on boot, but works just fine on manual start.

I am not yet familiar with systemd. Even if I've had to dig a bit to
try
to understand how it works I'm still stumped at the moment, so I don't
know if there's a bug or I am doing something wrong.

There are 3 systemd units related to gpsd in /lib/systemd/system.

gpsd.service
gpsd.socket
gpsdctl@.service

My (weak) understanding is that systemd will start .socket which in
turn
will launch .service. That does not seem to be happening.

Well, was there actually a request over the socket /var/run/gpsd.sock
which would trigger the start of the service?

If there is no such request from a client, the service will not be
started. The maintainer of gpsd apparently has setup gpsd so it is
started on-demand and apparently there is no demand from a client.


Looks like he did half the job then. I'm pretty sure my ntp daemon works
over /run/gpsd.sock. I'm also pretty sure nothing queries gpsd over the
local tcp socket on port 2947.

/var/run should be a symlink to /run. Please check that, if not, then
something is wrong.
How das ntp + gpsd work? Does your ntp daemon accesses actually access
/run/gpsd.sock? If so it should trigger the start of gpsd.service.

Also, whenever udev finds GPS hardware, it should trigger
gpsdctl@.service. See /lib/udev/rules.d/60-gpsd.rules.
Do you have such a gpsdctl@<device>.service instance running?

The gpsdctl@.service instance in turn will run
gpsdctl add /dev/<device>. gpsdctl talks to gpsd over
/var/run/gpsd.socket, so will trigger the start of gpsd.service

If not, maybe the udev rules file does not list your hardware and that's
the root cause for this issue


So this may not be so simple after all. Please remember I am not up to speed with systemd so it's not all that clear to me how it works. So, other than confirming the existence of gpsdctl@.service I've no idea whether it works or gets called or whatever. I guess I'll have to be more proactive about learning systemd.

Anyway, I did some googling and you may have a point about that on-demand starting of gpsd, and I thank for bringing it up. More stuff to research.

Unfortunately, I am traveling tomorrow and I'll be out a couple of weeks. I'll resume work on this upon return. I'll bring up any issues I come up with then.

Thanks for the help.

--
Philippe

------
The trouble with common sense it that it is so uncommon.
<Anonymous>


Reply to: