参考:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html-single/configuring_and_managing_virtualization/index#proc_setting-up-nvidia-vgpu-devices_assembly_managing-nvidia-vgpu-devices
一、修改GRUB配置文件以支持iommu模式
配置
/etc/default/grub
以支持immou模式,在GRUB_CMDLINE_LINUX_DEFAULT
选项中添加intel_iommu=on iommu_pt
vim /etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`( . /etc/os-release; echo ${NAME:-Ubuntu} ) 2>/dev/null || echo Ubuntu`
[------] GRUB_CMDLINE_LINUX_DEFAULT=""
[++++++] GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on iommu_pt"
GRUB_CMDLINE_LINUX=""
执行sudo update-grub并重启以生效
sudo update-grub
sudo reboot
sudo dmesg | grep -i iommu # 检查iommu配置是否生效
[sudo] password for ubuntu:
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.8.0-57-generic root=UUID=8bde42b7-9e4a-430c-97fc-94f5d4ce84bb ro intel_iommu=on iommu_pt
[ 0.039382] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.8.0-57-generic root=UUID=8bde42b7-9e4a-430c-97fc-94f5d4ce84bb ro intel_iommu=on iommu_pt
[ 0.039445] DMAR: IOMMU enabled
[ 0.039466] Unknown kernel command line parameters "iommu_pt BOOT_IMAGE=/boot/vmlinuz-6.8.0-57-generic", will be passed to user space.
[ 0.328544] iommu: Default domain type: Translated
[ 0.328544] iommu: DMA domain TLB invalidation policy: lazy mode
[ 1.294032] iommu_pt
二、阻止宿主机读取GPU
执行以下命令查询有哪些显卡,可以看到
GeForce GT 755M
的bus为:10de:0fcd
ubuntu@y410p:~$ lspci -Dnn | grep VGA
0000:00:02.0 VGA compatible controller [0300]: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller [8086:0416] (rev 06)
0000:01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK107M [GeForce GT 755M] [10de:0fcd] (rev a1)
阻止宿主机读取GeForce GT 755M显卡
sudo vim /etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`( . /etc/os-release; echo ${NAME:-Ubuntu} ) 2>/dev/null || echo Ubuntu`
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on iommu_pt pci-stub.ids=10de:0fcd"
GRUB_CMDLINE_LINUX=""
执行配置生效命令并重启
sudo update-grub
sudo reboot
三、配置GPU的xml文件
创建以下文件并配置
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</source>
</hostdev>
为ubuntu server安装最新版本的cockpit
. /etc/os-release
sudo apt install -t ${VERSION_CODENAME}-backports cockpit
sudo apt install cockpit-machines
四、Y410P不支持,待更新