qemu-kvm Windows 7 GUEST と vga パススルーが動作しない

qemu-kvm Windows 7 GUEST と vga パススルーが動作しない

さて、私は qemu-kvm Win7 VM をセットアップしました。標準の vga 出力 "-vga std" を使用するように設定すると、正常に動作します。Windows が起動し、問題なく表示されます。

-vga none \
-device vfio-pci,host=06:00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=06:00.1 \

VM は起動しますが、qemu モニター コンソールにも、起動スクリプトを実行するために使用するターミナルにもエラーは表示されません。pci_0000:06:00:0 の PCIE グラフィック カードに接続されたモニターは信号を登録し、BIOS 画面を 1 秒間表示しますが、実際に Windows (ISO インストール ディスクまたは VM ドライブに既にインストールされているコピー) の読み込みを開始すると、空白の黒い画面が表示されます。

繰り返しますが、エラーや視覚的なアーティファクトはなく、画面は依然として信号を登録しています (デフォルトで「信号なし」になって電源が切れることはありません) が、画面は真っ黒です。私が知る限り、OS 自体は実際には起動しません (Synergy をインストールし、コンピューターの起動時に自動的に起動するように設定しています)。VGA パススルーを使用しない場合、Synergy は VM ボックスへの入力が 0 で期待どおりに起動します。VGA パススルーを使用する場合、マウスはホスト/サーバー OS から画面外にスクロールできず、Synergy サーバー コンソールはクライアントによって接続が確立/試行されていることをまったく示しません。

OS: Fedora 21 QEMU/QEMU-KVM: Ver 2:2.3.0-4 ゲスト OS: Windows 7 Enterprise libvirt-kvm: Ver 1.2.13.101 カーネル Ver: 4.0.4-201

起動スクリプト:

#!/bin/bash
sudo qemu-system-x86_64 -enable-kvm -rtc base=localtime -m 8192 -cpu host,hv-time,kvm=off \
-smp sockets=1,cores=4,threads=1 -serial none -parallel none -nodefconfig \
-drive file=windows.img,cache=writeback,if=none,id=drive0,aio=native,cache.direct=on \
-device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 -device virtio-scsi-pci,id=scsi \
-drive file=7_en_x64.iso,id=iso_install,if=none -device scsi-cd,drive=iso_install \
-cdrom virtio.iso \
-device vfio-pci,host=06:00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=06:00.1 \
-boot menu=on \
-vga none


exit 0

最後の 2 つの「-device」行をコメント アウトし、「-vga none」を「-vga std」に変更すると、VM が起動して期待どおりに機能するようになります。

関連情報