USB 3 없음 Arch Linux 3.15.1

USB 3 없음 Arch Linux 3.15.1

마지막 재부팅 전까지 USB 3 포트를 사용할 수 있었습니다. 얼마 전에 시스템을 설치했기 때문에 그때까지는 드라이버를 구성하고 설치했지만 실제로는 그 세션에서 작업을 했습니다. xf86-input-synaptics 드라이버를 설치했지만 방금 그것을 제거하고 다시 부팅하여 그것이 엉망인지 확인했습니다. 다시 돌아 오지 않았기 때문에 그렇지 않았습니다. 이제 나는 막혔습니다. 많은 포럼에서 사람들이 문제를 겪고 있는 것을 보았지만 포트는 일반적으로 lsusb, dmesg 또는 lspci에 표시됩니다.

lsusb:

Bus 002 Device 005: ID 047b:0011 Silitek Corp. SK-1688U Keyboard
Bus 002 Device 004: ID 045e:0040 Microsoft Corp. Wheel Mouse Optical
Bus 002 Device 003: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 0bda:0139 Realtek Semiconductor Corp. RTS5139 Card Reader Controller
Bus 001 Device 003: ID 13d3:5134 IMC Networks 
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lspci | grep -i USB

00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)

dmesg | grep -i USB

[    1.278138] ACPI: bus type USB registered
[    1.278159] usbcore: registered new interface driver usbfs
[    1.278167] usbcore: registered new interface driver hub
[    1.278268] usbcore: registered new device driver usb
[    1.278630] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.278904] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
[    1.291224] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[    1.291408] hub 1-0:1.0: USB hub found
[    1.291716] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 2
[    1.304530] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    1.304982] hub 2-0:1.0: USB hub found
[    1.597732] usb 1-1: new high-speed USB device number 2 using ehci-pci
[    1.721971] hub 1-1:1.0: USB hub found
[    1.830738] usb 2-1: new high-speed USB device number 2 using ehci-pci
[    1.955115] hub 2-1:1.0: USB hub found
[    2.037276] usb 1-1.2: new high-speed USB device number 3 using ehci-pci
[    2.240377] usb 1-1.4: new high-speed USB device number 4 using ehci-pci
[    2.390210] usb 2-1.2: new high-speed USB device number 3 using ehci-pci
[    2.476044] hub 2-1.2:1.0: USB hub found
[    2.743395] usb 2-1.2.3: new low-speed USB device number 4 using ehci-pci
[    2.899768] usb 2-1.2.4: new low-speed USB device number 5 using ehci-pci
[    6.531535] scsi6 : SCSI emulation for RTS5139 USB card reader
[    6.531790] usbcore: registered new interface driver rts5139
[    6.632207] uvcvideo: Found UVC 1.00 device USB2.0 UVC 1M WebCam (13d3:5134)
[    6.636268] input: USB2.0 UVC 1M WebCam as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input15
[    6.636452] usbcore: registered new interface driver uvcvideo
[    6.636456] USB Video Class driver (1.1.1)
[    7.114946] usbcore: registered new interface driver usbhid
[    7.114954] usbhid: USB HID core driver
[    7.125179] input: Microsoft Microsoft 3-Button Mouse with IntelliEye(TM) as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2.3/2-1.2.3:1.0/0003:045E:0040.0001/input/input18
[    7.125756    ] hid-generic 0003:045E:0040.0001: input,hidraw0: USB HID v1.10 Mouse [Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)] on usb-0000:00:1d.0-1.2.3/input0
[    7.126179] input: Silitek Standard USB Keyboard  as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2.4/2-1.2.4:1.0/0003:047B:0011.0002/input/input19
[    7.126612] hid-generic 0003:047B:0011.0002: input,hidraw1: USB HID v1.00 Keyboard [Silitek Standard USB Keyboard ] on usb-0000:00:1d.0-1.2.4/input0

lshw -단거리 버스

