intel_iommu=on だが iommu_groups がない

intel_iommu=on だが iommu_groups がない

私はVGAパススルーを設定しようとしています。現在Ubuntu 16.04でこれを試しています(しかし、ほとんど関係のないフラストレーションからバニラDebianにロールバックしようとしています)。私は主にこのガイドしかし、どうやら私のマシンはグループ化を望んでいないようで、IOMMU グループ化の意味がわかりません。

カーネルのコマンドラインで intel_iommu=on を設定し、「cat /prod/cmdline」で確認できます。ただし、「find /sys/kernel/iommu_groups/ -type l」では何も見つからず、「ls /sys/kernel/iommu_groups」では空のディレクトリが表示されます。グーグルで検索しても、ここからこの問題を解決する方法についてのガイダンスはあまり見つかりません。また、これまで、このような種類のハードウェアのトリックをそれほど試したことがないので、PCI バスのトラブルシューティングは私にとって初めての経験です。

ハードウェアに関して言えば、このマシンには、Asus X99 E-WS マザーボードに Intel E5-1650 v3 が搭載されており、Nvidia Quadro K4000 と GTX 970 が 1 つずつ搭載されています。970 はホスト用に残しておき、K4000 を VM 専用にしようと考えています。lspci または virsh ondedev-list の出力を提供できれば助かります。ただし、長すぎるのでここには載せませんし、まだそれが役に立つ段階に達していないと思います。私の知る限り、iommu がオンになっていることについて何かが間違っているようです

編集: 次のように報告されています:

$ dmesg | grep -e DMAR -e IOMMU
[    0.000000] DMAR: IOMMU enabled
[    0.000000] DMAR: IOMMU enabled

さらに困惑しています。有効になっていなかったら、私の grub またはカーネル モジュールの間違いだった可能性があります。しかし、有効になっているのに他のリソースで説明されている動作をしない場合は、どうすればよいのかまったくわかりません。

答え1

遅くなりましたが、使用している UEFI BIOS によっては、VT-d が有効になっているかどうかを確認するのが難しい場合があります。私の Asus X99A USB 3.1 マザーボードでは、VT-x と VT-d の設定は別の場所にあります。

VT-d の場合: 詳細 => システム エージェント構成 => Intel VT for Directed I/O (VT-d)

私のシステムでは、VT-x ([詳細設定] => [CPU 構成] => [Intel Virtualization Technology]) が有効になっているにもかかわらず、これが [無効] に設定されていました。

両方が有効になっていることを確認してください

答え2

私も同じ問題に遭遇しました。BIOS設定を確認したところ、VT-d無効になっていました。オプションを有効にして問題を解決しました。お使いのマシンが Intel vt-d をサポートしているかどうかを確認するには、マザーボードまたはチップセットのマニュアルを参照してください。

答え3

Ubuntu Linux 22 でこの問題が発生していましたが、私も UEFI BIOS 内でこの問題の解決策を見つけました。私は AMD 3950x を使用しているため、VT-d ではなく AMD-V に依存しています。私のマザーボードは Asrock X570 Phantom Gaming X で、仮想化と IOMMU を有効にするために UEFI 内でチェックする場所が (3) あり、次のとおりです。

1.) 詳細 > CPU 構成 > PSS サポート > 有効 // デフォルトで有効

2.) 詳細 > オンボードデバイス構成 > SR-IOV サポート > 有効 // デフォルトでは無効

3.) 詳細 > スーパー IO 構成 > IOMMU > 有効 // デフォルトでは無効

保存して終了しても、IOMMU グループが設定されていないことがわかります。

関連情報