web-dev-qa-db-ja.com

KVM PCIパススルーを使用している場合、GTX 1080のドライバーがゲストで機能しない

GTX 1080(ドライバー)とPCIパススルーのバグの可能性があると思います。

私のホストはUbuntu 14.04システムです。私のゲストはUbuntu 14.04/16.04システムです(どちらも同じことをします)。

ゲストVM内のデバイスを確認できます。

lspci -vnn | grep VGA

00:05.0 VGA互換コントローラー:NVIDIA Corporation Device 1b80(rev a1)

ドライバー(370.2、最新ドライバー)を正常にインストールできました。インストールしますが、nvidia-smiでは認識されません。

nvidia-smi 

GPU 0000:00:05.0のデバイスハンドルを判別できません:不明なエラー

Dmesgを見ると、次のエラーメッセージが表示されます。

[29.535583] nvidia 0000:00:05.0:MSI/MSI-Xのirq 45 [
29.577727] NVRM:RmInitAdapterが失敗しました! (0x23:0x56:458)[29.577807] NVRM:rm_init_adapterがデバイスのマイナー番号0で失敗しました

GTX 1080を別のカード(M4000、パススルーを実行し、ゲストにドライバーをインストールする)に切り替えると、機能します。明日、別のGeforceカードを使ってみます。

NVidiaフォーラムの別の人も私と同じ問題を抱えていました(回答はありません)。

https://devtalk.nvidia.com/default/topic/957757/gtx-1080-amp-kvm-pci-passthrough-to-guest/?offset=2#5033118

これをさらにデバッグする方法はありますか?

6
Kevin Vasko

私も同じ問題を抱えていました https://www.evonide.com/non-root-gpu-passthrough-setup/ で答えを見つけました。 qemuコマンドラインに-cpu Host,kvm=offを追加する必要があります。私はganetiを使用しているので、次のようにして問題を修正しました。

gnt-instance modify -H cpu_type="Host\,kvm=off"

私が正しく理解している場合、このフラグはオフに切り替わりませんKVMゲストのアクセラレーション、それは-machine pc,accel=kvmでオンに切り替わります。しかし、ネストされたKVM=ゲストのアクセラレーション(KVMゲスト内の仮想マシンを実行できません)。

3
Paul Tobias

貢献することがたくさんあるかどうかはわかりませんが、nvidiaがPCIパススルーの試みを積極的に妨害しているようです(Quadroカードを購入することになっています)。

x-pci-vendor-id=0x10DE,x-pci-device-id=0x11BA,x-pci-sub-vendor-id=0x10DE,x-pci-sub-device-id=0x0965引数に-device vfio-pci,を追加して、pciデバイスIDを偽装してみてください。これにより、Quadro K5000のふりをします。

2
krt0

私はしばらくこれと戦いました、あなたのシステムでgpuが唯一のものである場合、それをそのままにしておくにはgrubとlinuxを入手する必要があります。マシンをシリアルコンソールで起動しますが、重要な部分はvideo = efifb:offです。

GRUB_CMDLINE_LINUX = "console = tty1 console = ttyS0,115200" GRUB_TERMINAL = "console serial" GRUB_SERIAL_COMMAND = "serial --speed = 115200 --unit = 0 --Word = 8 --parity = no --stop = 1" GRUB_CMDLINE_LINUX = 「静かなスプラッシュビデオ= efifb:off intel_iommu = on console = ttyS0,115200」

https://unix.stackexchange.com/questions/328534/driver-for-gtx-1080-doesnt-work-on-guest-when-using-kvm-pci-passthrough
0
Ben