Find it

Loading...

Thursday, September 10, 2009

How to check if Linux has Fibre card installed or not?

I got a request to check if Linux box has f Fibre card installed or not…. So, thought of putting this information on my blog too. Below are few methods that, you can tell end user if underline Linux server has Fibre card installed.

# lspci | grep -i emulex
0b:00.0 Fibre Channel: Emulex Corporation Zephyr-X LightPulse Fibre Channel Host Adapter (rev 02)

<<<< For more details like the speed card is operating etc >>>>

# lspci -vv | less
Fibre Channel: Emulex Corporation Zephyr-X LightPulse Fibre Channel Host Adapter (rev 02)
Subsystem: Emulex Corporation Zephyr-X LightPulse Fibre Channel Host Adapter
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- Latency: 0, Cache Line Size 10
Interrupt: pin A routed to IRQ 217
Region 0: Memory at f9ff0000 (64-bit, non-prefetchable) [size=4K]
Region 2: Memory at f9fe0000 (64-bit, non-prefetchable) [size=256]
Region 4: I/O ports at 4000 [size=256]
Capabilities: [58] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [60] Message Signalled Interrupts: 64bit+ Queue=0/4 Enable-
Address: 0000000000000000 Data: 0000
Capabilities: [44] Express Endpoint IRQ 0
Device: Supported: MaxPayload 2048 bytes, PhantFunc 0, ExtTag+
Device: Latency L0s <4us, L1 <16us
Device: AtnBtn- AtnInd- PwrInd-
Device: Errors: Correctable- Non-Fatal+ Fatal+ Unsupported-
Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
Device: MaxPayload 512 bytes, MaxReadReq 4096 bytes
Link: Supported Speed 2.5Gb/s, Width x4, ASPM L0s, Port 0
Link: Latency L0s <4us, L1 unlimited
Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch-
Link: Speed 2.5Gb/s, Width x4
Capabilities: [100] Advanced Error Reporting
Capabilities: [12c] Power Budgeting

<<<< You can check if required driver is installed or not >>>>

# dmesg | grep -i emulex
Emulex LightPulse Fibre Channel SCSI driver 8.0.16.34
Copyright(c) 2003-2007 Emulex. All rights reserved.


Another way to check this out is check for /proc/scsi

Fibre channel is visible in the /proc/scsi hierarchy, but the exact path depends on the manufacturer (Emulex, Qlogic) of the Fibre Channel adapter + device driver. in my case it is as below -

# ls -l /proc/scsi/lpfc/0
-rw-r--r-- 1 root root 0 Sep 10 03:36 /proc/scsi/lpfc/0

Yet another option is to check if kernel module is installed or not

# lsmod | grep -i lpfc
lpfc 170561 0
scsi_transport_fc 12353 1 lpfc
scsi_mod 120269 5 scsi_dump,lpfc,scsi_transport_fc,cciss,sd_mod

5 comments:

  1. hi,

    how do i know compactible emulex hba card for redhat 6.1? kindly reply me to dolapo.okunola@cwlgroup.com

    Thanks

    ReplyDelete
  2. Thanks, this helped! Good detail.

    ReplyDelete
  3. Awesome.
    Another way which works on most linux is looking here:

    /sys/class/scsi_host/hostN/device/fc_host/hostN/port_name

    (N is the host channel of your scsi card).

    An example for me since I had 7 hostN channels

    [root@centos63node01 scsi_host]# for i in 0 1 2 3 4 5; do cat host$i/device/fc_host/host$i/port_name; done
    cat: host0/device/fc_host/host0/port_name: No such file or directory
    cat: host1/device/fc_host/host1/port_name: No such file or directory
    cat: host2/device/fc_host/host2/port_name: No such file or directory
    cat: host3/device/fc_host/host3/port_name: No such file or directory
    0x5001438003af1ffc
    0x5001438003af1b9e
    [root@centos63node01 scsi_host]#

    (so I have two HBA ports)

    ReplyDelete
  4. In RHEL 5.2,

    cat /sys/class/scsi_host/host0/device/fc_host:host0/port_name

    ReplyDelete