H/W path           Device  Class          Description
=====================================================
/0                         bus            G74Sx
/0/100/1a                  bus            6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2
/0/100/1a/1        usb1    bus            EHCI Host Controller
/0/100/1a/1/1              bus            Integrated Rate Matching Hub
/0/100/1d                  bus            6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1
/0/100/1d/1        usb2    bus            EHCI Host Controller
/0/100/1d/1/1              bus            Integrated Rate Matching Hub
/0/100/1d/1/1/2            bus            USB2.0 Hub
/0/100/1f.3                bus            6 Series/C200 Series Chipset Family SMBus Controller

지금까지 나는 장치가 고장 났다고만 들었습니다. 왜냐하면 장치가 이들 중 어느 것에도 표시되지 않기 때문입니다. 이제 작동하는 것을 확인했으므로 작동하지 않으며 단지 구성 문제일 뿐이라는 것을 알고 있습니다.

작동 중일 때 lsusb의 출력에는 fesco 드라이버가 포함되어 있었습니다. grep을 사용할 때 fesco가 전혀 표시되지 않습니다.

컴퓨터는 Asus G74sx 노트북입니다.

모든 정보에 감사드립니다. 감사합니다.

편집:
좋습니다. 이것이 얼마나 도움이 되는지 모르겠지만 작동하는 usb3 포트가 있는 다른 컴퓨터(Linux를 실행)가 있습니다. 나는 xhci_hcd와 ehci_hcd(만일의 경우)에서 둘 사이의 차이점을 확인하기 시작했고 /sys/bus/pci/drivers/에서 작업 시스템에 "xhci_hcd" 폴더가 있는 반면, 작동하지 않는 시스템에는 없다는 것을 발견했습니다. 처음에 나는 속으로 "어, 한 시스템에서 다른 시스템으로 복사할 수 있을지도 모르겠다. 루트로서도 그 파일을 복사할 수 없다. 시스템의 다른 곳에서 문제가 발생하고 있는 것이 분명하다. 돈"이라고 생각했다. 이것이 도움이 되는지, 난독화하는지 알 수 없지만 세부 사항입니다.

편집 2: 오류 메시지
문제는 시스템을 일시 중지 모드로 전환하는 것과 관련된 것 같습니다. 변경 사항을 빠르게 지울 수 있도록 라이브 디스크에서 부팅하고 있습니다. 컴퓨터를 일시 중지 모드로 전환하면 일반적으로 문제 없이 작동이 중단됩니다. 다시 작동하면 USB 3이 제대로 작동합니다. 때로는 갑자기 오류가 발생하는 경우도 있습니다. 오류가 발생하면 컴퓨터의 플러그를 뽑고 라이브 디스크를 재설정하여 포트를 다시 가져와야 합니다.

메시지는 아주 오래 지속되지는 않습니다. 단 몇 밀리초에 불과하지만 카메라에 담겨 있습니다.

오류 메시지:

xhci_hcd 0000:04:00.0: PCI post-resume error -110!
xhci_hcd 0000:04:00.0: HC died; cleaning up
xhci_hcd 0000:04:00.0: HC died; cleaning up
dpm_run_callback(): pci_pm_resume+0x0/0xb0 returns -110
PM: Device 0000:04:00.0 failed to resume async: error -110
dpm_run_callback(): usb_dev_resume+0x0/0x20 [usbcore] returns -5
PM: Device 4-1.4 failed to resume async: error -5

편집 3: 가능한 대답은 무엇입니까? (테스트 필요) 읽기이것, usb3을 수동으로 바인딩 해제한 다음 호출하면 절전 systemctl suspend모드를 해제하고 usb3 장치를 수동으로 바인딩하면 작동한다는 것을 알았습니다. 저는 이것을 150번 실행했습니다. 일반적으로 2번에서 10번 사이에 실패할 것이라고 생각한다면 이는 평균에서 충분한 표준 편차이므로 작동한다고 가정하겠습니다. 바인딩 및 바인딩 해제를 "/etc/pm/sleep.d/20_custom-xhci_hcd"에 넣었습니다. 그런 다음 실행 가능한지 확인했습니다.

