如何在 Linux 中检查 HBA 名称、品牌、型号、固件、驱动程序版本

注意,本文的命令可能会因所使用的 HBA 类型而异,这里的示例针对的是 Emulex HBA 卡,不一定适用于Qlogic 卡

下面的命令将为我们提供连接的 HBA 详细信息

# lspci -nn | grep -i Fibre
04:00.2 Fibre Channel [0c04]: Emulex Corporation OneConnect 10Gb FCoE Initiator (be3) [19a2:0714] (rev 01)
04:00.3 Fibre Channel [0c04]: Emulex Corporation OneConnect 10Gb FCoE Initiator (be3) [19a2:0714] (rev 01)

可以看到,我们有一张 Emulex HBA卡

如果还没有安装 sysfsutils rpm包,则把它安装上。

现在执行下面的命令。
这将为我们提供有关 HBA 卡的大量信息。

# systool -a -v -c scsi_host | egrep "Class Device|model|version|proc_name|info|fwrev"
  Class Device = "host0"
  Class Device path = "/sys/devices/pci0000:00/0000:00:02.0/0000:04:00.2/host0/scsi_host/host0"
    bg_info             = "BlockGuard Disabled"
    fwrev               = "11.1.183.23, sli-4:0:1"
    info                = "HP FlexFabric 10Gb 2-port 554FLB Adapter on PCI bus 04 device 02 irq 36 port 1 Logical Link Speed: 8000 Mbps"
    lpfc_drvr_version   = "Emulex LightPulse Fibre Channel SCSI driver 11.2.0.6"
    modeldesc           = "HP FlexFabric 10Gb 2-port 554FLB Adapter"
    modelname           = "554FLB"
    npiv_info           = "NPIV Physical"
    option_rom_version  = "11.1.183.23"
    proc_name           = "lpfc"
  Class Device = "host1"
  Class Device path = "/sys/devices/pci0000:00/0000:00:02.0/0000:04:00.3/host1/scsi_host/host1"
    bg_info             = "BlockGuard Disabled"
    fwrev               = "11.1.183.23, sli-4:0:1"
    info                = "HP FlexFabric 10Gb 2-port 554FLB Adapter on PCI bus 04 device 03 irq 41 port 2 Logical Link Speed: 8000 Mbps"
    lpfc_drvr_version   = "Emulex LightPulse Fibre Channel SCSI driver 11.2.0.6"
    modeldesc           = "HP FlexFabric 10Gb 2-port 554FLB Adapter"
    modelname           = "554FLB"
    npiv_info           = "NPIV Physical"
    option_rom_version  = "11.1.183.23"
    proc_name           = "lpfc"

这些字段是从以下位置填充的,因此如果我们希望获得更多信息,可以直接浏览这些文件

# ls /sys/class/scsi_host/host*
# ls /sys/class/fc_host/host*

获取模型名称

# grep -v "zZzZ" /sys/class/scsi_host/host*/model*
/sys/class/scsi_host/host0/modeldesc:HP FlexFabric 10Gb 2-port 554FLB Adapter
/sys/class/scsi_host/host0/modelname:554FLB
/sys/class/scsi_host/host1/modeldesc:HP FlexFabric 10Gb 2-port 554FLB Adapter
/sys/class/scsi_host/host1/modelname:554FLB

获取驱动程序名称

# grep -v "zZzZ" /sys/class/scsi_host/host*/proc_name
/sys/class/scsi_host/host0/proc_name:lpfc
/sys/class/scsi_host/host1/proc_name:lpfc

现在既然我们知道了驱动程序的名字,我们就可以获得更多关于驱动程序的信息

# modinfo lpfc
filename:       /lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/drivers/scsi/lpfc/lpfc.ko.xz
version:        0:11.2.0.6
author:         Emulex Corporation - tech.support@emulex.com
description:    Emulex LightPulse Fibre Channel SCSI driver 11.2.0.6
license:        GPL
retpoline:      Y
rhelversion:    7.4
srcversion:     61B09422B7415BF170E0D67

注意:尽管大多数光纤通道驱动程序在 sysfs 中注册了型号名称和描述,但并非所有的 scsi 驱动程序都会。
例如,智能数组、SIL2424 和 ATA HBA,如上述配置所示,不提供该信息。
对于这些类型的卡,我们必须使用 lspci -k 来检索信息。

日期:2020-06-02 22:18:24 来源:oir作者:oir