1.1 # 系统
cat /etc/os-release
1.2 # 内核
uname -ar
APT软件源索引更新与必要工具软件安装
sudo apt update
sudo apt install -y git build-* dkms
必要编译工具安装
- 设置环境变量
KERNEL=$(uname -r); KERNEL=${KERNEL%-generic}
echo ${KERNEL}
核显虚拟化驱动项目的源码下载与配置修改(需要切换root执行)
- 切换到root
su -
cd ~
git clone https://github.com/strongtz/i915-sriov-dkms.git
cd ~/i915-sriov-dkms
cp -a ~/i915-sriov-dkms/dkms.conf{,.bak}
cat dkms.conf
PACKAGE_NAME="i915-sriov-dkms"
PACKAGE_VERSION="6.1.0-25-amd64"
链接内核源代码,并检查状态。确认内核显示已添加。
dkms add .
dkms status
- 构建新内核并检查状态。验证是否显示已安装。
-
- 安装内核扩展, 会触发MOK相关设置.
sudo dkms install -m i915-sriov-dkms -v $KERNEL -k $(uname -r) --force -j 4
GRUB 配置
- 解释: i915.max_vfs=7 表示最多虚拟成3个设备
sudo cp -a /etc/default/grub{,.bak}
会在第10行追加内容: intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=3
sudo sed -i ‘/^GRUB_CMDLINE_LINUX_DEFAULT/c\GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=3”’ /etc/default/grub
更新引导
sudo update-grub
sudo update-initramfs -u -k all
系统重启与引导项MOK配置
执行到此, 应该对该虚拟机系统进行重启, 但需要额外强调下:
因为当前版本系统启用了安全引导, 因此必须在安装驱动后, 重启进入系统前, 在引导页面进行MOK相关配置. 只需在第一次重启配置成功, 之后不在需要设置.
开机启动/引导项MOK配置过程: Enroll MOK, Continue, Yes, , Reboot
重启机器, 在开机页面, 开机引导页面依次选择:
* Enroll MOK, Continue, Yes, , Reboot
如果错过, 需要进入终端, 重新运行 mokutil … 命令并再次重启。
在完成此设置之前,DKMS 模块不会加载。
Ubuntu重置MOK
参见: https://wiki.ubuntu.com/UEFI/SecureBoot
update-secureboot-policy --enroll-key
图片按钮如下:
60.png
61.png
62.png
63.png
密码就是刚才设置的mok密码,不是root ssh密码。
虚拟机配置调整
接下来我们需要调整虚拟机显示配置, 移除默认显示设别, 同时添加宿主机的虚拟PCI集显, 之后关闭系统, 使配置生效; 然后启动系统, 通过SSH远程登录系统, 通过如下命令行可以如下输出.
虚拟机关机
修改虚拟机配置2处
64.png
显示修改为无,添加pci虚拟的核显,勾选如图,添加。
开启虚拟机
ls /dev/dri
64.png
以上是正确添加了虚拟化核显。没有添加会少一个renderD128
效果验证
通过以上步骤完成虚拟化集显设备直通后, 下面我们基于Docker部署Jellyfen在线流媒体应用, 验证集显直通是否成功.
集显查询工具
为了了解集显的实时使用情况, 还需要在pve系统内安装intel_gpu_top工具
apt install intel-gpu-tools
LXC容器内,直接执行(我是虚拟机,就没有用这个,直接在pve系统使用查看
intel_gpu_top
PVE宿主机上, 我们配置了SR-IOV虚拟核显, 需要指定真实的核显相关参数
否则可能遇到这类错误提示: “Kernel 4.16 or newer is required for i915 PMU support.”
lspci | grep VGA # 查看真实显卡地址, 一般不需要修改
intel_gpu_top -d sys:/sys/devices/pci0000:00/0000:00:02.0
PVE宿主机配置配置了SR-IOV虚拟核显, 有三个虚拟核显设备。
集显未使用时: intel_gpu_top输出
16.png