I updated line #210 of libs/indibase/indigps.cpp to pass errno to strerror instead of rc (which is always -1) and got the actual problem logged out:
An obvious solution would be to run indi_gpsd as root, but it would be great to find out how to allow a non-root user update system time.
I have a feeling this is quite a serious obstacle, because the get_local_sidereal_time function defined in libs/indicore/indicom.c and used by my mount driver (at least) uses the ln_get_julian_from_sys function from libnova, which directly depends on the system clock.
This could explain why I see the Temma driver setting wrong local sidereal time to the mount despite the fact Kstars/Ekos actually show correct time from GPSD.
Have you managed to solve or find a workaround for this?
helped. Now I see the system time updated correctly by the INDI GPSD module, and the error message has disappeared.
I suppose in your case you would need to do the same for the GPS-NMEA binary instead of indi_gpsd.
On a side note, I do not see the system time on my Raspberry Pi updated by a remote Kstars instance (on the laptop) even with "Kstars updates all devices" setting and similar capability added to the /usr/bin/indiserver binary.