Jakie są resetowane urządzenia USB?

20

Mam to zupełnie nowe oprogramowanie RAID-1 zbudowane z dwoma zewnętrznymi dyskami USB WD Elements i widzę, że Linux dość często powtarza następujący komunikat:

...
[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
...

Co to mówi? Czy to normalne? Czy to problem, który powinienem spróbować rozwiązać?

Aktualizacja
Właściwie te wiadomości nie są przeznaczone dla dysków, które tak myślałem. Mam też kilka innych napędów USB podłączonych do tego komputera za pośrednictwem koncentratora USB. Tak czy inaczej, moje pytanie jest w zasadzie co ta wiadomość oznacza zwykłym angielskim?

ILIV
źródło
3
Tworzenie RAID z napędów USB nie wydaje się dobrym pomysłem. RAID polega na niezawodnym posiadaniu wszystkich napędów, a USB polega na podłączaniu i odłączaniu urządzeń na gorąco. Ponieważ używasz RAID-1, nie jest tak źle, ale nie jest to również dobry pomysł.
mvp
1
Nie ma nic złego w korzystaniu z urządzeń USB w konfiguracji RAID. Jest to całkowicie zdrowy pomysł, tym bardziej, gdy ktoś uważa, że ​​jest to komputer domowy, a nie serwer korporacyjny. Można argumentować ograniczenia przepustowości USB, ale nie jest to dla mnie osobiście problemem. Ten nalot to leniwe podejście do tworzenia kopii zapasowych bardziej niż cokolwiek innego.
ILIV
1
Wskazałeś, że dyski są podłączone do portów USB komputera przenośnego. Powiedz, co chcesz, ale to po prostu bomba zegarowa, która czeka na wybuch. Ponadto, jeśli twoje urządzenia są USB3, jądro musi używać xhci_hcd. Jeśli używa ehci_hcd, oznacza to, że twoje urządzenia działają z prędkością USB2.
mvp
1
Dlaczego to „bomba zegarowa”?
ILIV
2
Rozumiem, następnym razem, proszę, wymyśl prawdziwe powody, by nazwać coś bombą zegarową. Dla przypomnienia, nie mam kota ani żadnego innego zwierzaka, nigdy nie wyciągnąłem kabli, ten notebook pozostaje papeterią od kilku lat, szanse na wypalenie portów USB są prawie równe szansie na bezpośrednie połączenie zostaje zerwane, „coś innego” jest zabawne, może się zdarzyć nawet w przypadku najbardziej dokładnie skonfigurowanego i zainstalowanego serwera korporacyjnego. Więc przestań być taki paranoiczny. To jest RAID-1. Posiadanie 2 dysków jednocześnie, jest bardzo mało prawdopodobne. To solidne rozwiązanie. Kropka.
ILIV

Odpowiedzi:

22

Pozwól mi spróbować.

Dosłownie komunikat mówi, że stos USB Linux wydał „USB_RESET” dla twojego konkretnego urządzenia (urządzenia nr 19 i nr 20, cokolwiek to jest). Błąd wydaje się występować raz na 10-30 sekund. Po zresetowaniu dziennik powinien zawierać nowe wyliczenia, ponieważ reset USB wymusi podłączenie urządzenia do „stanu domyślnego”. Wygląda na to, że poziom szczegółowości dziennika jest bardzo ograniczony.

Resetowanie urządzenia USB w trakcie pracy jest dość drastyczną sytuacją. Kontroler wykonuje resetowanie tego „portu”, jeśli napotka „błąd transakcji”. Błąd transakcji występuje, gdy łącze nie ukończy wszystkich wymaganych faz transakcji USB lub wystąpi błąd CRC. W normalnym USB kontroler EHCI automatycznie spróbuje ponownie nieudanej transakcji (typowo maksymalnie 3 razy), a następnie ustawi przerwanie XACT_ERROR. Statystycznie, według teorii błędów, jeśli łącze nie reaguje prawidłowo na trzy próby z rzędu, coś jest nie tak z danym segmentem USB, głównie elektrycznie. Dlatego błąd transakcji jest uważany za krytyczny, a oprogramowanie próbuje odzyskać łącze. Jeśli próba odzyskania łącza przez drzewo cztery nie powiedzie się, host uważa ten port za martwy i kończy działanie.

Jednak w Linuksie ktoś zdecydował, że 3 próby teoretyczne to za mało, a oprogramowanie Linux wykonuje dodatkowe 32 (trzydzieści dwie) próby, co daje w sumie 96 (!!!). Jeśli łącze sprzętowe jest elektrycznie marginalne, 96 prób może zakończyć się powodzeniem w 99,99% przypadków. Guru oprogramowania dla systemu Linux twierdzą, że pomaga to poprawić funkcjonalność wątpliwych urządzeń / kabli. Zasadniczo ta technika ukrywa poważny problem z tym konkretnym połączeniem USB, co nie pomaga użytkownikom na dłuższą metę.

Problemem może być zasilanie napięciem krańcowym (VBUS) do napędów, usterki VBUS lub pogorszenie sygnału na przewodach sygnałowych. Najpierw spróbowałbym przetestować wyjątkowo krótkie, certyfikowane kable wysokiej jakości i sprawdzić, czy statystyki błędów się zmieniają.

Ale..chenski
źródło
Super podsumowanie, dziękuję! Niektóre dodatkowe źródła byłyby fajne.
Christian Benke
1
Czy wiesz, czy można zwiększyć liczbę ponownych prób wykonanych przez ehci_hcdmoduł? Czy jest to możliwe, aby zmusić ohci_hcddo konkretnego urządzenia (np /dev/sdazajmuje się ehci_hcdi „problematyczne” /dev/sdbjest obsługiwane przez ohci_hcd)?
dma_k
5

Ten błąd jest opisany w artykule Linux: Zresetuj szybkie urządzenie USB za pomocą ehci_hcd Błąd i rozwiązanie :

Ten błąd wskazuje, że USB 2.0 może nie działać w twoim systemie lub może działać tylko przy prędkościach USB 1.1. Aby rozwiązać ten problem:

  1. Wymień sprzęt: w większości przypadków konieczna jest wymiana płyty głównej.
  2. Usuń sterownik ehci_hcd
  3. Wyłącz interfejs USB 2.0 napędu ehci_hcd i użyj go jako USB 1.1. W skrócie wyłącz ehci_hcd.

Jeśli nie chcesz wymieniać płyty głównej, aby usunąć sterownik ehci_hcd, edytuj plik /etc/modprobe.d/blacklist.conf i dodaj wiersz:

blacklist ehci_hcd

Na koniec użyj skryptu mkinitrd, aby zbudować strukturę katalogów, która może służyć jako główny system plików initrd bez ehci_hcd:

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

Uruchom ponownie jako test.

Artykuł z podobnymi instrukcjami brzmi: Dlaczego błąd „jądro: usb 1-2.2: resetuje szybkie urządzenie USB za pomocą ehci_hcd i adresu 6” zapisany w pliku / var / log / messages?

harrymc
źródło