USB-устройство не принимает адрес


12

У меня есть ряд машин, которые я собираю для работы, у которых есть устройства для чтения USB-карт. Когда я загружаю их, я получаю длинную серию сообщений:

...
[ 2347.768419] hub 1-6:1.0: unable to enumerate USB device on port 6
[ 2347.968178] usb 1-6.6: new full-speed USB device number 10 using ehci_hcd
[ 2352.552020] usb 1-6.6: device not accepting address 10, error -32
[ 2352.568421] hub 1-6:1.0: unable to enumerate USB device on port 6
[ 2352.768179] usb 1-6.6: new full-speed USB device number 12 using ehci_hcd
[ 2357.352033] usb 1-6.6: device not accepting address 12, error -32
...

На некоторых старых машинах это займет всего несколько попыток, прежде чем кард-ридер наконец примет адрес, в то время как на более новых машинах это может занять много минут. Смена аппаратного обеспечения невозможна, а подключение устройства чтения карт USB к другому порту - только вариант для старых моделей. Это было проблемой до 11.04, и я сейчас запускаю бета-версию 12.04, и она все еще происходит.

Есть ли что-то, что я могу сделать в программном обеспечении (возможно, с помощью правила udev?), Чтобы это исправить?

Любой совет приветствуется. Я рад предоставить больше деталей, если они вам нужны.


Для меня проблема была с кабелем.
Гаян Виракутти

Ответы:


6

Не могли бы вы попробовать старую схему инициализации для USB-устройств? Это можно сделать, изменив параметр ядра в /etc/default/grub:

  • изменить строку , которая говорит GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"наGRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.old_scheme_first=1"
  • бегать update-grub
  • перезагрузите компьютер и посмотрите, помогло ли это

2

В моем случае у меня, кажется, есть концентратор внутри машины (возможно, с четырехпортовым кластером сзади), который не принимает назначенный адрес.

Сообщения журнала для меня выглядят так:

usb 6-1: new low-speed USB device number 116 using uhci_hcd
usb 6-1: device not accepting address 116, error -71
hub 6-0:1.0: unable to enumerate USB device on port 1

Это показывает, что это USB-автобус 6 . У меня нет ничего связанного с этим, и я хочу, чтобы это заткнулось.

Теперь нам нужно найти соответствующий драйвер. В этом случае это uhci_hcdтак

$ sudo -s
# cd /sys/bus/pci/drivers/uhci_hcd

и найдите, какое устройство PCI предоставляет USB-шину 6:

# echo */usb6
0000:00:1a.2/usb5

Имя каталога здесь - это идентификатор шины PCI, соответствующий этой шине USB. Тогда это просто:

# echo 0000:00:1d.0 > unbind

чтобы выключить его.

Если это работает, тогда только последняя строка может быть добавлена ​​к сценарию загрузки. Кажется, должен быть параметр ядра, чтобы избежать некоторых шин USB, но я не могу его найти.

(Основано на ответе titaniumtux, но стараюсь не отвязывать мою клавиатуру. Назовите меня старомодным, но я все еще пользуюсь им.)


0

Я встретил ту же ситуацию, что и ты.

Но я использовал Ubuntu 10.04.

Но если бы я использовал другой компьютер, он никогда не вышел.

Так что до сих пор, я думаю, что-то было с моим интерфейсом USB.

После того, как я добавлю правила udev в мою систему, это может произойти меньше, чем раньше.

Можешь попробовать .

С наилучшими пожеланиями!


0

Создайте скрипт, содержащий следующее, и запустите его при запуске:

cd /sys/bus/pci/drivers/ehci_hcd/

sudo sh -c 'find ./ -name "0000:00:*" -print| sed "s/\.\///">unbind'

Это должно решить проблему.

Источник: здесь


Обратите внимание, что эта команда в том виде, в котором она написана, будет отменять привязку к каждому устройству EHCI, включая вашу клавиатуру.
пул

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.