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

У меня есть ряд машин, которые я собираю для работы, на которых есть устройства для чтения 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?), Которое бы это исправило?

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

12
задан 5 April 2012 в 07:38

5 ответов

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

  • измените строку, которая говорит GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" кому: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.old_scheme_first=1"
  • выполненный update-grub
  • перезагрузка и видит, помогла ли она
6
ответ дан 5 April 2012 в 07:38

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

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

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
ответ дан 5 April 2012 в 07:38

Имел

usb 2-2: new high speed USB device using address 10
usb 2-2: device not accepting address 10, error -71
...
usb 2-2: new high speed USB device using address 13
usb 2-2: device not accepting address 13, error -71

на CentOS.

Найдено http://paulphilippov.com/articles/how-to-fix-device-not-accepting-address-error

Достаточно точно, вставив USB-концентратор с питанием в уравнение решило это.

0
ответ дан 5 April 2012 в 07:38

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

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

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

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

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

Вы можете попробовать.

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

0
ответ дан 5 April 2012 в 07:38

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

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

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

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

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

0
ответ дан 5 April 2012 в 07:38

Другие вопросы по тегам:

Похожие вопросы: