마지막 재부팅 전까지 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: 가능한 대답은 무엇입니까? (테스트 필요) 읽기이것systemctl suspend
, 수동으로 usb3 바인딩을 해제한 다음 을 호출하면 절전 모드를 해제하고 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
무언가가 반송되면 오후를 보낼 수 있습니다.
~을 위한팩맨 패키지 관리자(아치)
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/unbind
하여 바인딩을 해제하고 장치를 사용 하고 바인딩해야 합니다. 를 사용하여 로그를 볼 때 바인딩 및 바인딩 해제가 언제 발생하는지 확인할 수 있도록 첫 번째 echo 명령을 배치했습니다 . 추가 정보:echo -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 utils 설치됨)
pm utils를 사용하는 경우 스크립트를 다음 위치에 넣어야 합니다./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을 장치 번호로 바꾸세요. 장치 번호가 여러 개인 경우 각 장치에 대해 바인딩 및 바인딩 해제를 실행하세요. systemd 일시 중지 스크립트에 대한 지침은 아래 지침을 참조하세요. 대신 chmod a+x /etc/pm/sleep.d/20_custom-xhci_hcd
파일을 실행 가능하게 만드는 데 사용하세요. 그런 다음 재부팅하고 테스트하십시오.
더 유용한 리소스: