在 MSI TRX40 主板上启用 SR-IOV
最近继续折腾很早之前买的线程撕裂者(装机回顾)。主板用的是MSI TRX40 PRO 10G,BIOS里有IOMMU选项,显卡直通也一直正常所以没多想。直到最近想折腾一下网卡SR-IOV,然后GG:
1 | root# echo 1 > /sys/bus/pci/devices/0000:21:00.0/sriov_numvfs |
提示系统不支持 ARI (Alternative Routing-ID Interpretation)。看下PCIE根端口的状态,确实没开:
1 | root# lspci -vv -s 20:03.1 |
在网上搜了一圈以后发现这个设置应该在一个叫AMD CBS
的菜单里,然而这块主板并没有……
于是开始折腾“破解”BIOS设置,终于在浪费N个小时后发现一个叫 Universal AMD Form Browser (github) 的工具。尝试了一下确实可用。在CBS的NBIO菜单里把"ARI Support"和"ARI Enumeration"都Enable后就可以看到 ARIFwd
的减号变加号了。于是重新尝试,然而再次失败:
1 | kernel: cxgb4 0000:21:00.0: not enough MMIO resources for SR-IOV |
因为这个ARI功能是我们hack出来的,所以目测BIOS没有正确给VF预留足够的地址空间。只需要在内核参数加上pci=realloc
,让Linux重新分配地址空间即可。