커널 3.7.10 이상에서 USB 자동 일시 중단을 비활성화하는 방법은 무엇입니까?


37

HTPC를 커널 3.7.10 에서 3.10.7로 업데이트했는데 CONFIG_USB_SUSPEND 가 커널 옵션에서 사라져 PM에 포함 된 것 같습니다 .

내가 직면하고있는 주요 문제는 외부 HDD가 있고 HTPC를 일시 중지하고 깨울 때 시스템에서 사용할 수 없다는 것입니다. HDD가 깨어납니다 (다시 회전하는 소리가 들립니다). 그러나 마운트 지점에 액세스하려고하면 다음 오류가 발생합니다.

ZOTAC ~ # ls /media
ls: reading directory /media: Input/output error

그리고 dmesg에서 :

[  253.278260] EXT4-fs warning (device sdb1): __ext4_read_dirblock:908: error reading   directory block (ino 2, block 0)

이전 커널에서는 CONFIG_USB_SUSPEND = N을 설정하면 HDD가 최대 절전 모드를 자체적으로 처리하고 마운트 지점에 항상 액세스 할 수 있으므로 문제가 해결됩니다. HDD가 휴면 상태이고 HTPC가 HDD의 마운트 지점에서 무언가를 필요로했을 때 HDD 자체가 문제없이 깨어나고 작동 할 것입니다.

지금은 성공하지 않고 다음을 시도했습니다.

  1. / sys / bus / usb / devices / usb * / power / control"auto" 대신 "on"으로 수동 변경하십시오 .
  2. / sys / bus / usb / devices / usb * / power / autosuspend"0" 대신 "-1"로 수동 변경하십시오 .

그러나 HTPC를 다시 깨우면 마운트 지점에 다시 액세스 할 수 없습니다. 해결 방법으로 마운트 포인트를 마운트 해제했다가 다시 마운트 할 수 있으며 문제없이 다시 작동하지만 OS가 USB 자동 일시 중지를 처리하지 않도록해야합니다.

커널 3.7.10 이상에서 usb autosuspend를 비활성화하는 방법에 대한 아이디어가 있습니까?


꼬리 /sys/bus/usb/devices/<BUS>-<DEVPATH>/power/persist는 당신에게 제공 합니까 1? 당신을 grep CONFIG_PM_RUNTIME /boot/config-$(uname -r)제공 합니까 y? power-management.txt
Runium

1
power/persist제공 1하고에 구성 파일이 없습니다 /boot. CONFIG_PM_RUNTIME=y커널 .config파일에 설정되어 있습니다.
Peter

답변:


32

를 들어 우분투데비안 , usbcore커널 컴파일되어 있으므로에 항목을 만들 /etc/modprobe.d것입니다 NOT 작업 : 우리는 커널 부트 매개 변수를 변경해야합니다.

/etc/default/grub파일을 편집하고 GRUB_CMDLINE_LINUX_DEFAULT행을 변경 하여 usbcore.autosuspend=-1옵션 을 추가하십시오 .

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1"

참고 quit splash이미 선택했다. 따라서 다른 옵션도 유지하십시오.

파일을 저장 한 후 grub을 업데이트하십시오 :

sudo update-grub

그리고 재부팅하십시오 .

이제 autosuspend값을 확인하십시오 .

cat /sys/module/usbcore/parameters/autosuspend

그리고가 표시되어야합니다 -1.

커널 문서에는 언젠가이 매개 변수가로 autosuspend_delay_ms대신 변경 될 것이라고 명시되어 있습니다 autosuspend.


1
데비안에서도 마찬가지입니다.
Benjamin Trent

2
라엘, 정말 고마워 최신 버전의 Kali도 마찬가지입니다. 위의 내용을 추가했는데 USB IRToy (v2)가 제대로 작동합니다.
15:22에 Joat

1
mPCIE 슬롯 중 하나에 USB 카드가 있으며 진실을 원하지 않았습니다. 데비안 제시 실행. 이것은 큰 두통을 해결하는 내 문제를 해결했습니다. 감사합니다!
xebo

우분투 15.10에서 이것을 시도했지만 값이 적용되지 않습니다 (값은 2입니다). 내가 시도 할 수있는 다른 것이 있습니까?
Jonas Adler

