KVM虚拟机显卡直通(Ubuntu 14.04)

对于显卡直通,此前我走了很多弯路,在我的博文《我的KVM显卡直通实践》中有过相关记录,在此就不赘述了,只描述一下配置成功的方法。

配置好显卡直通的方法:

1.硬件条件

首先要确定主板和CPU都支持VT-d技术,即Virtualization Technology for Direct I/O(英特尔虚拟技术)。近年的产品应该都支持此技术。
还要确定要直通的显卡支持PCI Pass-through。似乎A卡对于直通的支持比N卡好,不过我这台电脑中的NVIDIA Quadro M4000对此是支持的。之前我以为显卡直通需要两块独立显卡,一块主机用,另一块虚拟机用。现在看来是VMware ESXi的显卡直通需要两块显卡,我用KVM配置的则不需要,因为我的主机一直用的是Intel的集成显卡。

2.准备工作

在BIOS将VT-d设置成enable,将显卡设置成iGPU(即直接在BIOS中把独立显卡禁用)。
安装Ubuntu系统。
此时如果发现鼠标的显示不稳定,屏幕闪烁,就打开系统设置中的显示设置。显示设置里面会看到两块屏幕(可能是因为我把独立显卡与集成显卡都用线连接到了显示器)。把使用独立显卡的那块显示屏关闭。
使用apt-get update、apt-get upgrade等更新系统。
安装Bumblebee(我直接安装NVIDIA显卡驱动时无法调成集成显卡显示),参考Bumblebee的wiki。

sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia primus linux-headers-generic

再安装NVIDIA驱动。(非常重要)
NVIDIAXServer Settings中的PRIME profiles应该显示使用的是集成显卡。
配置grub文件。
sudo gedit /etc/default/grub
在文件中的GRUB_CMDLINE_LINUX_DEFAULT参数内添加”intel_iommu=on”。
使用sudo update-grub更新grub。
重启电脑。
使用dmesg | grep IOMMU检查VT-d是否工作。若没有相应输出,需要重新检查之前的步骤。

3.VIFO配置

使用lspci -nn | grep VGA找到待分配的显卡设备编号。
0000:04:00.0VGA compatible controller [0300]: NVIDIA Corporation GM204GL [Quadro M4000] [10de:13f1] (rev a1)
0000:04:00.1Audio device [0403]: NVIDIA Corporation GM204 High Definition Audio Controller [10de:0fbb] (rev a1)
接着在终端输入:

    sudo modprobe vfio
    sudo modprobe vfio-pci
    sudo su
    cd /sys/bus/pci/devices/0000:04:00.0/
    echo 0000:04:00.0 > /sys/bus/pci/devices/0000:04:00.0/driver/unbind
    echo 10de 13f1 > /sys/bus/pci/drivers/vfio-pci/new_id
    cd /sys/bus/pci/devices/0000:04:00.1/
    echo 0000:04:00.1 > /sys/bus/pci/devices/0000:04:00.1/driver/unbind
    echo 10de 0fbb > /sys/bus/pci/drivers/vfio-pci/new_id

(注:要确定这两个设备在同一个iommu group,而且同一个group下没有别的硬件。一般是不会有的。可以cd进文件夹然后用readlink iommu_group和ll iommu_group/devices来确定)

4.虚拟机显卡分配

安装KVM:

    sudo apt-get install qemu-kvm qemu virt-manager virt-viewer libvirt-bin python-libvirt bridge-utils
用KVM新建一`这里写代码片`个新的虚拟机,安装好系统。
将虚拟机关闭,打开KVM虚拟机的信息,添加新的设备。将PCI编号为0000:04:00.0和 0000:04:00.1的设备添加进去,即完成了显卡直通。

5.仍然存在的问题

显卡直通这样就可以算成功了。
目前存在的问题是:我在虚拟机里面把显卡的NVIDIA驱动安装好之后,重启虚拟机,就会卡在输入ubuntu账户密码的界面。这确实是一个熟悉的场景,是因为连接的虚拟集成显卡被禁用了,得使用独立显卡。但是虚拟机又没有BIOS,此处的配置还有待于研究(TBC)。


/本文第一次编辑于2017-6-14

你可能感兴趣的:(KVM虚拟机显卡直通(Ubuntu 14.04))