|
本帖最后由 灭魔猎人 于 2023-7-3 23:48 编辑
i915 SR-IOV插件
对于不需要硬盘启动的同学,可以直接安装插件来启用SR-IOV,GitHub地址:https://github.com/zhtengw/unraid-i915-sriov
在unraid插件安装页面,输入此链接https://raw.githubusercontent.com/zhtengw/unraid-i915-sriov/master/i915-sriov.plg安装插件,然后重启即可使用。
插件已上架unRAID Community Application,也可以在APP页面搜索安装。
插件支持unRAID版本:6.10.0~6.12.2
如果需要硬盘启动,或者网络不够通畅的同学,请往下看。
基于https://www.right.com.cn/forum/thread-8279586-1-4.html,做一个开箱即用的版本。
温馨提示:
1. 数据宝贵,折腾前务必做好备份!
2. 由于我硬件条件有限,不能测试所有情况,遇到问题可以回帖,让大家帮忙分析。
v1.2.2的变化(2023-7-3):
1、把config/go文件中的UNRAID_GUID改名为UNRAID_UUID,修复部分情况下无法开心的问题。
2、添加unRAID-6.12.2的整合包
v1.2.1的变化(2023-4-1):
1、更新内置i915-sriov-lite插件
1) 解决有多个Intel显卡时信息页面出错的问题;
2) 安装插件时备份libvirt.php文件;
3) 当机器类型是q35时,把PCI地址的slot设为0;
v1.2的变化(2023-3-30):
1、内置i915-sriov-lite插件,包括SR-IOV的设置页面,VM设置页面补丁和启动项更新;
2、启用SR-IOV无需再更改/boot/config/go文件;
3、修复PF主机不能硬解的问题;
4、新添加NVME专用的启动项,避免升级官方版本后无法启动;
v1.1的变化(2023-3-19):
1、添加bzdev-nvme,用于支持从NVME SSD启动;
从v1.0升级到v1.1的方法:
1、把v1.1中的以下文件拷贝覆盖原来的:
bzimage
bzimage.sha256
bzmodules
bzmodules.sha256
bzdev-nvme
syslinux/syslinux.cfg
v1.0的变化(2023-3-9):
1、支持11代、12代Intel 核显的SR-IOV;
2、首次启动的时候先注释掉i915驱动的加载,不然可能会在启动信息里看不到IP。记下IP或配置好网络设置后再启用“modprobe i915”这行,参考config/go_first_boot;
3、config/go文件中“echo 2 > /sys/devices/pci0000:00/0000:00:02.0/sriov_numvfs”,是设置启用的虚拟核显的数量,只在unRAID作为主系统的时候有效。在unRAID作为虚拟机系统的时候(比如主系统是PVE,虚拟机系统安装unRAID的情况),可以注释掉这行;
4、正常安装到U盘的时候,要把“UNRAID_GUID=”后面的数值改成自己U盘的GUID;
5、支持在SATA类型的硬盘安装,参考config/go_hd_boot_guest,此时不要更改GUID。
附图1:i3-12100 SR-IOV
附图2:NVME固态硬盘启动
下载链接(v1.2.2):
说明:两个版本的整合包我个人修改的部分是相同的,unRAID-6.11.5和unRAID-6.12.2的区别请关注unRAID官方的更新说明
1、unRAID-6.12.2-aten_v1.2.2
度盘:https://pan.baidu.com/s/1J9s2fvbAb20argKUwi-7zg
提取码:00qh
123盘:https://www.123pan.com/s/o5YbVv-EPK3H.html
提取码:Bra4
2、unRAID-6.11.5-aten_v1.2.2
度盘:https://pan.baidu.com/s/1XMNt77JvnrnQG0I_7sT0-w
提取码:4ei7
123盘:https://www.123pan.com/s/o5YbVv-kPK3H.html
提取码:6Yna
参考链接:
1、unRAID 6.11.5 softoroom版
2、支持SRIOV的i915驱动
3、支持核显SRIOV的unRAID内核
4、unRAID硬盘启动
附录 A. 在虚拟机中分配核显VF的流程(
以下内容只在v1.0和v1.1有用,v1.2版本不再需要)
1. 太长不看版:
在config/go文件中添加一行:
- sed -i "s/\(strSpecialAddress.*\)\$gpu_function/\1"0"/" /usr/local/emhttp/plugins/dynamix.vm.manager/include/libvirt.php
复制代码 重启unRAID后,重新分配一下虚拟机的显卡(即在虚拟机设置中,显卡一项切换到Virtual,保存,再切换回VF显卡,保存),即可让VF显卡在虚拟机系统中识别。
2. 图文说明:
有朋友回帖说给虚拟机分配了VF,但虚拟机里面看不到设备,这个是由于UNRAID自动生成的配置文件有误导致的,下面我简述一下给虚拟机分配VF的流程。
1) 在“工具->系统设备”,把分配出来的VF前的勾打上,用于直通;
2) 打开虚拟机设置,在显卡选项(Graphics Card)中选中其中一个VF(例如选0000:00:02.1),然后点更新(UPDATE);
3) 回到虚拟机设置,点开右上角的XML视图(FORM VIEW),根据PCI设备地址找到直通的VF的信息,这里是
- <hostdev mode='subsystem' type='pci' managed='yes'>
- <driver name='vfio'/>
- <source>
- <address domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
- </source>
- <alias name='hostdev0'/>
- <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
- </hostdev>
复制代码 会发现下面那行<address>与<source>括起来的<address>是一模一样的,这就是导致虚拟机里看不到设备的原因,我们修改下面那行,把function='0x1'改为0x0(不管你的是0x2还是多少,都改成0x0),修改后这几行是这样的
- <hostdev mode='subsystem' type='pci' managed='yes'>
- <driver name='vfio'/>
- <source>
- <address domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
- </source>
- <alias name='hostdev0'/>
- <address type='pci' domain='0x0000' bus='0x06' slot='0x10' function='0x0'/>
- </hostdev>
复制代码 然后点更新(UPDATE)。
4) 启动虚拟机,这个显卡设备就出现在设备管理器里了,安装好对应驱动(windows去intel官网下载安装,linux要编译安装i915-sriov),显示设备就可用了。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|