Track down EHCI and companion errors on rk3xxx systems
Alan Stern
stern at rowland.harvard.edu
Tue Jan 13 08:22:43 PST 2026
On Tue, Jan 13, 2026 at 05:16:05PM +0100, Diederik de Haas wrote:
> On Tue Jan 13, 2026 at 4:47 PM CET, Alan Stern wrote:
> > Is this repeatable?
>
> It doesn't happen every time, but it did actually happen another time.
> After that test, I shutdown the device and unplugged the keyboard
> adapter. Then I powered on the device and waited till it had completed
> the boot process.
> Logged in via SSH, retrieved my usual boot process data (what you saw in
> my 'paste' starting with ``uname -a``) and then did ``dmesg -W``.
>
> Then I plugged in my keyboard adapter in the bottom port and noticed it
> didn't work (straight away). This time I waited, pressed various keys on
> my keyboard, turned the keyboard off and on again, pressed some more
> keys ... and after ~20 (or 30?) seconds, my keyboard started to work.
> When I then switched back to my SSH session, I saw dmesg had (then)
> printed messages indicating it saw the adapter plugged in and ``lsusb``
> did see the device.
>
> But that ~20 seconds is key here. Normally I would conclude that "it
> doesn't work" after (say) >5 seconds of nothing happening.
>
> > 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
>
> Would ``dmesg -W`` also work?
The point is to get rid of the everything in the log from before the
time you plug in the keyboard adapter. If you want to use "dmesg -W"
and edit out all the initial stuff by hand, that's fine. I just don't
want to see it, because it's not useful and will only make the report
harder to figure out.
> > 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.
>
> Normally my SSH session is displayed on the same monitor as the desktop
> session of the Quartz64-A (I switch between HDMI-1 and HDMI-2 input
> sources of my monitor). This makes doing any kind of precise timing
> activity impossible. I'll try doing the SSH session via my laptop, which
> hopefully allows timings to be closer (but likely still not precise).
Exact timing isn't important. An approximate number that can be
compared with the log is what we want.
> > 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.
>
> I was already planning to make it built-in as the chances of me not
> needing USB2 in some way, are quite slim. And they should (hopefully)
> prevent such issues and I'd have a warning less in dmesg.
Okay.
Alan Stern
More information about the Linux-rockchip
mailing list