一、环境:
显卡:NVIDIA RTX A4000
系统:Ubuntu20.04
CPU:intel
二、安装kvm
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager ovmf`
添加用户到“libvirt”和“kvm”组
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
三、开启iommu
1、修改/etc/default/grub,添加“intel_iommu=on”到CRUB_CMDLINE_LINUX,如下图
若为amd芯片,变更为"amd_iommu=on"
2、更新grub,然后重启ubuntu
sudo update-grub
sudo reboot
3、检查iommu是否成功开启
dmesg | grep -e DMAR -e IOMMU
如下图输出即为开启成功
四、验证nouveau是否禁用
lsmod | grep nouveau
如下图,无输出,即已完成禁用:
如果有输出,请执行如下:
sudo gedit /etc/modprobe.d/blacklist.conf
#在文件末尾添加如下配置:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
#保存并退出
在内核中直接禁用Nouveau,命令如下(确保完全禁用):
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
更新配置,并重启
sudo update-initramfs -u
sudo reboot`
五、显卡解绑
验证显卡是否安装驱动
nvidia-smi
若已安装显卡驱动,执行如下命令卸载:
sudo /usr/bin/nvidia-uninstall
卸载成功后,重启,重新执行nvidia-smi,确认是否卸载成功
1、查询显卡id
lspci -nn | grep NVIDIA
10de:24b0字样即为id
2、用libvirt解除绑定
(1)查询设备ID:
virsh nodedev-list | grep pci
验证设备NVIDIA id是否一致
virsh nodedev-dumpxml pci_0000_01_00_0
如下图:
(2)、开始解绑
sudo modprobe pci_stub
sudo virsh nodedev-detach pci_0000_01_00_0
sudo virsh nodedev-detach pci_0000_01_00_1
#多张显卡时,变更id重复执行
(3)、设置重启设备时,确保显卡自动解绑
sudo gedit /lib/systemd/system/rc-local.service`
#末尾添加:
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
#保存并退出,设置自启动
sudo systemctl enable rc-local.service
编写rc.local
sudo gedit /etc/rc.local
#!/bin/sh -e
sudo vim /etc/rc.local
# rc.local
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# In order to enable or disable this script just change the execution
# By default this script does nothing.
# add your scritp here
echo "this shows rc.local is start onboot" > /usr/local/rc-local-info.log
sleep 1
sudo modprobe pci_stub
sleep 1
virsh nodedev-detach pci_0000_01_00_0
sleep 1
virsh nodedev-detach pci_0000_01_00_1
exit 0
#保存并退出,多张显卡更改id进行添加。
设置rc.local权限,并重启ubuntu
sudo chmod -R +x /etc/rc.local
sudo reboot
六、创建kvm