有没有简单的方法可以在 Ubuntu 16.04 上设置 VGA 直通?

有没有简单的方法可以在 Ubuntu 16.04 上设置 VGA 直通?

有人在 Ubuntu 16.04 上成功设置了 VGA 直通吗?最简单的方法是什么?

我已经安装了虚拟管理器。

答案1

更新: 现在,我已经可以正常使用 libvirt 了。对我来说,唯一的麻烦就是学习如何伪造 Windows NVidia 驱动程序相信这是不是在虚拟机中运行。我通过<kvm><hidden state='on'/></kvm><features>中添加<timer name='hypervclock' present='no'/><clock>实现这一点。(更新 2:hypervclock 现在似乎可以被现代 NVidia 驱动程序接受。)

原始答案:

没有“简单”的方法,我只是直接用 libvirt/virt-manager 添加 PCI 设备取得了部分成功。 我确实按照本指南获得了无可争议的成功。

然而,我必须阅读大量其他教程和论坛的资料才能了解发生了什么。 以下是我希望在刚开始时就掌握的术语列表

基本步骤如下:

  • 切断你的直通 VGA 设备,这样 Ubuntu 就不会认领它
  • 编写 qemu 命令行脚本来...
    • 添加 ioh3420 虚拟 PCI 根端口
    • 添加您的 VGA 设备
    • 将同一 IOMMU 组中的任何其他设备添加为 VGA 设备
    • 添加鼠标/键盘

这是上面链接中的脚本,全部归功于作者 Matt Bach。

#!/bin/bash

configfile=/etc/virt/vfio-pci1.cfg

vfiobind() {
    dev="$1"
        vendor=$(cat /sys/bus/pci/devices/$dev/vendor)
        device=$(cat /sys/bus/pci/devices/$dev/device)
        if [ -e /sys/bus/pci/devices/$dev/driver ]; then
                echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
        fi
        echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id

}

modprobe vfio-pci

cat $configfile | while read line;do
    echo $line | grep ^# >/dev/null 2>&1 && continue
        vfiobind $line
done

sudo qemu-system-x86_64 -enable-kvm -M q35 -m 4096 -cpu host,kvm=off \
-name cmdline \
-smp 4,sockets=1,cores=4,threads=1 \
-bios /usr/share/qemu/bios.bin -vga none \
-usb \
-usbdevice host:046d:c52b,hostbus=3,hostaddr=7  \ // My logitech mouse/kb receiver
-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
-device vfio-pci,host=05:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=05:00.1,bus=root.1,addr=00.1 \    
-drive file=/home/at/virt/windows1.img,id=disk,format=qcow2,cache=none,if=none -device ide-hd,drive=disk \
-drive file=/home/at/virt/win7.iso,id=isocd,cache=none,if=none,format=raw -device ide-cd,bus=ide.2,drive=isocd \
-boot menu=on

相关内容