LINUX.ORG.RU

Не опознаются устройства, подключенные через порт usb 3.0

 , , ,


0

2

С обновлением с ядра 3.14.13 на 3.14.15 в Debian Sid amd64 вылезла странная проблема - не опознаются usb-устройства в разъеме версии 3.0 (причем как usb3.0 устройства, так и старые 2.0). При их включении в dmesg такая фигня начинается:

[19463.858105] usb usb2: root hub lost power or was reset
[19463.858114] usb usb3: root hub lost power or was reset
[19463.865281] xhci_hcd 0000:04:00.0: irq 43 for MSI/MSI-X
[19463.865295] xhci_hcd 0000:04:00.0: irq 44 for MSI/MSI-X
[19463.865309] xhci_hcd 0000:04:00.0: irq 45 for MSI/MSI-X
[19463.865322] xhci_hcd 0000:04:00.0: irq 46 for MSI/MSI-X
[19463.865335] xhci_hcd 0000:04:00.0: irq 47 for MSI/MSI-X
[22383.351312] usb usb2: root hub lost power or was reset
[22383.351321] usb usb3: root hub lost power or was reset
[22383.358508] xhci_hcd 0000:04:00.0: irq 43 for MSI/MSI-X
[22383.358524] xhci_hcd 0000:04:00.0: irq 44 for MSI/MSI-X
[22383.358538] xhci_hcd 0000:04:00.0: irq 45 for MSI/MSI-X
[22383.358551] xhci_hcd 0000:04:00.0: irq 46 for MSI/MSI-X
[22383.358563] xhci_hcd 0000:04:00.0: irq 47 for MSI/MSI-X
[22384.350695] usb usb2: root hub lost power or was reset
[22384.350704] usb usb3: root hub lost power or was reset
[22384.357880] xhci_hcd 0000:04:00.0: irq 43 for MSI/MSI-X
[22384.357894] xhci_hcd 0000:04:00.0: irq 44 for MSI/MSI-X
[22384.357906] xhci_hcd 0000:04:00.0: irq 45 for MSI/MSI-X
[22384.357918] xhci_hcd 0000:04:00.0: irq 46 for MSI/MSI-X
[22384.357930] xhci_hcd 0000:04:00.0: irq 47 for MSI/MSI-X
[22385.350229] usb usb2: root hub lost power or was reset
[22385.350238] usb usb3: root hub lost power or was reset
[22385.357437] xhci_hcd 0000:04:00.0: irq 43 for MSI/MSI-X
[22385.357453] xhci_hcd 0000:04:00.0: irq 44 for MSI/MSI-X
[22385.357467] xhci_hcd 0000:04:00.0: irq 45 for MSI/MSI-X
[22385.357480] xhci_hcd 0000:04:00.0: irq 46 for MSI/MSI-X
[22385.357492] xhci_hcd 0000:04:00.0: irq 47 for MSI/MSI-X

...

и так далее. При этом файла устройства, конечно же, не появляется. Порты USB 2.0 работают нормально. Устройство - ноутбук. Проблема проявляется как при работе от сети, так и от батареи.

Вопрос: что я делаю не так? Подобной проблемы в гугле не видно, в багтрекере ядра тоже. Очень маловероятно, что в минорном релизе после стольких лет стабильной работы сломали USB 3.0.

UPD. В ченджлогах ядра 3.14.14 нашел такое:

commit e354b2e1f10aceec9ab4a3dd0e1078ada894f45b
Author: Gavin Guo <gavin.guo@canonical.com>
Date:   Fri Jul 18 01:12:13 2014 +0800

    usb: Check if port status is equal to RxDetect
    
    commit bb86cf569bbd7ad4dce581a37c7fbd748057e9dc upstream.
    
    When using USB 3.0 pen drive with the [AMD] FCH USB XHCI Controller
    [1022:7814], the second hotplugging will experience the USB 3.0 pen
    drive is recognized as high-speed device. After bisecting the kernel,
    I found the commit number 41e7e056cdc662f704fa9262e5c6e213b4ab45dd
    (USB: Allow USB 3.0 ports to be disabled.) causes the bug. After doing
    some experiments, the bug can be fixed by avoiding executing the function
    hub_usb3_port_disable(). Because the port status with [AMD] FCH USB
    XHCI Controlleris [1022:7814] is already in RxDetect
    (I tried printing out the port status before setting to Disabled state),
    it's reasonable to check the port status before really executing
    hub_usb3_port_disable().
Это единственное относящееся к usb изменение в версиях 3.14.1{4,5}. Кто-нибудь, скастаните, пожалуйста, знатоков ядра.

★★★

Да, тоже первое что приходит в голову - перегруз порта. Какие устройства на порту?

А вообще много чего гуглится по «usb usb3: root hub lost power or was reset». Например вот (тут два рецепта): https://bbs.archlinux.org/viewtopic.php?id=91496

Kroz ★★★★★ ()
Ответ на: комментарий от dimon555

Как выяснилось, причина действительно была в перегрузке порта от внешнего 3.5" диска (привет сумрачному китайскому гению). Раньше никогда не сталкивался с таким. К моему удивлению, порты USB 2.0 нормально держали мощность. Получается, что порты USB 3.0 в целом рассчитаны на меньшую мощность? Или это особенность данной модели ноута?

Во имя великой справедливости: для того, чтобы оживить порт после перегрузки, достаточно перезагрузить модуль xhci_hcd

# rmmod xhci_hcd
# modprobe xhci_hcd

lu4nik ★★★ ()
Ответ на: комментарий от dimon555

Спасибо, теперь в целом ясно. Главное, что не спалил порт.

lu4nik ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.