Что такое перезагрузка устройства USB?

20

У меня есть это совершенно новое программное обеспечение RAID-1 с двумя внешними USB-накопителями WD Elements, и я вижу, что Linux довольно часто повторяет следующее сообщение:

...
[302148.036912] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
[302153.052029] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302186.031481] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302217.050210] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302281.043543] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302312.090158] usb 1-3.3: reset high-speed USB device number 20 using ehci_hcd
[302351.076851] usb 1-3.1: reset high-speed USB device number 19 using ehci_hcd
...

Итак, что это говорит? Это нормально? Это проблема, которую я должен попытаться решить?

Обновление
На самом деле, эти сообщения не для дисков, которые я думал, что они были. У меня есть несколько других USB-накопителей, подключенных к этому компьютеру через USB-концентратор. Во всяком случае, мой вопрос в основном, что означает это сообщение на простом английском языке?

ILIV
источник
3
Создание RAID из USB-накопителей не является хорошей идеей. RAID - это надежное подключение всех дисков, а USB - горячее подключение и отключение устройств. Поскольку вы используете RAID-1, это не так уж плохо, но и не очень хорошая идея.
MVP
1
Нет ничего плохого в использовании USB-устройств в конфигурации RAID. Это совершенно обоснованная идея, тем более, если учесть, что это домашний компьютер, а не корпоративный сервер. Вы могли бы поспорить об ограничениях пропускной способности USB, но это не касается меня лично. Этот рейд - ленивый подход к решению для резервного копирования больше всего на свете.
ILIV
1
Вы указали, что ваши диски подключены к USB-портам ноутбука. Скажите, что вы хотите, но это просто бомба замедленного действия, ожидающая взрыва. Также, если ваши устройства имеют USB3, ядро ​​должно использовать xhci_hcd. Если он использует ehci_hcd, это означает, что ваши устройства работают на скоростях USB2.
MVP
1
Почему это «бомба замедленного действия»?
ILIV
2
Я вижу, в следующий раз, пожалуйста, попробуйте найти реальные причины назвать что-то бомбой замедленного действия. Просто для справки, у меня нет ни кошки, ни какого-либо другого питомца, я никогда не тянул кабели, этот ноутбук оставался канцелярским уже пару лет, шансы на то, что порты USB сгорят, примерно равны прямое соединение разрывается, «что-то еще» забавно, может случиться даже с наиболее тщательно настроенным и установленным корпоративным сервером. Итак, перестань быть таким параноиком. Это RAID-1. Наличие двух дисков одновременно, очень маловероятно. Это твердое решение. Период.
ILIV

Ответы:

22

Дай мне попробовать.

Буквально в сообщении говорится, что Linux USB stack выпустил «USB_RESET» для вашего конкретного устройства (устройства № 19 и № 20, какими бы они ни были). Кажется, ошибка появляется один раз в 10-30 секунд. После сброса в журнале должны появиться свежие сообщения о перечислении, поскольку при сбросе через USB подключенное устройство переходит в «состояние по умолчанию». Похоже, многословие вашего журнала очень сокращено.

Сброс USB-устройства во время работы - довольно радикальная ситуация. Контроллер прибегает к этому сбросу «порта», если он сталкивается с «ошибкой транзакции». Ошибка транзакции возникает, когда ссылка не завершает все необходимые этапы транзакции USB или имеет ошибку CRC. При обычном USB-контроллере EHCI автоматически повторяет неудачную транзакцию (обычно максимум 3 раза), а затем устанавливает прерывание XACT_ERROR. Статистически, согласно теории ошибок, если ссылка не отвечает должным образом на три попытки подряд, что-то не так с конкретным сегментом USB, в основном электрически. Таким образом, ошибка транзакции считается фатальной, и программное обеспечение пытается восстановить ссылку. Если дерево-четыре пытается восстановить связь неудачно, хост считает этот порт мертвым и завершает работу.

Однако в Linux кто-то решил, что трех теоретических попыток недостаточно, и программное обеспечение Linux выполняет дополнительно 32 (тридцать две) попытки, что в сумме составляет 96 (!!!). Если аппаратное соединение оказывается электрически маргинальным, 96 попыток могут быть успешными в 99,99% случаев. Гуру программного обеспечения Linux утверждают, что это помогает улучшить работоспособность сомнительных устройств / кабелей. По сути, этот метод скрывает серьезную проблему с этим конкретным USB-соединением, которое не помогает пользователям в долгосрочной перспективе.

Проблема может заключаться в подаче предельного напряжения (VBUS) на накопители, глюках VBUS или ухудшении сигнала на сигнальных проводах. Сначала я бы попробовал очень короткие высококачественные сертифицированные кабели и проверил бы, изменяется ли статистика ошибок.

Ale..chenski
источник
Супер резюме, спасибо! Некоторые дополнительные источники были бы классными.
Кристиан Бенке,
1
Знаете ли вы, можно ли увеличить количество повторных попыток, выполняемых ehci_hcdмодулем? Или это возможно ohci_hcdдля конкретного устройства (например /dev/sda, обрабатывается ehci_hcdи "проблематично" /dev/sdbобрабатывается ohci_hcd)?
dma_k
5

Эта ошибка описана в статье Linux: сброс высокоскоростного USB-устройства с помощью ehci_hcd Ошибка и решение :

Эта ошибка указывает на то, что USB 2.0 может не работать в вашей системе или работать только на скоростях USB 1.1. Чтобы решить эту проблему:

  1. Замена оборудования: в большинстве случаев вам необходимо заменить материнскую плату.
  2. Удалить драйвер ehci_hcd
  3. Отключите интерфейс USB 2.0 накопителя ehci_hcd и используйте его как USB 1.1. Короче отключите ehci_hcd.

Если вы не хотите заменять материнскую плату, удалите драйвер ehci_hcd, отредактируйте файл /etc/modprobe.d/blacklist.conf и добавьте строку:

blacklist ehci_hcd

Наконец, используйте скрипт mkinitrd для создания структуры каталогов, которая может служить корневой файловой системой initrd без ehci_hcd:

# mkinitrd -o /boot/initrd.$(uname -r).img $(uname -r)

Перезагрузитесь как тест.

Статья с похожими инструкциями: Почему ошибка «kernel: usb 1-2.2: сбросить высокоскоростное USB-устройство с помощью ehci_hcd и адреса 6» записана в файле / var / log / messages?

harrymc
источник