Slow boot due to USB errors

Hans de Goede hdegoede at redhat.com
Sun May 11 06:37:56 UTC 2014


Hi,

On 05/10/2014 08:00 PM, drago01 wrote:
> On Sat, May 10, 2014 at 7:49 PM, Hans de Goede <hdegoede at redhat.com> wrote:
>> Hi,
>>
>> On 05/10/2014 05:13 PM, drago01 wrote:
>>> Hi,
>>>
>>> Startup finished in 8.394s (firmware) + 590ms (loader) + 918ms
>>> (kernel) + 19.389s (initrd) + 1.940s (userspace) = 31.234s
>>>
>>> ~19.4 seconds during initrd seems like a bit much ... looking at the
>>> log output I have noticed this:
>>>
>>> [    3.306309] usb 1-4: new full-speed USB device number 3 using xhci_hcd
>>> [    5.502178] usb 1-4: unable to read config index 0 descriptor/start: -71
>>> [    5.502190] usb 1-4: can't read configurations, error -71
>>> [    5.655591] usb 1-4: new full-speed USB device number 4 using xhci_hcd
>>> [    7.699049] usb 1-4: unable to read config index 0 descriptor/start: -71
>>> [    7.699060] usb 1-4: can't read configurations, error -71
>>> [    7.851791] usb 1-4: new full-speed USB device number 5 using xhci_hcd
>>> [    9.895842] usb 1-4: unable to read config index 0 descriptor/start: -71
>>> [    9.895854] usb 1-4: can't read configurations, error -71
>>> [    9.895997] hub 1-0:1.0: unable to enumerate USB device on port 4
>>> [   10.048994] usb 1-5: new high-speed USB device number 6 using xhci_hcd
>>> [   10.363192] usb 1-5: New USB device found, idVendor=0bda, idProduct=58b1
>>> [   10.363202] usb 1-5: New USB device strings: Mfr=3, Product=1, SerialNumber=2
>>> [   10.363208] usb 1-5: Product: FJ Camera
>>> [   10.363212] usb 1-5: Manufacturer: Generic
>>> [   10.363215] usb 1-5: SerialNumber: 200901010001
>>> [   10.519824] usb 1-7: new full-speed USB device number 7 using xhci_hcd
>>> [   10.684975] usb 1-7: New USB device found, idVendor=8087, idProduct=07dc
>>> [   10.684986] usb 1-7: New USB device strings: Mfr=0, Product=0, SerialNumber=0
>>> [   10.942675] usb 1-4: new full-speed USB device number 8 using xhci_hcd
>>> [   13.139694] usb 1-4: unable to read config index 0 descriptor/start: -71
>>> [   13.139731] usb 1-4: can't read configurations, error -71
>>> [   13.292830] usb 1-4: new full-speed USB device number 9 using xhci_hcd
>>> [   15.489755] usb 1-4: unable to read config index 0 descriptor/start: -71
>>> [   15.489766] usb 1-4: can't read configurations, error -71
>>> [   15.642970] usb 1-4: new full-speed USB device number 10 using xhci_hcd
>>> [   17.687316] usb 1-4: unable to read config index 0 descriptor/start: -71
>>> [   17.687328] usb 1-4: can't read configurations, error -71
>>> [   17.840189] usb 1-4: new full-speed USB device number 11 using xhci_hcd
>>> [   19.884509] usb 1-4: unable to read config index 0 descriptor/start: -71
>>> [   19.884522] usb 1-4: can't read configurations, error -71
>>> [   19.884617] hub 1-0:1.0: unable to enumerate USB device on port 4
>>> [   19.919050] PM: Starting manual resume from disk
>>> [   19.940256] EXT4-fs (sda4): mounted filesystem with ordered data
>>> mode. Opts: (null)
>>> [   20.172347] usb 1-4: new full-speed USB device number 12 using xhci_hcd
>>>
>>>
>>> So  the questions are 1) what do those message actually mean? Seems
>>> like everything works anyway 2) why do those block the boot process
>>> ... its not like the root fs is on a usb driver or something.
>>>
>>> Kernel is 3.14.3-200.fc20.x86_64 (but does this not seem to matter it
>>> happens for pretty much every kernel for almost every but not all boot
>>> ups).
>>>
>>> Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
>>> Bus 001 Device 007: ID 8087:07dc Intel Corp.
>>> Bus 001 Device 006: ID 0bda:58b1 Realtek Semiconductor Corp.
>>> Bus 001 Device 012: ID 04f3:009b Elan Microelectronics Corp.
>>> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
>>>
>>> Any ideas where to investigate? Those error messages are really
>>> cryptic and do not tell me anything.
>>
>> -71 means EPROTO, note the device causing these issues is likely not
>> in your lsusb output since it fails to enumerate.
>>
>> linux/Documentation/usb/error-codes.txt says the following about EPROTO:
>>
>> -EPROTO (*, **)         a) bitstuff error
>>                         b) no response packet received within the
>>                            prescribed bus turn-around time
>>                         c) unknown USB error
>>
>> (*) Error codes like -EPROTO, -EILSEQ and -EOVERFLOW normally indicate
>> hardware problems such as bad devices (including firmware) or cables.
>>
>> (**) This is also one of several codes that different kinds of host
>> controller use to indicate a transfer has failed because of device
>> disconnect.  In the interval before the hub driver starts disconnect
>> processing, devices may receive such fault reports for every request.
>>
>>
>> Your boot log indicated that eventually the device on Bus 1 port 4
>> does enumerate and is the "Elan Microelectronics Corp." device which
>> likely is a touchscreen or a touchpad (if this is a tablet device
>> with a keyboard dock). Possibly the cable from the touchpad / touchscreen
>> has a loose contact somewhere.
> 
> I know that 1-4 is the touchscreen (its an ultrabook with a
> touchscreen) ... the touchscreen itself works just fine though.
> So if it takes more time / attempts to enumerate it and it works
> eventually anyway why do we block boot on it?

That is a question for the systemd people / list.

> The only effect of it is slow boot. Also not sure about the loose
> cable thing ... its a not so old laptop why would the cable be
> suddenly be lose?

I had my laptop display die on me in the first few weeks, since it is
not old, chances are your laptop is still in the infant mortality part
of the bathtub curve: http://www.weibull.com/hotwire/issue21/ht21_1.gif

And even if it is not hardware does fail. As
linux/Documentation/usb/error-codes.txt says, and so does my own
experience these type of errors typically come from hardware problems.

Regards,

Hans


More information about the kernel mailing list