Zaktualizowałem mój HTPC z jądra 3.7.10 do 3.10.7 i wydaje się, że CONFIG_USB_SUSPEND nie ma już opcji jądra i jest uwzględniony w PM.
Głównym problemem, z którym się zmagam, jest to, że mam zewnętrzny dysk twardy, a podczas zawieszania i budzenia HTPC nie jest on dostępny dla systemu. Dysk twardy się budzi (słychać, że ponownie się obraca), ale podczas próby uzyskania dostępu do punktu montowania pojawia się następujący błąd:
ZOTAC ~ # ls /media
ls: reading directory /media: Input/output error
I na dmesg:
[ 253.278260] EXT4-fs warning (device sdb1): __ext4_read_dirblock:908: error reading directory block (ino 2, block 0)
W poprzednich jądrach ustawienie CONFIG_USB_SUSPEND = N rozwiązałoby problem, ponieważ dysk twardy sam poradziłby sobie z hibernacją, a punkt podłączenia był zawsze dostępny. Gdy dysk twardy był w trybie uśpienia, a HTPC potrzebował czegoś od punktu montażu dysku twardego, sam dysk twardy budził się i działał bez problemów.
W tej chwili wypróbowałem następujące bez powodzenia:
- Ręcznie zmień / sys / bus / usb / devices / usb * / power / control na „on” zamiast „auto” .
- Ręcznie zmień / sys / bus / usb / devices / usb * / power / autosuspend na „-1” zamiast „0” .
Ale przy ponownym budzeniu HTPC punkt montowania jest ponownie niedostępny. Jako obejście problemu mogę odmontować i ponownie zamontować punkt montowania i działa on ponownie bez problemów, ale jestem pewien, że powinien istnieć sposób, aby system operacyjny nie obsługiwał automatycznego zawieszenia USB.
Masz pomysł, jak wyłączyć automatyczne zawieszanie USB w jądrze 3.7.10 lub nowszym?
źródło
/sys/bus/usb/devices/<BUS>-<DEVPATH>/power/persist
ci daje1
? Niegrep CONFIG_PM_RUNTIME /boot/config-$(uname -r)
daćy
? power-management.txtpower/persist
daje1
i nie mam żadnego pliku konfiguracyjnego/boot
.CONFIG_PM_RUNTIME=y
jest skonfigurowany w.config
pliku jądra .Odpowiedzi:
Dla Ubuntu i Debiana ,
usbcore
jest skompilowany w jądrze, więc tworzyć wpisy na/etc/modprobe.d
woli NOT pracy: musimy zmienić parametry startowe jądra.Edytuj
/etc/default/grub
plik i zmieńGRUB_CMDLINE_LINUX_DEFAULT
wiersz, aby dodaćusbcore.autosuspend=-1
opcję:Zauważ, że
quit splash
były już obecne opcje. Zachowaj więc inne opcje, które masz.Po zapisaniu pliku zaktualizuj grub:
I uruchom ponownie .
Teraz sprawdź
autosuspend
wartość:I powinno się wyświetlić
-1
.W dokumentacji jądra podano, że pewnego dnia w przyszłości ten parametr zmieni się na
autosuspend_delay_ms
(zamiastautosuspend
).źródło
autosuspend_delay_ms
.Zgodnie z dokumentacją drzewa jądra , czas opóźnienia bezczynności autosuspend jest kontrolowany przez
autosuspend
parametr modułu wusbcore
. Ustawienie początkowego domyślnego opóźnienia bezczynności na -1 zapobiegnie automatycznemu zawieszeniu się dowolnego urządzenia USB. Nadal powinno być możliwe włączenie automatycznego zawieszania dla wybranych urządzeń.usbcore.autosuspend
Parametr jądro może być ustawiona, gdy moduł jest załadowany ręcznie:lub dodając następujący wiersz do pliku konfiguracyjnego w
/etc/modprobe.d
:Jeśli
usbcore
jest wkompilowany w jądro, parametr można dostosować, dodając następujące polecenie do wiersza poleceń jądra:Na koniec opcję można dostosować w czasie wykonywania, wykonując:
Zmiana wpłynie na wszystkie nowe urządzenia USB. Nie wpłynie to na istniejące urządzenia.
źródło
usbcore
skompilowany do jądra, ale przy użyciumodprobe.d
opcji nie wydaje się do pracy. Mimo,modprobe -c usbcore | grep autosuspend
że wyświetla to jako-1
,cat /sys/module/usbcore/parameters/autosuspend
dostaję2
autosuspend
jest przestarzałe. Nowy plikautosuspend_delay_ms
zajmuje ms zamiast sekund. ref . Alepower/control
ustawiony naon
powinien mieć ten sam efekt.autosuspend=-1
zarówno parametru, jakmodprobe.d
ikernel
parametru, ale dysk twardy nadal zawiesza się i ładnie się nie budzi.autosuspend_delay_ms
do-1
? (W/sys/bus/usb/devices/<device>/power/autosuspend_delay_ms
)autosuspend_delay_ms
nie ma go. Aleautosuspend
JEST.Mam podobny problem z Microsoft Wheel Mouse Optical USB i zgodny z PS / 2 od czasu uaktualnienia systemu Linux Mint Debian Edition do jądra
3.10-2-amd64
. Podejrzewano niewłaściwe automatyczne zawieszanie przez zarządzanie energią USB jądra . W Debianie jest to kompilowane jakousbcore
moduł do jądra.Możesz to zmienić na stałe, wydając w wierszu polecenia:
autosuspend=0
Jednak niektóre jądra mogą wymagać .Jeśli twój system używa
initrd
(najprawdopodobniej tak), odbudujinitrd
jądro.Na przykład:
Uruchom ponownie i sprawdź za pomocą:
które powinny ustąpić
-1
teraz.źródło
initrd
a opisane tutaj działania nie działają w tym przypadku, ponieważ wcześniej otrzymaliśmy odpowiedzi.