USBドライバ(EHCI)が特定のUSBコントローラ(PCIeカード)にロードされるのを防ぐ方法は?

USBドライバ(EHCI)が特定のUSBコントローラ(PCIeカード)にロードされるのを防ぐ方法は?

私はDebian 10.8とLinuxカーネル4.19.0-14を使用しています。

IOMMUを使用してUSBコントローラ全体(PCI Expressカード)を転送しようとすると問題があります。カーネルがohci_pciおよびehci_pciドライバをロードしていますが、それを停止したりバインディングを解除したりできないようです。

アンインストールしようとしましたが(echo 1> /sys/bus/pci/devices/...)システムがハングしました。 (カーネルはスタックトレースなどを介してカーネルBUGを表示します。)

そのため、カーネルがohciドライバとehciドライバをバインドするのを防ぎ、VFIOが最初にバインディングを解除せずに使用できるようにします。

私はいくつか試しました:

  • GRUBカーネルコマンドラインにpci-stub.ids vfio-pci.idsを追加します。
  • PCIデバイスを仮想ドライバとしてエイリアスする(/etc/modprobe.d/vfio-pci.conf)
  • ブラックリスト ohci_pci と ehci_pci (/etc/modprobe.d/blacklist.conf)
  • /sys/bus/pci/devices/.../unbind を使用してドライバのバインディングを解放します (ただし、これによりシステムがフリーズします)。

カーネルが組み込まれたohci / ehciドライバ(モジュールではない)を使用していると思いますが、おそらくpci-stubまたはvfioブロックの前にそのドライバをロードできますか?

関連情報