USB gps devices that are presented as /dev/ttyACM? and /dev/ttyUSB? (?= a number) will fail with the folling error in logs: Sep 27 18:10:33 laptop kernel: usb 7-1: new full-speed USB device number 7 using xhci_hcd Sep 27 18:10:33 laptop kernel: usb 7-1: New USB device found, idVendor=1546, idProduct=01a8, bcdDevice= 3.01 Sep 27 18:10:33 laptop kernel: usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 Sep 27 18:10:33 laptop kernel: usb 7-1: Product: u-blox GNSS receiver Sep 27 18:10:33 laptop kernel: usb 7-1: Manufacturer: u-blox AG - www.u-blox.com Sep 27 18:10:34 laptop kernel: cdc_acm 7-1:1.0: ttyACM0: USB ACM device Sep 27 18:10:34 laptop gpsd.hotplug[27117]: add /dev/ttyACM0 Sep 27 18:10:34 laptop gpsdctl[27119]: gpsd_control(action=add, arg=/dev/ttyACM0) Sep 27 18:10:34 laptop gpsdctl[27119]: reached a running gpsd Sep 27 22:10:34 laptop gpsd[22501]: gpsd:ERROR: SER: device open of /dev/ttyACM0 failed: Permission denied - retrying read-only Sep 27 22:10:34 laptop gpsd[22501]: gpsd:ERROR: SER: read-only device open of /dev/ttyACM0 failed: Permission denied Sep 27 22:10:34 laptop gpsd[22501]: gpsd:ERROR: SER: device open of /dev/ttyACM0 failed: Permission denied - retrying read-only Sep 27 22:10:34 laptop gpsd[22501]: gpsd:ERROR: SER: read-only device open of /dev/ttyACM0 failed: Permission denied Sep 27 22:10:34 laptop gpsd[22501]: gpsd:ERROR: /dev/ttyACM0: device activation failed, freeing device. Reproducible: Always Steps to Reproduce: 1. emerge sci-geosciences/gpsd 2. Plug in a USB gps device. 3. Run xgps and see there is no data. Actual Results: Error in logs: Sep 27 22:10:34 laptop gpsd[22501]: gpsd:ERROR: SER: device open of /dev/ttyACM0 failed: Permission denied - retrying read-only Sep 27 22:10:34 laptop gpsd[22501]: gpsd:ERROR: SER: read-only device open of /dev/ttyACM0 failed: Permission denied Sep 27 22:10:34 laptop gpsd[22501]: gpsd:ERROR: SER: device open of /dev/ttyACM0 failed: Permission denied - retrying read-only Sep 27 22:10:34 laptop gpsd[22501]: gpsd:ERROR: SER: read-only device open of /dev/ttyACM0 failed: Permission denied Expected Results: Running xgps will show sats in view and location. The root cause is gpsd_group=dialout in the ebuild. Replacing that line with gpsd_group=uucp fixes it. All tty[USB|ACM]* devices are set by udev to be group uucp. Setting to critical as this bug prevent use of gpsd on nearly all gps devices in use. The description says "hangs" and I think this bug quifies for that setting as gpsd will set there doing nothing. Unplugging the USB device will not release it, have to issue a killall gpsd to release it.
They're owned by dialout on my systemd machine and uucp on an openrc one. Need to look more at why this is. Could be a coincidence. Any custom udev rules?
I did some digging today. I believe I was asked if I created any custom udev rules, the answer is "no". The only rule I found that sets the group is located in /lib/udev/rules.d/50-udev-default.rules. The line is: KERNEL=="tty[A-Z]*[0-9]|ttymxc[0-9]*|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="uucp" equery returns sys-fs/eudev-3.2.9 as owning that file. That package is pulled in by virtual/udev-217-r2 *more digging* This commit, https://github.com/gentoo/eudev/commit/1aa8fdf779219d953633323b4206acadc8b8e37b, that dates back 12 years change uucp to dailout. Found the ebuild part that changes the above back to uucp # change rules back to group uucp instead of dialout for now sed -e 's/GROUP="dialout"/GROUP="uucp"/' \ -i rules/*.rules \ || die "failed to change group dialout to uucp" That change goes all the way back to CVS and is present in all eudev ebuilds. https://sources.gentoo.org/repo/gentoo/historical.git/commit/sys-fs/eudev?id=87e39e2bf665a025a17760d377f939bd8fee21be
fixed in acct-user/gpsd-0-r2