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

人々がこの問題を解決する場所に関する参考資料:

Linuxメーリングリスト:

他のソース:

答え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レガシールートハブにはそれぞれ2つのポートがありますが、ルートハブは1つだけなので、何が起こっているのか理解できません。

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のルートハブは、すべてが初期化された後にリセットを呼び出します。それらは削除され、ドライバはすべてを再初期化しようとします(これは私が見た2番目の初期化です)。今回は悲惨に失敗しました。

カーネルのソースコードでは、この関数には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問題が解決しました。

関連情報