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?
Odpowiedzi:
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ą.
źródło
ehci_hcd
moduł? Czy jest to możliwe, aby zmusićohci_hcd
do konkretnego urządzenia (np/dev/sda
zajmuje sięehci_hcd
i „problematyczne”/dev/sdb
jest obsługiwane przezohci_hcd
)?Ten błąd jest opisany w artykule Linux: Zresetuj szybkie urządzenie USB za pomocą ehci_hcd Błąd i rozwiązanie :
Jeśli nie chcesz wymieniać płyty głównej, aby usunąć sterownik ehci_hcd, edytuj plik
/etc/modprobe.d/blacklist.conf
i dodaj wiersz: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:
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?
źródło