bryzinga n00b
Joined: 14 May 2022 Posts: 3
|
Posted: Tue Jan 14, 2025 2:52 am Post subject: udev appears slow to process Yubikey uevents |
|
|
Hi there! Been a while since my last issue.
I currently am running into issues with my Yubikey 5C. Whenever I plug it into my laptop, it seems to take 15-20 for it to be usable by other applications such as KeePassXC and GPG.
Running programs such as "ykman" or "gpg --card-status" always fail to recognize the Yubikey for the first 15-20 seconds it is plugged in. When I run "pcscd -a -d -f", nothing gets output either for the first 15 seconds. But when I run "udevadm monitor", the kernel is clearly recognizing the device and populates two hidraw devices in /dev, but udev seems to be the one that takes forever to actually do anything with it (such as applying rules). I don't experience this issue when I boot a live Fedora image on my laptop or on my desktop running Arch, so I'm fairly confident this is an issue with udev and Gentoo, whether of my own misconfiguration or something else. I've done several searches with various terms, but I can't seem to find anyone else with the same problem on any Linux distro. This is really more of a convenience issue than a functional issue, since I have been accustomed to always plug in my Yubikey the second I need it, so I'm morealess peeved that it works fine elsewhere but not on my laptop.
I have pcscd added to my default runlevel and set to hotplug in the OpenRC conf file, as well as making sure that GPG was configured correctly as shown in the wiki article: https://wiki.gentoo.org/wiki/YubiKey/GPG . I also have tried installing Yubico's udev rules in /etc/udev/rules.d/: https://github.com/Yubico/libfido2/blob/main/udev/70-u2f.rules . I don't believe it's an issue with any other application either as the issue occurs in a TTY without any graphical applications running.
Something interesting I notice when monitoring udev is that when I plug in my Yubikey and immediately unplug it, udev will still register the device 15-20 seconds after it was first plugged in, then immediately de-register it:
Code: | $ udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
KERNEL[1750.604759] add /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
KERNEL[1750.608010] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0 (usb)
KERNEL[1750.609050] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006 (hid)
KERNEL[1750.609129] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22 (input)
KERNEL[1750.660302] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::numlock (leds)
KERNEL[1750.686912] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::numlock (leds)
KERNEL[1750.686997] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::capslock (leds)
KERNEL[1750.716978] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::capslock (leds)
KERNEL[1750.717052] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::scrolllock (leds)
KERNEL[1750.746933] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::scrolllock (leds)
KERNEL[1750.746986] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::compose (leds)
KERNEL[1750.747003] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::kana (leds)
KERNEL[1750.780243] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::kana (leds)
KERNEL[1750.780577] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/event15 (input)
KERNEL[1750.780886] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/hidraw/hidraw3 (hidraw)
KERNEL[1750.780962] bind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006 (hid)
KERNEL[1750.781014] bind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0 (usb)
KERNEL[1750.781640] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1 (usb)
KERNEL[1750.782867] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/0003:1050:0407.0007 (hid)
KERNEL[1750.783113] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/usbmisc/hiddev1 (usbmisc)
KERNEL[1750.783192] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/0003:1050:0407.0007/hidraw/hidraw4 (hidraw)
KERNEL[1750.783254] bind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/0003:1050:0407.0007 (hid)
KERNEL[1750.783285] bind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1 (usb)
KERNEL[1750.783802] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.2 (usb)
KERNEL[1750.783864] bind /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
KERNEL[1751.456926] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::numlock (leds)
KERNEL[1751.456987] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::numlock (leds)
KERNEL[1751.483401] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::capslock (leds)
KERNEL[1751.483446] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::capslock (leds)
KERNEL[1751.523563] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::scrolllock (leds)
KERNEL[1751.523622] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::scrolllock (leds)
KERNEL[1751.523640] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::compose (leds)
KERNEL[1751.550257] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::kana (leds)
KERNEL[1751.550324] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::kana (leds)
KERNEL[1751.590520] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/event15 (input)
KERNEL[1751.640481] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22 (input)
KERNEL[1751.640582] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/hidraw/hidraw3 (hidraw)
KERNEL[1751.640616] unbind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006 (hid)
KERNEL[1751.640649] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006 (hid)
KERNEL[1751.640684] unbind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0 (usb)
KERNEL[1751.640713] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0 (usb)
KERNEL[1751.641279] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/usbmisc/hiddev1 (usbmisc)
KERNEL[1751.641343] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/0003:1050:0407.0007/hidraw/hidraw4 (hidraw)
KERNEL[1751.641369] unbind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/0003:1050:0407.0007 (hid)
KERNEL[1751.641401] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/0003:1050:0407.0007 (hid)
KERNEL[1751.641427] unbind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1 (usb)
KERNEL[1751.641455] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1 (usb)
KERNEL[1751.641487] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.2 (usb)
KERNEL[1751.642449] unbind /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
KERNEL[1751.642517] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
UDEV [1766.988969] add /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
UDEV [1767.022221] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1 (usb)
UDEV [1767.023436] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/0003:1050:0407.0007 (hid)
UDEV [1767.024198] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/usbmisc/hiddev1 (usbmisc)
UDEV [1767.026374] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/0003:1050:0407.0007/hidraw/hidraw4 (hidraw)
UDEV [1767.027098] bind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/0003:1050:0407.0007 (hid)
UDEV [1767.027946] bind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1 (usb)
UDEV [1767.222183] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0 (usb)
UDEV [1767.222596] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006 (hid)
UDEV [1767.223048] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22 (input)
UDEV [1767.224911] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/hidraw/hidraw3 (hidraw)
UDEV [1767.225127] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::numlock (leds)
UDEV [1767.225160] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::capslock (leds)
UDEV [1767.225193] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/event15 (input)
UDEV [1767.225851] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::capslock (leds)
UDEV [1767.226130] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::numlock (leds)
UDEV [1767.226470] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::kana (leds)
UDEV [1767.226807] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::scrolllock (leds)
UDEV [1767.227255] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::kana (leds)
UDEV [1767.227293] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::compose (leds)
UDEV [1767.227887] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::scrolllock (leds)
UDEV [1767.228522] bind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006 (hid)
UDEV [1767.229175] bind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0 (usb)
UDEV [1767.404524] add /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.2 (usb)
UDEV [1767.405330] bind /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
UDEV [1767.405589] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::compose (leds)
UDEV [1767.405815] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/event15 (input)
UDEV [1767.405851] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::numlock (leds)
UDEV [1767.405891] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::kana (leds)
UDEV [1767.405910] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/usbmisc/hiddev1 (usbmisc)
UDEV [1767.405981] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::numlock (leds)
UDEV [1767.406092] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::capslock (leds)
UDEV [1767.406122] change /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::scrolllock (leds)
UDEV [1767.406149] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.2 (usb)
UDEV [1767.406163] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/hidraw/hidraw3 (hidraw)
UDEV [1767.406174] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::kana (leds)
UDEV [1767.406522] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/0003:1050:0407.0007/hidraw/hidraw4 (hidraw)
UDEV [1767.406554] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::capslock (leds)
UDEV [1767.406572] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22/input22::scrolllock (leds)
UDEV [1767.406937] unbind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/0003:1050:0407.0007 (hid)
UDEV [1767.406975] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006/input/input22 (input)
UDEV [1767.407243] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1/0003:1050:0407.0007 (hid)
UDEV [1767.407392] unbind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006 (hid)
UDEV [1767.407538] unbind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1 (usb)
UDEV [1767.407557] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0/0003:1050:0407.0006 (hid)
UDEV [1767.407713] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.1 (usb)
UDEV [1767.407851] unbind /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0 (usb)
UDEV [1767.408058] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2:1.0 (usb)
UDEV [1767.408791] unbind /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
UDEV [1767.409181] remove /devices/pci0000:00/0000:00:14.0/usb3/3-2 (usb)
|
Here is the output of some relevant files/commands, if there is any other information needed let me know:
Code: | $ rc-service pcscd status
* status: started
$ cat /etc/rc.conf | grep pcscd
rc_hotplug="pcscd"
$ cat ~/.gnupg/scdaemon.conf
card-timeout 300
disable-ccid
pcsc-shared
$ equery uses systemd-utils
[ Legend : U - final flag setting for installation]
[ : I - package is installed with flag ]
[ Colors : set, unset ]
* Found these USE flags for sys-apps/systemd-utils-254.17:
U I
- - abi_x86_32 : 32-bit (x86) libraries
+ + acl : Add support for Access Control Lists
- - boot : Enable systemd-boot (UEFI boot manager)
- - kernel-install : Enable kernel-install
+ + kmod : Enable kernel module loading via sys-apps/kmod
- - python_single_target_python3_10 : Build for Python 3.10 only
- - python_single_target_python3_11 : Build for Python 3.11 only
+ + python_single_target_python3_12 : Build for Python 3.12 only
- - secureboot : Automatically sign efi executables using user specified key
- - sysusers : Enable systemd-sysusers
- - test : Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
+ + tmpfiles : Enable systemd-tmpfiles
+ + udev : Enable systemd-udev (userspace device manager)
- - ukify : Enable systemd-ukify
$ gunzip -c /proc/config.gz | grep HID_GENERIC
CONFIG_HID_GENERIC=y
$ uname -r
6.12.8-gentoo-dist
|
Thanks for any help you can provide! |
|