Linux(Arch Linux)에 USB 3.0 Express 카드를 설치합니다(커널 매개변수 intel_iommu=off pciehp.pciehp_force=1 추가 시도).

Linux(Arch Linux)에 USB 3.0 Express 카드를 설치합니다(커널 매개변수 intel_iommu=off pciehp.pciehp_force=1 추가 시도).

내 Arch Linux 시스템에 CSL USB 3.0 Express 카드를 설치하려고 합니다.

그러나 이 작업을 수행하면 다음과 같은 오류 메시지가 나타납니다.

xhci_hcd 0000:05:00.0: xHCI 호스트 컨트롤러가 응답하지 않음, 죽은 것으로 간주됨

xhci_hcd 0000:05:00.0: HC가 제거되었습니다.

나는 검색하고 다음 커널 매개 변수를 추가해 보았습니다.

intel_iommu=off

일부 웹사이트에서는 다음과 같이 언급합니다.

iommu

불행하게도 이것은 나에게 도움이 되지 않습니다.

나는 또한 다음을 추가해 보았습니다.

pciehp pciehp_force=1

그리고 하려고 노력해

sudo modprobe pciehp pciehp_force=1

그러나 Arch Linux는 커널 모듈을 찾을 수 없다고 불평합니다 pciehp.

pciehpArch Linux에 커널 모듈을 설치하는 방법에 대한 정보를 찾지 못했습니다 . 어떤 사람들은 그것이 커널에 내장되어 있다고 말합니다.

디버그 정보:

커널 버전: 4.16.6-1-ARCH

dmesg디버깅 활성화 xhci_hcdxhci_hcdgrep 사용

lspci -nn:

05:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller [1912:0015] (rev 02)

dmesg(이전 버전에는 xhci_hcd디버깅 기능이 없고grep

사람들이 이 문제를 해결하는 위치에 대한 참고 자료:

리눅스 메일링 리스트:

다른 출처:

답변1

음. 제가 간과하고 있는 것이 아니라면 컨트롤러가 초기화된 것처럼 보입니다.두 배:

[    5.195136] xhci_hcd 0000:05:00.0: xHCI Host Controller
[    5.195145] xhci_hcd 0000:05:00.0: new USB bus registered, assigned bus number 3
[    5.202621] xhci_hcd 0000:05:00.0: hcc params 0x014051cf hci version 0x100 quirks 0x00000090
....
[    5.203568] xhci_hcd 0000:05:00.0: xHCI Host Controller
[    5.203572] xhci_hcd 0000:05:00.0: new USB bus registered, assigned bus number 4
[    5.204014] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.

이것르네사스 제품정보각 USB 3.0/USB 2.0 레거시 루트 허브에는 각각 두 개의 포트가 있지만 루트 허브는 하나뿐이므로 무슨 일이 일어나고 있는지 이해할 수 없습니다.

xhci_hcd물론 두 인스턴스가 동시에 카드를 제어하려고 하면 문제가 발생합니다.

다음으로 한 일은 xhci_hcd소스 코드를 살펴보고 디버그 지원을 통해 다시 컴파일하는 것이었습니다. 이를 위해서는 프로그래밍 경험이 필요하므로 이를 수행하는 방법을 모르거나 커널 버그 추적기에 의해 처리되는 모든 것에 대해 버그 보고서를 제출하는 경우 xhci_hcd개발자가 내가 멍청하고 반복되는 초기화가 정상이라고 말하더라도 .

편집하다

디버그 메시지를 확인해보면 이상해 보입니다.

[    2.423207] xhci_hcd 0000:05:00.0: Finished xhci_run for USB2 roothub
[    2.423420] xhci_hcd 0000:05:00.0: Endpoint 0x81 ep reset callback called
[    2.423547] xhci_hcd 0000:05:00.0: set port power, actual port 0 status  = 0x2a0
[    2.423563] xhci_hcd 0000:05:00.0: set port power, actual port 1 status  = 0x2a0
[    2.423613] xhci_hcd 0000:05:00.0: xHCI Host Controller
[    2.423616] xhci_hcd 0000:05:00.0: new USB bus registered, assigned bus number 2
[    2.423621] xhci_hcd 0000:05:00.0: // Turn on HC, cmd = 0x5.
[    2.426468] xhci_hcd 0000:05:00.0: Finished xhci_run for USB3 roothub
[    2.426630] xhci_hcd 0000:05:00.0: Endpoint 0x81 ep reset callback called
[    2.426798] xhci_hcd 0000:05:00.0: set port power, actual port 0 status  = 0x2a0
[    2.426819] xhci_hcd 0000:05:00.0: set port power, actual port 1 status  = 0x2a0
[    2.426893] xhci_hcd 0000:05:00.0: remove, state 1
[    2.427674] xhci_hcd 0000:05:00.0: USB bus 2 deregistered
[    2.427731] xhci_hcd 0000:05:00.0: remove, state 1

따라서 USB 2.0 및 USB 3.0 루트 허브는 모두 모든 것이 초기화된 후 재설정을 호출합니다. 그것들은 제거되고 드라이버는 모든 것을 다시 초기화하려고 시도합니다(이것은 제가 본 두 번째 초기화입니다). 이번에는 비참하게 실패했습니다.

커널 소스 코드에서 이 함수에는 xhci_endpoint_reset"xhci 4.8.1에서 config ep cmd를 구현해야 할 수도 있습니다" 및 "이제 상황을 추적하기 위해 디버그를 인쇄하면 됩니다"와 같은 설명이 있습니다.

따라서 이것은 확실히 커널 개발자의 경우입니다. 디버그 출력으로 오류 보고를 수정해야 합니다.

답변2

저도 동일하거나 비슷한 문제가 있습니다. 여기에 스레드가 열렸습니다. https://bbs.archlinux.org/viewtopic.php?pid=1784837

내 테스트에서 나온 결과는 커널이 4.12.8-1-ARCH라는 것입니다. 다른 노트북에서는 동일한 카드가 작동합니다. 이제 Linux 4.15.15를 사용합니다.

답변3

최신 커널에서는 5.0.10-arch1-1-ARCH카드가 제대로 작동합니다. 하지만 내 시스템에서는 부팅하기 전에 장치를 연결한 경우에만 작동합니다.

기타 솔루션:

위의 링크에서 Xavier는 이렇게 말합니다.여기, 그는 pci=nomsi부팅 옵션에 커널 매개변수를 추가하여 해결 방법을 찾았습니다. 나는 더 이상 조사하지 않았습니다.

답변4

grub 매개변수를 추가하면 iommu=soft문제가 해결되었습니다.

관련 정보