• VMware

    Learn about VMware virtualization for its products like vsphere ESX and ESXi, vCenter Server, VMware View, VMware P2V and many more

  • Linux

    Step by step configuration tutorials for many of the Linux services like DNS, DHCP, FTP, Samba4 etc including many tips and tricks in Red Hat Linux.

  • Database

    Learn installation and configuration of databases like Oracle, My SQL, Postgresql, etc including many other related tutorials in Linux.

  • How to check the HBA name, make, model, firmware, driver version in Linux

    In my earlier article I had given a bunch of commands to help understand dm multipath

    Tutorial/Cheatsheet: Begineer's Guide to Understanding Device Mapper Multipath for Linux
    NOTE: The commands to validate this may vary based on the type of HBA being used so I will show some commands and examples for Emulex HBA card where these commands can be used. I cannot assure if the same would work for a Linux machine with Qlogic card.

    Below command will give you the connected HBA detail
    # 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)

    With this we know we have a Emulex HBA





    Next install sysfsutils rpm if not installed already.

    Now use the below command. This will give you a bunch of information regarding your HBA card.
    # 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"

    These fields are populated from below location so if you wish to get any more information then navigate around all the files from this location
    # ls /sys/class/scsi_host/host*
    # ls /sys/class/fc_host/host*

    To get the Model Name
    # 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

    To get the driver name
    # 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

    Now since we know the driver name, we can get more information for our driver
    # 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

    NOTE: Although most Fibre Channel drivers register a model name and description within sysfs, not all scsi drivers will. For example, the Smart Array, SIL2424 and ATA HBA, as shown in the above configuration, do not supply that information. For those types of cards you must use lspci -k to retrieve the information.

    I hope the article was useful.

    Deepak Prasad

    is a techie and an author who is still trying to survive in this IT generation with very little knowledge he has on Linux/Unix, VMware, SAN Storage, Automation, networking etc

    You can follow him on Facebook or Google+

    Do you also have something to share here?

    Become an author and be a part of our GoLinuxHub Team, Click here for more information
    How to check the HBA name, make, model, firmware, driver version in Linux How to check the HBA name, make, model, firmware, driver version in Linux Reviewed by Deepak Prasad on Saturday, May 26, 2018 Rating: 5

    No comments:

    Powered by Blogger.