Track down EHCI and companion errors on rk3xxx systems
Alan Stern
stern at rowland.harvard.edu
Tue Jan 13 07:47:31 PST 2026
On Tue, Jan 13, 2026 at 02:35:21PM +0100, Diederik de Haas wrote:
> Got my (gtkgreet) login screen and plugged in my keyboard adapter in the
> *bottom* USB2 port ... and that did NOT work.
>
> Logged in via SSH and noticed it was indeed not listed in ``lsusb``.
> Checked ``lsmod`` and ``dmesg | tail`` ... and noticed the kernel *did*
> notice plugging in the keyboard adapter, so did ``lsusb`` *again* and
> then it *did* list my keyboard adapter.
> I did NOT employ my usual 'workaround' by plugging it into a USB3 port.
>
> So it may be that it would have always worked ... eventually ... if I
> had just waited long enough?
> While 'dmesg' seems to suggest it took little over 0.5 seconds, I'm
> really not that fast ;-P (or that impatient)
Is this repeatable?
If it is, try doing the following. After a fresh boot, log in via SSH
and turn on dynamic debugging for USB:
echo module usbcore =p >/sys/kernel/debug/dynamic_debug/control
and clear the kernel's log buffer:
dmesg -C
Then plug the keyboard adapter into the non-working bottom USB2 port and
wait a short time (say, 30 seconds).
Then get a copy of the dmesg output and post it here. Also, check to
see whether the keyboard is working. In fact, you should check the
keyboard during that 30-second wait, so you will know just how long the
delay was before it started working.
Another thing you can try is to force the necessary module(s) to load
before plugging in the keyboard adapter. For now, a simple modprobe
issued over the SSH connection will do the job. If this turns out to
help, you can configure modprobe to load the module(s) automatically at
boot time.
Alan Stern
More information about the Linux-rockchip
mailing list