2

I have a Raspberry Pi Compute Module 3 mounted on an IO board, connected to a (powered AFAIK) USB hub full of devices, and running Ubuntu MATE 16.04.2, with the X server disabled. I've noticed that whenever I switch on the RPI, none of the USB devices seem to be detected until I manually unplug and replug the USB connector back in.

At first I thought it was the hub, so I tried testing with a direct connection to my keyboard. However the same issue is happening. The keyboard is not detected after booting, until I unplug it and plug it back in.

From what I can tell, this only seems to be happening to the Compute Module 3 and IO board. I also have a Raspberry Pi Model 3B and this issue doesn't occur on that.

Is there any way I can fix this? Or at least work around it? I was intending to build an application with the compute module and IO board and I need to to interface with some USB devices after switching on as soon as it booted. Having to manually unplug and replug the USB devices everytime it switches on is a huge burden.

After reading this question: Usb gprs not detected on boot I tried to investigate further by checking dmesg and looking for any errors. I found the following

[    7.608748] usb 1-1: new full-speed USB device number 2 using dwc_otg
[    7.609896] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 1, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.609912] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 2, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.609960] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 3, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.609977] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 4, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.609992] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 5, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.610024] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 6, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.610038] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 7, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.610052] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 0, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.610076] Indeed it is in host mode hprt0 = 00021d01
[    7.788784] usb 1-1: device descriptor read/64, error -71
[    7.900160] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 2, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.900191] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 3, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.900242] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 4, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.900262] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 5, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.900281] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 6, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.900315] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 7, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.900334] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 0, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.900353] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 1, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    7.900380] Indeed it is in host mode hprt0 = 00021d01
[    8.018793] Indeed it is in host mode hprt0 = 00021d01
[    8.171964] ip_tables: (C) 2000-2006 Netfilter Core Team
[    8.196944] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    8.348743] usb 1-1: device descriptor read/64, error -71
[    8.458797] Indeed it is in host mode hprt0 = 00021d01
[    8.578817] Indeed it is in host mode hprt0 = 00021d01
[    8.908812] usb 1-1: new full-speed USB device number 3 using dwc_otg
[    8.910937] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 3, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    8.910967] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 4, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    8.911046] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 5, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    8.911071] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 6, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    8.911103] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 7, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    8.911314] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 0, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    8.911337] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 1, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    8.911357] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 2, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    8.911389] Indeed it is in host mode hprt0 = 00021d01
[    9.088768] usb 1-1: device descriptor read/64, error -71
[    9.200503] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 4, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    9.200535] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 5, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    9.200593] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 6, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    9.200615] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 7, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    9.200643] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 0, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    9.200685] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 1, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    9.200718] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 2, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    9.200745] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 3, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    9.200776] Indeed it is in host mode hprt0 = 00021d01
[    9.378782] usb 1-1: device descriptor read/64, error -71
[    9.488841] Indeed it is in host mode hprt0 = 00021d01
[    9.668773] usb 1-1: new full-speed USB device number 4 using dwc_otg
[    9.669928] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 5, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    9.669954] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 6, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    9.878831] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 7, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    9.878867] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 0, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[    9.878892] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 1, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   10.088774] usb 1-1: device not accepting address 4, error -71
[   10.088857] Indeed it is in host mode hprt0 = 00021d01
[   10.092317] random: nonblocking pool is initialized
[   10.268754] usb 1-1: new full-speed USB device number 5 using dwc_otg
[   10.269952] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 3, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   10.269978] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 4, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   10.478830] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 5, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   10.478864] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 6, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   10.478891] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 7, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   10.688770] usb 1-1: device not accepting address 5, error -71
[   10.688853] usb usb1-port1: unable to enumerate USB device
[   12.998797] Indeed it is in host mode hprt0 = 00021d01
[   13.118731] Indeed it is in host mode hprt0 = 00021d01
[   13.388727] Indeed it is in host mode hprt0 = 00021d01
[   13.718724] usb 1-1: new full-speed USB device number 6 using dwc_otg
[   13.720775] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 1, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   13.720808] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 2, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   13.720855] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 3, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   13.720873] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 4, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   13.720892] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 5, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   13.720924] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 6, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   13.720943] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 7, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   13.720963] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 0, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   13.720984] Indeed it is in host mode hprt0 = 00021d01
[   13.838731] Indeed it is in host mode hprt0 = 00021d01
[   14.168720] usb 1-1: device descriptor read/64, error -71
[   14.279778] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 2, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.279812] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 3, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.279859] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 4, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.279877] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 5, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.279896] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 6, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.279934] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 7, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.279957] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 0, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.279975] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 1, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.280002] Indeed it is in host mode hprt0 = 00021d01
[   14.458720] usb 1-1: device descriptor read/64, error -71
[   14.568763] Indeed it is in host mode hprt0 = 00021d01
[   14.748720] usb 1-1: new full-speed USB device number 7 using dwc_otg
[   14.759809] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 3, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.759831] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 4, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.759873] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 5, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.759892] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 6, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.759911] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 7, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.759947] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 0, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.759966] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 1, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.759985] ERROR::handle_hc_chhltd_intr_dma:2214: handle_hc_chhltd_intr_dma: Channel 2, DMA Mode -- ChHltd set, but reason for halting is unknown, hcint 0x00000002, intsts 0x06000021

