私は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
。
pciehp
Arch Linuxにカーネルモジュールをインストールする方法に関する情報が見つかりませんでした。一部の人々はそれがカーネルに組み込まれていると言います。
デバッグ情報:
カーネルバージョン: 4.16.6-1-ARCH
dmesg
デバッグの有効化xhci_hcd
とxhci_hcd
grepの使用
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
問題が解決しました。