아직 14.04에 있습니다. 그러나 최신 커널 버전에서 afaik은 변경할 매개 변수입니다 autosuspend_delay_ms.
Rael Gugelmin Cunha

19

커널 트리 문서 에 따르면 자동 일시 중단 유휴 지연 시간은의 autosuspend모듈 매개 변수에 의해 제어됩니다 usbcore. 초기 기본 유휴 지연을 -1로 설정하면 USB 장치의 자동 일시 중단이 방지됩니다. 선택한 장치에 대해 자동 일시 중단을 계속 활성화 할 수 있어야합니다.

usbcore.autosuspend모듈을 수동으로로드 될 때 커널 매개 변수를 설정할 수 있습니다 :

$ modprobe usbcore autosuspend=-1

또는 다음의 구성 파일에 다음 줄을 추가하여 /etc/modprobe.d:

options usbcore autosuspend=-1

usbcore커널로 컴파일 된 경우 커널 명령 행에 다음을 추가하여 매개 변수를 조정할 수 있습니다.

usbcore.autosuspend=-1

마지막으로 런타임시 다음을 수행하여 옵션을 조정할 수 있습니다.

echo -1 >/sys/module/usbcore/parameters/autosuspend

변경 사항은 모든 새 USB 장치에 영향을 미칩니다. 기존 장치는 영향을받지 않습니다.


2
나는 한 usbcore커널 컴파일하지만, 사용하는 modprobe.d옵션은 작동하지 않습니다. 로 modprobe -c usbcore | grep autosuspend표시 에도 불구 -1하고 cat /sys/module/usbcore/parameters/autosuspend내가 얻는 일2
Peter

1
@Peter : autosuspend사용되지 않습니다. 새 파일은 autosuspend_delay_ms몇 초가 아닌 ms가 걸립니다. 심판 . 그러나로 power/control설정하면 on같은 효과 를 가져야합니다.
Runium

@ Sukminder, 자동 일시 중단을 영원히 비활성화하려면 어떻게 구성해야합니까? 매개 변수 와 매개 변수 autosuspend=-1를 모두 사용해 보았지만 HDD는 여전히 일시 중단되고 깨어나지 않습니다. modprobe.dkernel
Peter

1
@ 피터 : 내가 알면 :). 나는 단지 어떤 문서를 인용하고 있습니다. 말한다. 당신의 pt. 귀하의 게시물에있는 1 은 내가 알 수있는 한 그것을 했어야하지만, 왜 그렇게하지 않는지 전혀 모릅니다. 당신은 세트 시도 autosuspend_delay_ms-1? (에서 /sys/bus/usb/devices/<device>/power/autosuspend_delay_ms)
Runium

1
나는 커널 4.4에 있고 autosuspend_delay_ms거기에 없다. 그러나 autosuspendIS.
Mariano Dupont

2

Linux Mint Debian Edition 시스템을 커널로 업그레이드 한 후 Microsoft Wheel Mouse Optical USB 및 PS / 2 Compatible과 비슷한 문제가 있습니다. 커널의 USB 전원 관리 에 의한 부적절한 자동 일시 중지 가 의심되었습니다. 데비안에서는 커널에 모듈로 컴파일됩니다 .3.10-2-amd64usbcore

명령 행에서 발행하여이를 영구적으로 변경할 수 있습니다.

sudo echo "options usbcore autosuspend=-1" | sudo tee /etc/modprobe.d/disable-usb-autosuspend.conf > /dev/null

그러나 일부 커널에는이 필요할 수 있습니다 autosuspend=0.

시스템이 initrd(대부분의 경우) 사용하는 경우 initrd커널을 위해 다시 빌드하십시오 .

예를 들면 다음과 같습니다.

uname -r
sudo dpkg-reconfigure linux-image-3.10-2-amd64

재부팅하고 다음을 확인하십시오.

cat /sys/module/usbcore/parameters/autosuspend

-1지금 당장 산출해야합니다 .


나는 사용하지 않으며 initrd여기에 설명 된 조치는 이전에 답변을 받았기 때문에 작동하지 않습니다.
피터
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.