【PVE】All in One 的快乐之PVE系统配置及核显SRIOV直通 | 您所在的位置:网站首页 › i58260u核显 › 【PVE】All in One 的快乐之PVE系统配置及核显SRIOV直通 |
【PVE】All in One 的快乐之PVE系统配置及核显SRIOV直通 目前PVE版本更新为8.2,本文进行了相应修改,由于编辑器太难用,不再另行更新,详情请参考博客原文! 本人博客原文请参见:【PVE】All in One 的快乐之系统配置及核显SR-IOV直通 | 云留月的技术小站 (cloudstaymoon.com) (搭配原文使用效果更佳哦!!!不确定复制粘贴时格式是否调整正确,实在无力吐槽小破站的编辑器了,太难用了,基本的MD语法都不支持) 教程参考B站UP主爱折腾的老高,感谢大佬持续产出优秀折腾经验,吾辈楷模。视频link:畅网N100十二代低功耗多网口小主机测评 开箱/拆解/烤机/温度/功耗/12代PVE安装简单避坑/SRIOV核显直通/硬解遇到编译问题时参考的解决方案:https://github.com/strongtz/i915-sriov-dkms/issues/151感谢makazeu 大佬提供的解决方案!转载本文请注明出处,互联网开放精神,你我共享! 一、系统配置1.1 配置前的准备系统配置之前,检查下BIOS的这些功能是否正确开启: Intel VMX虚拟化技术 (需要开启) VT-d (需要开启) SR-IOV (需要开启) IOMMU (需要开启) VMD setup menu (需要关闭) 1.2 安装PVE(略)1.3 整合PVE存储空间(可选)重要提醒:以下步骤误操作容易导致PVE崩溃,请在刚装完PVE系统后进行操作,不建议已经组好All in One的用户进行操作,后果自行承担!! 1.3.1 loacl和local-lvm两个分区合二为一查询当前local的大小 df -h /dev/mapper/pve-root这个是系统自动给local的空间 进入到PVE节点的Shell输入以下命令(删除pve/data路径下的local-lvm逻辑卷) lvremove pve/data 输入完之后会提示是否确定删除,此时按y回车 继续输入以下命令(将所有系统盘可用空间全部交由local这一个逻辑卷分配) lvextend -l +100%FREE -r pve/root 继续输入以下命令(使其适应已经调整大小的逻辑卷) resize2fs /dev/mapper/pve-root 查询是否扩容成功 df -h 成功扩容接下来删除local-lvm点数据中心 ——> 存储 ——> local-lvm ——> 移除 ——> local ——> 编辑 ——> 内容(所有选项全部选上) ——> OK PVE系统基础配置 1.4 PVE更换软件源因为众所周知的原因,PVE无法连上国外的官方源,因此替换为国内的镜像源,以便更新相关软件。 1.4.1 换国内源备份PVE自带的软件包源文件 cp /etc/apt/sources.list /etc/apt/sources.list_bak 北方小伙伴选择清华大学源,南方小伙伴选择中科大源,二选一 1.4.2 换软件包源# 编辑源配置文件 nano /etc/apt/sources.list 进入到nano编辑器后,将每一行前面加上’#‘注释掉,例如下面这这样 #deb http://ftp.debian.org/debian bookworm main contrib #deb http://ftp.debian.org/debian bookworm-updates main contrib # security updates #deb http://security.debian.org bookworm-security main contrib # 添加中科大源(在被注释掉的文本下面添加以下内容) deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free deb https://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free deb https://mirrors.ustc.edu.cn/debian-security/ bookworm-security main contrib non-free 键盘组合键ctrl+x再输入y 回车保存退出 # 添加清华大学源(中科大源和清华大学源二选一) deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware 键盘组合键ctrl+x再输入y 回车保存退出 1.4.3 编辑企业源nano /etc/apt/sources.list.d/pve-enterprise.list 将其中原有的源前面 # 注释掉,变为: #deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise 北方添加清华源: deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/pve bookworm pve-no-subscription 南方添加中科大源: deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription 键盘组合键ctrl+x再输入y 回车保存退出 1.4.4 添加pve无订阅源nano /etc/apt/sources.list.d/pve-no-subscription.list 粘贴以下pve中科大的无订阅源 deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription 键盘组合键ctrl+x再输入y 回车保存退出 1.4.5 更新软件包apt update 修复源401错误(如无401报错可忽略此条): nano /etc/apt/sources.list.d/ceph.list 将其中原有的proxmox句首加 # 注释掉 变为:#deb http://download.proxmox.com/debian/ceph-quincy bookworm no-subscription 添加中科大ceph源: deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription 键盘组合键ctrl+x再输入y 回车保存退出 再次更新 apt update 1.4.6更换LXC容器源中科大源和清华大学源二选一 备份PVE自带的LXC容器源文件 cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back 更换为中科大源: sed -i 's|http://download.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm 更换为清华大学源: sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm 重启PVE(使所有更换的源文件生效) reboot 二、SRIOV核显虚拟化理论来说,目前仅有Intel 11(Tigerlake)/12/13/14代带核显CPU支持SRIOV核显虚拟化,非此类CPU不能SRIOV虚拟化。 核显SRIOV优缺点对比 2.1 升级内核头文件headers查看内核版本 uname -a i915-sriov目前支持6.1~6.5内核,根据uname-a反馈信息调整 header 的版本信息 下载安装 headers,如果遇到报错,或以前执行过dkms安装都可执行以下命令 apt install pve-headers-6.5.13-5-pve apt install pve-kernel-6.5.13-5-pve proxmox-boot-tool kernel pin 6.5.13-5-pve proxmox-boot-tool refresh 重启PVE使其生效 reboot 2.2 编译i915-sriov驱动2.2.1 安装 git工具 及 dkmsKERNEL=$(uname -r); KERNEL=${KERNEL%-pve} apt install -y git build-* dkms clone代码库(下载源码时请保证能连接上github,修改dns可以连上,具体百度) git clone https://github.com/strongtz/i915-sriov-dkms.git 2.2.2 添加安装sriov模块经过测试发现这里有个坑!!!6.5.13-5这个内核版本使用大佬的库直接编译的话会出以下报错: /var/lib/dkms/i915-sriov-dkms/6.5/build/drivers/gpu/drm/i915/display/intel_dp_mst.c:86:35: error: too many arguments to function ‘drm_dp_calc_pbn_mode’ 86 | crtc_state->pbn = drm_dp_calc_pbn_mode(adjusted_mode->crtc_clock, | ^~~~~~~~~~~~~~~~~~~~ In file included from /var/lib/dkms/i915-sriov-dkms/6.5/build/drivers/gpu/drm/i915/display/intel_display_types.h:36, from /var/lib/dkms/i915-sriov-dkms/6.5/build/drivers/gpu/drm/i915/display/intel_dp_mst.c:40: ./include/drm/display/drm_dp_mst_helper.h:835:5: note: declared here 835 | int drm_dp_calc_pbn_mode(int clock, int bpp); | ^~~~~~~~~~~~~~~~~~~~ /var/lib/dkms/i915-sriov-dkms/6.5/build/drivers/gpu/drm/i915/display/intel_dp_mst.c: In function ‘intel_dp_mst_mode_valid_ctx’: /var/lib/dkms/i915-sriov-dkms/6.5/build/drivers/gpu/drm/i915/display/intel_dp_mst.c:906:17: error: too many arguments to function ‘drm_dp_calc_pbn_mode’ 906 | drm_dp_calc_pbn_mode(moll_pbn) { | ^~~~~~~~~~~~~~~~~~~~ ./include/drm/display/drm_dp_mst_helper.h:835:5: note: declared here 835 | int drm_dp_calc_pbn_mode(int clock, int bpp); | ^~~~~~~~~~~~~~~~~~~~ make[2]: *** [scripts/Makefile.build:251: /var/lib/dkms/i915-sriov-dkms/6.5/build/drivers/gpu/drm/i915/display/intel_dp_mst.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [/usr/src/linux-headers-6.5.13-5-pve/Makefile:2039: /var/lib/dkms/i915-sriov-dkms/6.5/build] Err or 2 make: *** [Makefile:234: __sub-make] Error 2 make: Leaving directory '/usr/src/linux-headers-6.5.13-5-pve' 下文已经将步骤更改为最新,理论上来说按照如下步骤操作即可成功编译。 如果下载失败可以点击此处下载intel_dp_mst.c cd i915-sriov-dkms/drivers/gpu/drm/i915/display/ mv intel_dp_mst.c intel_dp_mst.c.bak wget http://download.cloudstaymoon.com/cloudstaymoon/blog/intel_dp_mst.c cd ~/i915-sriov-dkms cp -a ~/i915-sriov-dkms/dkms.conf{,.bak} sed -i 's/"@_PKGBASE@"/"i915-sriov-dkms"/g' ~/i915-sriov-dkms/dkms.conf sed -i 's/"@PKGVER@"/"'"$KERNEL"'"/g' ~/i915-sriov-dkms/dkms.conf sed -i 's/ -j$(nproc)//g' ~/i915-sriov-dkms/dkms.conf cat ~/i915-sriov-dkms/dkms.conf 控制台输出如下结果 apt install --reinstall dkms -y dkms add .cd /usr/src/i915-sriov-dkms-$KERNEL dkms status 如果输出added则表示前期准备完成, 输入以下命令进行编译 dkms install -m i915-sriov-dkms -v $KERNEL -k $(uname -r) --force -j 1 dkms status 输出 如果失败了可以先运行以下命令,然后回到二、SRIOV核显虚拟化重新开始编译一次 rm -rf /var/lib/dkms/i915-sriov-dkms* rm -rf /usr/src/i915-sriov-dkms* rm -rf ~/i915-sriov-dkms 检查安装是否成功 输入以下命令检查是否成功 modinfo i915|grep vf 反馈如下表示成功parm: max_vfs:Limit number of virtual functions to allocate. (0 = no VFs [default]; N = allow up to N VFs) (uint) 2.2.3 设置直通和i915控制器编辑 grub 配置文件 nano /etc/default/grub 在 quiet 后添加 intel_iommu=on i915.enable_guc=3 i915.max_vfs=7 键盘组合键ctrl+x再输入y 回车保存退出 更新grub和initramfs update-grubupdate-initramfs -u 安装sysfsutils(对新手友好方便对VF核显数量设置) 不建议使用开机自启脚本rc.local,增加不必要的风险 apt install -y sysfsutils 2.2.4 设置SRIOV核显数量下面命令中sriov_numvfs = 5的5代表SRIOV核显数量,可自定义设定,最多设置7个设置为1个性能最强,如果设置为7个,那么每一个的性能只有14%(所以这里大家根据自身核显性能自行考量) echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3" > /etc/sysfs.conf 重启使其生效 reboot 重启完之后检查是否成功 通过PVE节点的Shell输入以下命令查看SRIOV核显直通是否成功 lspci | grep VGA 如果成功则会输出以下数据 00:02.0 VGA compatible controller: Intel Corporation Alder Lake-S GT1 (rev 0c) 00:02.1 VGA compatible controller: Intel Corporation Alder Lake-S GT1 (rev 0c) 00:02.2 VGA compatible controller: Intel Corporation Alder Lake-S GT1 (rev 0c) 00:02.3 VGA compatible controller: Intel Corporation Alder Lake-S GT1 (rev 0c) 00:02.4 VGA compatible controller: Intel Corporation Alder Lake-S GT1 (rev 0c) 00:02.5 VGA compatible controller: Intel Corporation Alder Lake-S GT1 (rev 0c) 00:02.x VGA 这就是刚刚虚拟出来的核显了 注意:物理核显02.0不能直通出去(可以映射给LXC),否则物理核显本体被独占,所有虚拟核显消失。本教程结束,接下来就可以按照自己的需求安装虚拟机了。 |
CopyRight 2018-2019 实验室设备网 版权所有 |