我有几个配备 QLogic Infiniband 卡 IBA7322 的 HP Blades Gen7,我想将它们与 CentOS 8 一起使用。我遇到的问题是找不到适合它们的驱动程序。我找到的所有信息要么是旧的,要么是链接不起作用(例如 marvell 下载链接)。
我可以用 lspci 看到该卡,但除此之外,我没有任何运气可以打开它(可以这么说)。
有人能给我指出这个问题的解决方法吗?
干杯。
编辑:
由于。。。导致的结果lspci -vv
:
01:00.0 InfiniBand: QLogic Corp. IBA7322 QDR InfiniBand HCA (rev 02)
Subsystem: Hewlett-Packard Company Device 178a
Physical Slot: 0
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 10
Region 0: Memory at fd400000 (64-bit, non-prefetchable) [size=4M]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [70] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0.000W
DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 4096 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
LnkCap: Port #0, Speed 5GT/s, Width x8, ASPM L0s, Exit Latency L0s <4us
ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 5GT/s, Width x8, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR-, OBFF Not Supported
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
AtomicOpsCtl: ReqEn-
LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [b0] MSI-X: Enable- Count=32 Masked-
Vector table: BAR=0 offset=00008000
PBA: BAR=0 offset=00009000
Capabilities: [100 v1] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
UESvrt: DLP- SDES+ TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
AERCap: First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
HeaderLog: 00000000 00000000 00000000 00000000
答案1
首先要获取相关硬件的 PCI 供应商和设备 ID。您的卡似乎是 1077:7322。快速查看Linux 驱动程序数据库告诉我该卡使用 ib_qib 驱动程序。
我查看了 RHEL 文档在 RHEL 8 中删除了驱动程序,但没有看到此驱动程序。但是,我启动了 RHEL 8 VM,该驱动程序不再存在,并且未在相应的内核配置中启用。但它存在于 RHEL 7 中。
在这种情况下,为了使用旧硬件,人们通常会使用埃尔雷波存储库,其中包含 RHEL 8 中缺少的 ib_qib 驱动程序(以及 Red Hat 放弃的其他几个驱动程序)。例如:
dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
dnf install kmod-ib_qib
答案2
经过多次尝试,我的朋友终于找到了解决办法,在 Rocky 8.5 上重新编译了 4.19 内核并启用了qib
驱动程序。它一直都在那里,只是没有在默认内核中编译。
现在我们让旧的 QLogic 卡重新工作了。它连接到运行子网管理器的 Mellanox Infiniband 交换机(天哪!)。
节点之间能够以 40 Gbps 的速度进行通信,并且还能够与更新的 100Gbps Mellanox ConnectX5 卡进行通信。
现在无限带宽领域一切都好!
希望这对某些人有帮助,如果有任何问题,我会尽力回答。请记住,我绝不是这些事情的专家。只是一个必须想出办法并让旧设备再次有用的人!