[   14.760009] Indeed it is in host mode hprt0 = 00021d01
[   14.878732] Indeed it is in host mode hprt0 = 00021d01
[   15.148742] Indeed it is in host mode hprt0 = 00021d01

Some errors seem to occur when it scans for USB devices during boot. However, after unplugging and replugging in the keyboard, the USB device seems to be detected properly from dmesg.

[   19.408725] usb 1-1: new low-speed USB device number 8 using dwc_otg
[   19.411622] Indeed it is in host mode hprt0 = 00041901
[   19.626462] usb 1-1: New USB device found, idVendor=04d9, idProduct=4545
[   19.626472] usb 1-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[   19.626478] usb 1-1: Product: USB Keyboard
[   19.640101] input: USB Keyboard as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1:1.0/0003:04D9:4545.0001/input/input0
[   19.699218] hid-generic 0003:04D9:4545.0001: input,hidraw0: USB HID v1.10 Keyboard [USB Keyboard] on usb-3f980000.usb-1/input0
[   19.722854] input: USB Keyboard as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1:1.1/0003:04D9:4545.0002/input/input1
[   19.778937] hid-generic 0003:04D9:4545.0002: input,hidraw1: USB HID v1.10 Device [USB Keyboard] on usb-3f980000.usb-1/input1

Googling the error shows some light on the topic but I really can't find a solution.

EDIT: After some further investigation I noticed that I can't seem to replicate the above errors. The usb devices are not detected at all during boot. I'm not sure what's going on. Maybe it's best to ignore the errors I mentioned above, it might've been just a fluke?

It is also worth noting that this issue only happens during a cold boot, i.e. when the raspberry pi was switched off, and then switched on. I am using a electronics power supply connected to one of the 5V pins on the IO board in order to power the rpi

5
  • Sounds like Ubuntu 16 bug, never had such an issue with Raspbian Stretch. Can you try it with a different OS?
    – Fabian
    Jun 3, 2018 at 12:59
  • Try this: raspberrypi.stackexchange.com/a/50976/5538
    – goldilocks
    Jun 3, 2018 at 16:26
  • 1
    @Fabian I tried using a Raspbian image. Same issue.
    – 9a3eedi
    Jun 4, 2018 at 6:20
  • @goldilocks unfortunately that didnt work
    – 9a3eedi
    Jun 4, 2018 at 6:45
  • No, now nothing seems to be detected before I unplug. However, it still gets detected after I plug it in again
    – 9a3eedi
    Jun 4, 2018 at 14:57

1 Answer 1

0

It seems my issue is somewhat related to the power supply hardware.

I have changed my setup. Previously, I had used a 5V power supply connected to the pins on the IO board in order to power the compute module. To switch the compute module on and off, I would simply switch the power supply on and off.

I since then switched to a standard Raspberry Pi USB-based power supply. I now switch the power supply on and off from the wall socket switch. After performing this switch, I stopped having this problem.

My guess is that this has something to do with the way my previous power supply switched on. I noticed a sudden voltage spike when switching it on, but I thought that this was normal and nothing to worry about (I am not an electrical engineer :)). I'm guessing that this may have caused problems with the USB port, and that maybe the new standard power supply doesn't have this spike. But to be honest, I'm not 100% sure why switching power supplies fixed the problem.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.