Що таке скидання 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-концентратор. У будь-якому разі, моє запитання полягає в принципі, що це повідомлення означає простою англійською мовою?


3
Створення RAID з USB-накопичувачів не здається гарною ідеєю. RAID - це надійне встановлення всіх ваших накопичувачів, а USB - це гаряче підключення та відключення пристроїв. Оскільки ви використовуєте RAID-1, це не так вже й погано, але це теж не дуже гарна ідея.
mvp

1
Немає нічого поганого у використанні USB-пристроїв у конфігурації RAID. Це ідеально обгрунтована ідея, тим більше, якщо врахувати, що це домашній комп'ютер, а не корпоративний сервер. Ви можете стверджувати обмеження пропускної здатності USB, але це особисто не стосується мене. Цей рейд - це лінивий підхід до резервного рішення більше, ніж будь-що інше.
ILIV

1
Ви вказали, що ваші накопичувачі підключені до USB-портів ноутбука. Скажіть, що ви хочете, але це просто бомба часу, яка чекає, щоб вийти. Крім того, якщо ваші пристрої USB3, ядро ​​повинно використовувати xhci_hcd. Якщо він використовує ehci_hcd, це означає, що ваші пристрої працюють із швидкістю USB2.
mvp

1
Чому це "бомба часу"?
ІЛІВ

2
Я бачу, наступного разу, будь ласка, спробуйте придумати справжні причини, щоб назвати щось бомбою. Для запису у мене немає кота чи будь-якого іншого домашнього улюбленця, я ніколи не тягнув кабелі, цей ноутбук залишається канцелярським приладдям вже пару років, шанси вигоряти порти USB приблизно рівні шансу мати Прямий розрив зв’язку, "щось інше" смішно, може статися навіть із найбільш ретельно налаштованим та встановленим корпоративним сервером. Отже, перестань бути таким параноїком. Це RAID-1. Маючи 2 диски, які виходять одночасно, дуже малоймовірно. Це тверде рішення. Період.
ІЛІВ

Відповіді:


22

Дозвольте мені спробувати.

Буквально в повідомленні йдеться про те, що USB-стек Linux видав "USB_RESET" на ваш конкретний пристрій (пристрої №19 та №20, якими б вони не були). Здається, помилка трапляється один раз на 10-30 секунд. Після скидання журнал повинен мати нові повідомлення про перерахування, оскільки скидання USB змусить підключений пристрій перейти в "стан за замовчуванням". Схоже, багатослівність вашого журналу дуже знижена.

Скидання USB-пристрою в середині роботи - досить драматична ситуація. Контролер вдається до скидання цього "порту", якщо він зіткнеться з "помилкою транзакції". Помилка транзакції виникає, коли посилання не завершує всі необхідні фази транзакції через USB або має помилку CRC. У звичайному USB-контролері EHCI автоматично повторно спробує провалити транзакцію (як правило, максимум 3 рази), а потім встановить переривання XACT_ERROR. Статистично, за теорією помилок, якщо посилання не реагує належним чином на три спроби поспіль, у конкретному сегменті USB щось не так, здебільшого електрично. Тож помилка транзакції вважається фатальною, і програмне забезпечення намагається відновити посилання. Якщо спроби відновити зв'язок із чотирьох дерев не вдалося, хост вважає цей порт мертвим і закриває.

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

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


Супер резюме, дякую! Деякі додаткові джерела були б крутими.
Крістіан Бенке

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?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.