메인보드가 있는데,기가바이트 Z170-D3H, 신선한루트 다이어그램Linux 설치(자체 컴파일된 커널4.9.6-젠투-r1) 및 연결된 USB 장치 2개(플래시 드라이브 및 마우스). 그런데 USB 포트가작동 안함.
이렇게 입력하면 lsblk
시스템 디스크만 남게 됩니다 sda
.
lspci | grep USB
반품:
00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)
lsusb
반품:
libusb: debug [libusb_init] created default context
libusb: debug [libusb_init] libusb v1.0.19.10903
libusb: error [op_init] could not find usbfs
unable to initialize libusb: -99
dmesg | grep 'USB\|usb'
반품:
[ 0.293570] ACPI: bus type USB registered
[ 0.293665] usbcore: registered new interface driver usbfs
[ 0.293756] usbcore: registered new interface driver hub
[ 0.293850] usbcore: registered new device driver usb
[ 0.987392] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.987449] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.987487] uhci_hcd: USB Universal Host Controller Interface driver
[ 0.987548] usbcore: registered new interface driver usblp
[ 0.987592] usbcore: registered new interface driver usb-storage
[ 0.992362] usbcore: registered new interface driver usbhid
[ 0.992376] usbhid: USB HID core driver
이것은 전체 dmesg 로그입니다:dmesg_log.txt
usb-devices
아무것도 반환하지 않습니다.
grep XHCI /usr/src/linux-$(uname -r)/.config
반품:
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PCI=y
CONFIG_USB_XHCI_PLATFORM=y
답변1
dmesg 출력에서 다음과 유사한 메시지가 표시되어야 합니다.
[ 1.768941] ehci-pci 0000:00:1a.0: EHCI Host Controller
[ 1.769021] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
...
[ 1.787161] xhci_hcd 0000:02:00.0: xHCI Host Controller
[ 1.787880] xhci_hcd 0000:02:00.0: new USB bus registered, assigned bus number 2
(이것들은 내 시스템에서 가져온 것입니다.) 커널이 USB 하드웨어를 감지하고 드라이버를 할당했지만 존재하지 않는 경우입니다.
필요한 모듈 xhci_pci
과 ehci_pci
PCI USB 컨트롤러용 드라이버(두 가지를 모두 가지고 있어도 문제가 없으며 USB 3.0 하드웨어에서 USB 2.0이 어떻게 처리되는지 잘 모르겠습니다. 따라서 적어도 두 가지를 모두 포함하는 것이 가장 좋습니다. 문제가 해결될 때까지 수정되었습니다) 및 xhci_hcd
일반 ehci_hcd
지원도 제공됩니다.
구성 스크린샷이 출력과 일치하지 않으므로 .config
현재 구성이 무엇인지 잘 모르겠습니다. 스크린샷에는 XHCI가 모듈이라고 나와 있는데, 여러분은 .config
이것이 내장되어 있다고 말합니다.
이들을 모두 모듈로 설정하면 디버깅이 더 쉬워집니다. 따라서 4개를 모두 로 변경하고 M
, 커널을 다시 컴파일하고, 재부팅하고, lsmod
로드된 항목을 확인하세요. 로드되어 사용되지 않는 경우 modprobe
pci 변형을 확인하고 dmesg/syslog에 오류 메시지나 다른 메시지가 있는지 확인하세요.
두 모듈 모두 로드에 실패하면 컨트롤러의 숫자 공급업체 및 장치 ID( lspci -n
) 를 살펴보고 modinfo
소스를 확인하여 모듈이 하드웨어를 인식하는지 확인하십시오.