[CentOS8]KVMゲストマシンへGPU passthroughを行う

こちらのページを参考にGPUパススルーの設定を行ったが、エラーが発生したため備忘録として残しておく。

https://www.server-world.info/query?os=CentOS_8&p=kvm&f=12

1. 環境

ホスト:CentOS8

  • libvirt:4.5.0

ゲスト:CentOS8 ※すでに構築済みのものを使用

2. 発生した問題(1)

以下の画像のエラーが発生し、仮想マシンの起動に失敗した。

2-1. 解決方法

いろいろ調べていたところ vfio_iommu_type1  というモジュールが読み込まれていないことが分かり、これを読み込ませることで起動できるようになる。

・一時的には
# modprobe vfio_iommu_type1
・永続的には(ホストの再起動が必要)
# echo 'vfio_iommu_type1' > /etc/modules-load.d/vfio_iommu_type1.conf

3. 次に発生した問題(2)

問題(1)を解決後、Nvidia driverのインストールを行い、nvidia-smiを実行したところ以下のエラーが発生した。
$ nvidia-smi
Unable to determine the device handle for GPU 0000:07:00.0: Unknown Error

dmesgを実行するとこのようなログが複数残っていた。

$ dmesg
・・・
[   26.907855] NVRM: GPU 0000:07:00.0: RmInitAdapter failed! (0x23:0x56:498)
[   26.908054] NVRM: GPU 0000:07:00.0: rm_init_adapter failed, device minor number 0
・・・

3-1. 解決方法

Nvidia driverはハイパーバイザの動作を確認し動作を停止させるらしい。これを回避するためには、VM設定XMLのfeaturesタグ内に以下のhypervとkvmタグを追加する。

# virsh edit [vmname]
・・・
  <features>
  ・・・
    <hyperv>
      <vendor_id state='on' value='whatever'/>
    </hyperv>
    <kvm>
      <hidden state='on'/>
    </kvm>
  ・・・
  </features>
・・・

3-1-1. 参考サイト

Windows の仮想マシンに NVIDIA の GPU をパススルーした場合に “Error 43 : Driver failed to load”

Ubuntu19.10 KVMでGPUのパススルーができない問題の解決策
※私の環境ではこの設定は不要だった

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください