简介:
本人在安装Proxmox 6上尝试了一周的失败,由于无法使用U盘来安装Proxmox 6,每次都是进入shell界面,无法进入安装界面。也尝试过使用Debian10来安装Proxmox 6。步骤繁琐,受网络问题影响,最终也没成功。
最终成功在PC上安装Proxmox 7,于是在Proxmox 7的基础上进行尝试vgpu解锁。
在数次失败后,最终成功在Proxmox 7 上实现安装驱动、解锁vgpu。
由于安装过程中可能会遇到很多问题,排雷、试错都是必经阶段,推荐在虚拟机中尝试安装,安装成功后再到真机上执行。
CPU:Intel;我在proxmox-ve_7.0-2尝试安装成功,无法保证其他版本成功,请初试者按照我的版本、步骤来执行。
解锁vgpu过程
1.克隆解锁vgpu代码
由于Proxmox 7版本内核5.11,需要使用以下的解锁补丁
cd /mnt && git clone https://github.com/rupansh/vgpu_unlock_5.12
chmod -R +x vgpu_unlock_5.12
2.编辑 Nvidia vGPU 系统服务文件nvidia-vgpud.service
vim /lib/systemd/system/nvidia-vgpud.service
将vgpu补丁路径下的vgpu_unlock文件加入到ExecStart
ExecStart=/mnt/vgpu_unlock_5.12/vgpu_unlock /usr/bin/nvidia-vgpud
3.编辑 Nvidia vGPU 系统服务文件nvidia-vgpu-mgr.service
vim /lib/systemd/system/nvidia-vgpu-mgr.service
将vgpu补丁路径下的vgpu_unlock文件加入到ExecStart
ExecStart=/mnt/vgpu_unlock_5.12/vgpu_unlock /usr/bin/nvidia-vgpu-mgr
4.重新加载服务守护进程
systemctl daemon-reload
5.编辑Nvidia驱动源文件os-interface.c
vim /usr/src/nvidia-460.32.04/nvidia/os-interface.c
在#include “nv-time.h”下插入这一行
#include "/mnt/vgpu_unlock_5.12/vgpu_unlock_hooks.c"
6.编辑Nvidia驱动源文件nvidia.Kbuild
vim /usr/src/nvidia-460.32.04/nvidia/nvidia.Kbuild
在最底下添加一行
ldflags-y += -T /mnt/vgpu_unlock_5.12/kern.ld
7.要想解锁成功后重启能在日志看的“vGPU unlock patch applied.”的提示,操作如下(非必要操作)
编辑vgpu补丁文件vgpuunlockhooks.c
vim /mnt/vgpu_unlock_5.12/vgpu_unlock_hooks.c
找到下面的内容,无需将#号去掉,只需0改为1
/* Debug logs can be enabled here. To enable it, change 0 to 1. */ #if 1 #define LOG(...) printk(__VA_ARGS__) #else #define LOG(...) #endif
8.移除原来的Nvidia dkms模块
dkms remove -m nvidia -v 460.32.04 --all
9.重建模块
dkms install -m nvidia -v 460.32.04
10.重启
reboot
11.使用dmesg命令并验证 vGPU 是否正在运行
dmesg|grep -i vgpu
12.应该能看到vGPU unlock patch applied.的返回信息 即解锁成功
vGPU unlock patch applied.