分享下这两天折腾pantherlake和1340p上核显sriov的结果

去年买了t14p2025款, 自带的arc140T显卡感觉实际上还是前代mtl的马甲, "具有支持sriov的能力". 花了不少时间折腾,问题不少. 7月27日26款388H的t14p终于上市, 首发重金购入.
我之前的认知是linux上兼容性适配比较慢, 去年电脑都没敢首发买, 等了几个月才入手, 结果没几个月就被intel背刺, xe和sriov仅支持新的pantherlake. :joy:

笔记本部分

现在安装好系统默认就是启用xe模块了. sriov配置也很简单.
启动参数加入:

intel_iommu=on iommu=pt xe.max_vfs=1

然后写一个serivce文件,在进入图形界面之前把vf创建出来就可以了. 一定要在图形界面之前创建vf, 否则图形界面会卡住.

[Unit]
Description=Create Intel Xe SR-IOV VF and bind to vfio-pci
After=systemd-modules-load.service
After=systemd-udev-settle.service
Before=display-manager.service
Before=libvirtd.service

[Service]
Type=oneshot
RemainAfterExit=yes

ExecStart=/bin/bash -c '\
set -e; \
modprobe vfio-pci; \
echo 8086 b082 > /sys/bus/pci/drivers/vfio-pci/new_id || true; \
if [ "$(cat /sys/bus/pci/devices/0000:00:02.0/sriov_numvfs)" != "1" ]; then \
echo 1 > /sys/bus/pci/devices/0000:00:02.0/sriov_numvfs; \
fi; \
for i in {1..10}; do \
if [ -e /sys/bus/pci/devices/0000:00:02.1 ]; then \
break; \
fi; \
sleep 1; \
done; \
echo 0000:00:02.1 > /sys/bus/pci/drivers/xe/unbind; \
echo 0000:00:02.1 > /sys/bus/pci/drivers/vfio-pci/bind \
'

[Install]
WantedBy=multi-user.target

kvm虚拟机里面直接把这个0000:00:02.1 加进去,然后装官方驱动即可.
需要注意的是设备里面

<hostdev mode="subsystem" type="pci" managed="no">

这个managed一定是no, 否则关机的时候死机. sol 说可能是libvirtd对reset的处理存在bug. 反正我也是一直开着用, 也无所谓.

NAS部分

上周之前做nas用的nuc11总是无故重启, 折腾半天发现是我为了远程开关机,接了个小米插头在上面. 7x24小时的压力这个玩具插头扛不住挂了, 总是在不断的通电断电,导致nuc11 电源部分芯片可能损伤了.过几分钟就重启一次. 于是购入nuc13. 处理器是1340p.
这个nuc通过

intel_iommu=on xe.max_vfs=1 xe.force_probe=a7a0 module_blacklist=i915

和上面那个service文件可以创建vf没问题, 但是这个vf在win11里面装驱动直接code43, 换了几个驱动,包括官网的驱动都不行, 全都是code43. 现在暂时没辙了. 求高人指导一下.

3 Likes