-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Open
Description
Describe the bug
Commit 5329a41 ("usb: dwc2: masquerade split-interrupt transfers") introduces a regression that makes communication with a YubiKey (FIDO2) unreliable to the point of being unusable.
The issue was observed on a ClockworkPi uConsole (CM4-based), where the YubiKey is connected via the internal USB hub.
Symptoms
- HID device enumerates correctly (
/dev/hidrawXexists) - Interrupt transfers intermittently fail
- FIDO operations (CTAPHID) frequently time out
- Userspace tools (e.g.
ykman) fail to communicate reliably
Reverting the above commit restores fully stable operation.
Hardware
- Device: ClockworkPi uConsole (CM4 module)
- USB topology: YubiKey connected via internal hub (Genesys Logic)
- YubiKey: 1050:0407 (YubiKey 5 series)
Steps to reproduce the behaviour
Test preparation
- clone repository, get extra patches for uConsole hardware (display, battery..)
git clone https://github.com/raspberrypi/linux.git wget -O clockworkdrivers1.patch https://github.com/ak-rex/ClockworkPi-linux/commit/5633aedcb3fd632d64c54db0184880d1954de62b.patch wget -O clockworkdrivers2.patch https://github.com/ak-rex/ClockworkPi-linux/commit/4b5b5fe35abbbf4193ddbeab149833172096066b.patch - apply patches to the tree
cd linux git apply ../clockworkdrivers*.patch - compile the kernel
make clean make bcm7211_defconfig make -j$(nproc) Image module dtbs - copy generated dtb, overlays, module and kernel image to microSD card
- boot the uConsole device
- plug in YubiKey to USB and initiate the test procedure:
- run
sudo ykman fido infomultiple times - invoke python script 10 times
- run
Test results
Output with current head + clockwork hw patches:
jose@clockworkpi:~ $ sudo ykman fido info
WARNING: Failed opening device
ERROR: Failed to connect to YubiKey.
jose@clockworkpi:~ $ sudo ykman fido info
WARNING: Failed opening device
ERROR: Failed to connect to YubiKey.
jose@clockworkpi:~ $ for i in $(seq 10); do sudo ./write_test.py ; sleep 1; done
write failed: [Errno 32] Broken pipe
write ok
write failed: [Errno 32] Broken pipe
write ok
write failed: [Errno 32] Broken pipe
write ok
write failed: [Errno 32] Broken pipe
write ok
write failed: [Errno 32] Broken pipe
write ok
Output with current head + clockwork patches + reverted commit 5329a41
jose@clockworkpi:~ $ sudo ykman fido info
AAGUID: 2fc0579f-8113-47ea-b116-bb5a8db9202a
PIN: 8 attempt(s) remaining
Minimum PIN length: 4
jose@clockworkpi:~ $ sudo ykman fido info
AAGUID: 2fc0579f-8113-47ea-b116-bb5a8db9202a
PIN: 8 attempt(s) remaining
Minimum PIN length: 4
jose@clockworkpi:~ $ sudo ykman fido info
AAGUID: 2fc0579f-8113-47ea-b116-bb5a8db9202a
PIN: 8 attempt(s) remaining
Minimum PIN length: 4
jose@clockworkpi:~ $ for i in $(seq 10); do sudo ./write_test.py ; sleep 1; done
write ok
write ok
write ok
write ok
write ok
write ok
write ok
write ok
write ok
write ok
Device (s)
Other, Raspberry Pi CM4 Lite
System
jose@clockworkpi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 13 (trixie)
Release: 13
Codename: trixie
jose@clockworkpi:~ $ cat /etc/rpi-issue
Raspberry Pi reference 2026-02-25
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, , stage2
jose@clockworkpi:~ $ vcgencmd version
Feb 17 2025 20:03:07
Copyright (c) 2012 Broadcom
version da7125f985dfe3cb0cf91e3c47f1ace88018e466 (clean) (release) (start)
jose@clockworkpi:~ $ uname -a
Linux clockworkpi 6.12.77-v8+ #3 SMP PREEMPT Sat Mar 21 11:58:25 CET 2026 aarch64 GNU/Linux
jose@clockworkpi:~ $ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 005: ID feed:0000 Clockwork uConsole Keyboard
Bus 001 Device 006: ID 1050:0407 Yubico.com Yubikey 4/5 OTP+U2F+CCID
Logs
No response
Additional context
- issue is reproducible 100%
- not observed on earlier kernels
- not resolved by HID quirks
- likely specific to DWC2 + hub + interrupt transfer interaction
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels