我正在尝试使用直通图形设置虚拟机。我能够为 UEFI shell 进行直通,但不能为官方 Windows 安装程序工作。我可以让 Windows 安装程序工作,但只能使用模拟图形
这将在 QEMU 窗口中启动 Windows 安装程序:
sudo qemu-system-x86_64 --enable-kvm \
-name TESTVM,process=TESTVM \
-cdrom /media/big-tank-8TB/OSISOS/Windows/WindowsOct2018.iso \
-smp 4 \
-cpu core2duo \
-m 4096 \
-vga qxl
Run Code Online (Sandbox Code Playgroud)
这也会在 QEMU 窗口中引导 Windows 安装程序(仍然没有直通)
sudo qemu-system-x86_64 --enable-kvm \
-name TESTVM,process=TESTVM \
-cdrom /media/big-tank-8TB/OSISOS/Windows/WindowsOct2018.iso \
-smp 4 \
-cpu core2duo \
-m 4096 \
-device vfio-pci,host=43:00.0,multifunction=on \
-device vfio-pci,host=43:00.1
Run Code Online (Sandbox Code Playgroud)
但是如果我指定 UEFI 固件的路径,我会在连接到我的直通显卡的显示器上和 QEMU 窗口中看到 Tiano slpash 屏幕和 UEFI shell。
sudo qemu-system-x86_64 --enable-kvm \
-name …Run Code Online (Sandbox Code Playgroud) 我相信我们遇到了 GTX 1080(驱动程序)和 PCI Passthrough 的可能错误。
我的主机是 Ubuntu 14.04 系统。我的来宾是 Ubuntu 14.04/16.04 系统(两者都做同样的事情)。
我可以在来宾 VM 中看到设备:
$ lspci -vnn | grep VGA
00:05.0 VGA compatible controller: NVIDIA Corporation Device 1b80 (rev a1)
Run Code Online (Sandbox Code Playgroud)
我能够成功安装驱动程序(370.2,最新驱动程序)。它安装,但不被识别nvidia-smi:
$ nvidia-smi
Unable to determine the device handle for GPU 0000:00:05.0: Unknown Error
Run Code Online (Sandbox Code Playgroud)
查看dmesg我看到以下错误消息
[29.535583] nvidia 0000:00:05.0: irq 45 for MSI/MSI-X
[29.577727] NVRM: RmInitAdapter failed! (0x23:0x56:458)
[29.577807] NVRM: rm_init_adapter failed for device bearing minor number 0
Run Code Online (Sandbox Code Playgroud)
我可以将 GTX 1080 换成不同的卡(M4000,在来宾上执行直通和安装驱动程序)并且它可以工作。明天我将尝试使用另一张 Geforce 卡。
Looking Glass是一款开源应用程序,允许使用配置有直通 GPU 的 KVM,而无需连接物理显示器、键盘或鼠标。
在Looking Glass 术语中,主机软件是指在VM guest 虚拟机(使用GPU 的VM)中运行的Looking Glass 部分。客户端软件是在 Linux主机上运行、显示渲染帧的部分的术语。
Looking Glass 主机目前仅支持 Windows,并涵盖了主要用例:在 Windows VM 中运行仅限 Windows 的 GPU 密集型软件,并在 Linux 主机上显示结果。
我的用例略有不同:我将更强大的无头 GPU 从 Linux 主机传递到Linux VM 来宾。它在基于 OpenCL 或 CUDA 等的 GPU 计算上运行良好。我还希望能够在该 Linux VM 来宾上运行 3D 软件,并在我的 Linux 主机上显示结果。
因此:Linux 主机上的 Linux 来宾是否有等效的技术?或者,是否有适用于 Linux 的 Looking Glass 主机?