私は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ブロックの前にそのドライバをロードできますか?