CoreElec disables internal USB HUB - "port 1 disabled by hub (EMI?)"

Hi,

So I was debugging my Hyperion.ng and Arduino issues with help of @Lord-Grey in the Hyperion.ng repo and he found out that most likely my issues come from the fact that CoreElec (kernel?) for some reason disables the internal usb hub when device is idle.

GitHub issue: https://github.com/hyperion-project/hyperion.ng/issues/1183#issuecomment-788680457

Mar 01 22:12:48 CoreELEC-M8S kernel: hub 1-0:1.0: port 1 disabled by hub (EMI?), re-enabling...

Relevant part of journalctl:

Mar 01 22:12:48 CoreELEC-M8S kernel: hub 1-0:1.0: port 1 disabled by hub (EMI?), re-enabling...
Mar 01 22:12:48 CoreELEC-M8S kernel: usb 1-1: USB disconnect, device number 2
Mar 01 22:12:48 CoreELEC-M8S kernel: usb 1-1: new full-speed USB device number 4 using xhci-hcd
Mar 01 22:12:48 CoreELEC-M8S kernel: usb 1-1: New USB device found, idVendor=2341, idProduct=0043
Mar 01 22:12:48 CoreELEC-M8S kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=220
Mar 01 22:12:48 CoreELEC-M8S kernel: usb 1-1: Manufacturer: Arduino (www.arduino.cc)
Mar 01 22:12:48 CoreELEC-M8S kernel: usb 1-1: SerialNumber: 55735323935351B002A0
Mar 01 22:12:48 CoreELEC-M8S kernel: usb 1-1: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
Mar 01 22:12:48 CoreELEC-M8S kernel: cdc_acm 1-1:1.0: ttyACM1: USB ACM device
Mar 01 22:12:48 CoreELEC-M8S sh[2891]: 2021-03-01T22:12:48.829 hyperiond LEDDEVICE    : <ERROR> Device disabled, device 'adalight' signals error: 'Rs232 SerialPortError: Resource temporarily unavailable'
Mar 01 22:12:48 CoreELEC-M8S hyperiond[2901]: Device disabled, device 'adalight' signals error: 'Rs232 SerialPortError: Resource temporarily unavailable'

Full journalctl log: http://ix.io/2RnY

Is there anything that can be done here? What could cause this - some kind of power saving feature or what? My devices are constantly up and running (I don’t put them to suspend/sleep). The weird thing is that it happens only on one of my devices - Mecool M8S Pro L, the other one KIII Pro is just fine.

Any help would be appreciated.

Thanks!

From the kernel source where this happens:

EM interference sometimes causes badly shielded USB devices to be shutdown by
the hub, this hack enables them again. Works at least with mouse driver.

I think there are some interference with USB communication. Check cables and powering of your devices.

I’m using a 5V 3A 15W power supply which I bought quite recently so I assume that one is fine.

I have also right now replaced the usb cable connecting my device with Arduino just to be sure that it’s not a cable issue - I’ll report later if the device will again crash.

The same internal usb hub is being used for the usb drive with CoreElec installation and that one works just fine - no crashes whatsoever so its affecting only 1 of 2 ports. The arduino device is in a separate plastic box about 30cm from the actual device so I guess there wouldn’t be any interference there.

I’ll come back in a bit with the results of replacing usb cable.

Thanks.

And how do you power Arduino device? Separate power supply or from CE device?

It’s powered by the usb cable and HOLY SMOKES! You might be right that the usb cable that I was using, even though it’s working - it’s really badly shielded and the interference causes the usb port to be disabled by the kernel.

I replaced the cable yesterday and it still works. I’ll need to keep it up for a day or two more to be sure but so far this seems like the fix.

Thanks!

1 Like

Everything still works fine, so I can confirm that the issue was the poor cable shielding causing interference and linux kernel disabling the usb internal hub port because of the EM interference.

Thanks @vpeter!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.