#!/bin/sh
#File: "/etc/pm/sleep.d/20_custom-xhci_hcd"

case "${1}" in
    hibernate|sleep)
        #unbind
        echo "Unbinding xhci device"
        echo -n "0000:04:00.0" > /sys/bus/pci/drivers/xhci_hcd/unbind
    ;;
    resume|thaw)
        # bind
        echo "Binding xhci device"
        ehco -n "0000:04:00.0" > /sys/bus/pci/drivers/xhci_hcd/bind
    ;;
esac

에코 출력을 본 적이 없기 때문에 이 파일이 호출되지 않을 것 같습니다. 그리고 생각해 보면 이 머신에는 pm-utils가 없고 대신 systemd를 사용하기 때문에 의미가 있습니다. 그래서 /usr/lib/systemd/system-sleep/으로 옮겼습니다.이 장소다음과 같이 조정했습니다.

#!/bin/sh
#File: "/usr/lib/systemd/system-sleep/xhci_hcd.sleep"

case $1/$2 in
    pre/*)
        #unbind
        echo "Unbinding xhci device"
        echo -n "0000:04:00.0" > /sys/bus/pci/drivers/xhci_hcd/unbind
    ;;
    post/*)
        # bind
        echo "Binding xhci device"
        ehco -n "0000:04:00.0" > /sys/bus/pci/drivers/xhci_hcd/bind
    ;;
esac

같은 사이트에 명시된대로. 그런 다음 실행 파일로 설정하십시오. 테스트해 볼 예정인데 사랑을 느끼고 있는 것 같아요. 작동하면 답변 부분에 게시하겠습니다.

답변1

장치 찾기
먼저 장치 번호가 무엇인지 알아내야 합니다. 포트가 활성화되어 있고 명령으로 볼 수 lsusb있으면 ls /sys/bus/pci/drivers/xhci_hcd. 장치는 xxxx:xx:xx.x 형식의 숫자이며 명령에서 반환된 첫 번째 항목일 가능성이 높습니다 ls.

포트 재설정
포트가 보이지 않으면 포트가 작동하지 않는다는 의미이지만 기기의 모든 전원을 제거하면 재설정될 수 있습니다. 컴퓨터를 종료하고 모든 배터리와 전원 코드를 제거한 후 10초 동안 기다립니다. 그런 다음 코드를 다시 연결하고 시스템을 부팅하십시오. 그런 다음 장치 번호를 다시 찾으십시오.

제 기기번호는 0000:04:00.0 인데 다를 수도 있습니다. 내가 본 예는 다른 곳에서 0000:00:14.0입니다. 번호를 기억하거나 적어 두십시오. 바인딩 및 바인딩 해제에 필요합니다. USB 3 포트가 여러 개인 경우 둘 이상이 있을 수 있습니다.

전원 관리 프레임워크 결정
을 위한적절한/적성/dpkg(ubuntu/debian/mint):
dpkg --get-selections | grep pm-utils
무언가가 반환되면 pm이 있습니다.

을 위한팩맨 패키지 관리자(아치)
pacman -Qe | grep pm-utils
무언가가 반환되면 오후가 있습니다.

을 위한rpm 패키지 관리자(fedora, centos 등...):
rpm -qa | grep pm-utils
무언가가 반환되면 오후가 됩니다.

을 위한다른 사람, 시도해 볼 수 있습니다. 모두 어떻게 작동하는지 모르겠고 테스트할 시스템도 없습니다.

메모:설치된 패키지가 당신이 그것을 사용하고 있다는 것을 의미하지는 않지만 당신이 사용할 가능성이 높기 때문입니다. 당신이 할 수 있는 또 다른 일은 간단 cd /etc/pm/하고, 존재한다면 거기에 스크립트를 넣을 수 있다는 것입니다. 기술적으로 두 위치 모두에서 바인딩 해제 스크립트를 사용하는 데 아무런 문제가 없다고 생각합니다. 누군가 이것이 사실인지 아닌지에 대한 의견을 남기고 싶거나 pm이 사용되었는지 확인하는 더 좋은 방법이 있다면 그것은 환상적일 것입니다.

systemd 일시 중지 스크립트(pm 유틸리티 없음)
pm 없이 systemd 또는 systemctl을 사용하는 경우 스크립트를 /usr/lib/systemd/system-sleep/xhci_hcd.sleep. 내 컴퓨터의 경우 스크립트는 다음과 같습니다.

#!/bin/sh
#File: /usr/lib/systemd/system-sleep/xhci_hcd.sleep

case $1/$2 in
        pre/*)
                # Unbind
                echo "Unbinding xhci Device"
                echo -n "0000:04:00.0" > /sys/bus/pci/drivers/xhci_hcd/unbind
        ;;
        post/*)
                # bind xhci_dev
                echo "Rebinding xhci Device"
                echo -n "0000:04:00.0" > /sys/bus/pci/drivers/xhci_hcd/bind
        ;;
esac

두 경우 모두 0000:04:00.0을 장치 번호로 바꾸십시오. 장치 번호가 여러 개인 경우 각각에 대해 바인딩 및 바인딩 해제를 실행하세요. 즉, 포트 xxxx:xx:xx.x 및 yyyy:yy:yy.y가 있는 경우 echo -n "xxxx:xx:xx.x" > /sys/bus/pci/drivers/xhci_hcd/unbindecho -n "yyyy:yy:yy.y" > /sys/bus/pci/drivers/xhci_hcd/unbind두 장치를 바인딩 해제하고 echo -n "xxxx:xx:xx.x" > /sys/bus/pci/drivers/xhci_hcd/bind장치 echo -n "yyyy:yy:yy.y" > /sys/bus/pci/drivers/xhci_hcd/bind를 바인딩해야 합니다. . journalctl -b -u systemd-suspend​추가 정보전원 관리systemd/systemctl을 사용합니다. 해당 파일을 저장한 다음 실행 sudo chmod a+x /usr/lib/systemd/system-sleep/xhci_hcd.sleep하여 실행 가능하게 만듭니다. 개인적으로 새 파일이 적용되도록 시스템을 재부팅하겠지만 즉시 적용될 수도 있다고 생각합니다. 그렇지 않고 시스템을 절전 모드(또는 일시 중지/최대 절전 모드)로 설정한 경우 위의 포트를 재설정하는 방법을 살펴보세요.

pm 일시 중지 스크립트(pm 유틸리티가 설치됨)
pm 유틸리티를 사용하는 경우 스크립트를 다음 위치에 넣어야 합니다./etc/pm/sleep.d/20_custom-xhci_hcd

#!/bin/sh
#File: "/etc/pm/sleep.d/20_custom-xhci_hcd"

case "${1}" in
    hibernate|sleep)
        #unbind
        echo "Unbinding xhci device"
        echo -n "0000:04:00.0" > /sys/bus/pci/drivers/xhci_hcd/unbind
    ;;
    resume|thaw)
        # bind
        echo "Binding xhci device"
        ehco -n "0000:04:00.0" > /sys/bus/pci/drivers/xhci_hcd/bind
    ;;
esac

두 경우 모두 0000:04:00.0을 장치 번호로 바꾸십시오. 장치 번호가 여러 개인 경우 각 장치에 대해 바인딩 및 바인딩 해제를 실행하십시오. 시스템 일시 중지 스크립트에 대한 스크립트 아래 지침을 참조하십시오. 대신 chmod a+x /etc/pm/sleep.d/20_custom-xhci_hcd파일을 실행 가능하게 만드는 데 사용하십시오. 그런 다음 재부팅하고 테스트하십시오.

더 유용한 리소스:

관련 정보