lputil does not discover emulex cards after upgrading to SLES9 SP3

  • 3827266
  • 19-Sep-2007
  • 27-Apr-2012

Environment

Novell Open Enterprise Server (Linux based)
SuSE Linux Enterprise Server (SLES) 9 Service Pack 3
Linux Kernel 2.6.5-7.267.smp
Emulex Host Adaptor
Emulex 8.0.16.17 HBA driver
Emulex HBAnywhere

Situation

lputil does not find adapters when run with the 2.0.9-1 ioctl kit (lpfc_2.6_ioctl_inbox-2.0.9-1) and recent (2.6.5-7.265 and above) SLES 9 errata kernels.

Error msg: lpfc driver is not loaded

This error occurred after upgrading the SLES9 SP3 kernel from 2.6.5-7.244-smp to 2.6.5-7.267-smp

The lpfc driver in SLES 9's 2.6.5-7.265 kernel, although named 8.0.16.17, contains a bug fix which includes a modification to lpfc_sli.h. This modification changes the layout of the lpfc_hba structure from what the 2.0.9 ioctl driver expects (because it pulls in the original 8.0.16.17's version of lpfc_sli.h).

Resolution

Upgrade to the 2.0.9-2 ioctl kit (lpfc_2.6_ioctl_inbox-2.0.9-2) using the steps outlined in the Emulex Driver and Utilities for Linux Version 8.0 User Manual

http://www.emulex.com/ts/downloads/linuxfc/rel/801617/pdf/manual.pdf

for Installing the Application Helper Module Kit into an Upgraded Kernel on pages 8-9.

Note

For this example, note that this current server has the 2.6.5-7.267-smp kernel loaded and lpfc_2.6_ioctl_inbox-2.0.9-1 and lputil does not see the adapters:

# uname -a

Linux L1 2.6.5-7.267-smp #1 SMP Wed Jun 21 10:50:51 UTC 2006 i686 i686 i386 GNU/Linux

# rpm -qa | grep lpf
  1. lpfc_2.6_ioctl_inbox-2.0.9-1

# /usr/sbin/lpfc/lputil

lpfc driver is not loaded
LightPulse Common Utility for Linux. Version 2.0a9 (8/11/2005).
Copyright (c) 2005, Emulex Corporation

Emulex Fibre Channel Host Adapters Detected: 0

MAIN MENU
1. List Adapters
2. Adapter Information
3. Firmware Maintenance
4. Reset Adapter

0. Exit

Enter choice => 0

Now boot into the original kernel that the lpfc_2.6_ioctl_module_kit-2.0.9-1 was installed under.
Note that lputil works again.
# uname -a
Linux L1 2.6.5-7.244-bigsmp #1 SMP Mon Dec 12 18:32:25 UTC 2005 i686 i686 i386 GNU/Linux
L1:~ # /usr/sbin/lpfc/lputil
LightPulse Common Utility for Linux. Version 2.0a9 (8/11/2005).
Copyright (c) 2005, Emulex Corporation
Emulex Fibre Channel Host Adapters Detected: 2
Host Adapter 0 (lpfc0) is an LP9802DC (Ready Mode)
Host Adapter 1 (lpfc1) is an LP9802DC (Ready Mode)

MAIN MENU

1. List Adapters
2. Adapter Information
3. Firmware Maintenance
4. Reset Adapter

0. Exit

Enter choice => 0

Now follow the steps for Installing the Application Helper Module Kit into an Upgraded Kernel.

Step 1) Copy the ioctl-install script to the temporary directory.

# cd /usr/src/lpfcdfc/
L1:/usr/src/lpfcdfc # cp ioctl-install /tmp

Step 2) Execute the ioctl-install script.

L1:/usr/src/lpfcdfc # /tmp/ioctl-install --uninstall
Emulex LPFC Application Helper Module Installer Version 1.16.1.4
Determining distribution type and kernel version ...
Checking for Emulex Application Helper Module packages ...
Removing LPFC Application Helper Module source RPM ...
Removing Emulex Application Helper Module startup script ...
elxlpfc 0:off 1:off 2:off 3:off 4:off 5:off
6:off
Looking for old Emulex Application Helper Modules to restore...
Old Emulex Application Helper Module has been restored.
Configuring /etc/modprobe.conf.local ...
Original saved as /etc/modprobe.conf.local.elx
Uninstallation complete.

Step 3) Upgrade the kernel and/or distribution.

Example 1: Boot into the new kernel.

L1:/usr/src/lpfcdfc # cd /boot
L1:/boot # rm initrd initrd.previous vmlinuz vmlinuz.previous
L1:/boot # ln -s initrd-2.6.5-7.267-smp initrd
L1:/boot # ln -s initrd-2.6.5-7.244-bigsmp initrd.previous
L1:/boot # ln -s vmlinuz-2.6.5-7.267-smp vmlinuz
L1:/boot # ln -s vmlinuz-2.6.5-7.244-bigsmp vmlinuz.previous
L1:/boot # cd /usr/src
L1:/usr/src # rm linux linux-obj
L1:/usr/src # ln -s linux-2.6.5-7.267 linux
L1:/usr/src # ln -s linux-2.6.5-7.267-obj linux-obj

Example 2: Installing the new kernel-source and new kernel rpms, if you have not already done so.

L1:/ # rpm -ivh kernel-source-2.6.5-7.267.i586.rpm
Preparing... ###########################################
[100%]
1:kernel-source ###########################################
[100%]
Changing symlink /usr/src/linux from linux-2.6.5-7.244 to linux-2.6.5-7.267
Changing symlink /usr/src/linux-obj from linux-2.6.5-7.244-obj to linux-2.6.5-7.267-obj

L1:/ # rpm -ivh kernel-smp-2.6.5-7.267.i586.rpm

Preparing... ###########################################
[100%]
1:kernel-smp ###########################################
[100%]
Setting up /lib/modules/2.6.5-7.267-smp
Root device: /dev/sda2 (mounted on / as reiserfs)
Module list: aic7xxx lpfc reiserfs
Kernel image: /boot/vmlinuz-2.6.5-7.267-smp
Initrd image: /boot/initrd-2.6.5-7.267-smp
Shared libs: lib/ld-2.3.3.so lib/libblkid.so.1.0 lib/libc.so.6
lib/libselinux.so.1 lib/libuuid.so.1.2
Modules: kernel/drivers/scsi/scsi_mod.ko
kernel/drivers/scsi/sd_mod.ko kernel/drivers/scsi/aic7xxx/aic7xxx.ko
kernel/drivers/scsi/scsi_transport_fc.ko
kernel/drivers/scsi/lpfc/lpfc.ko kernel/fs/reiserfs/reiserfs.ko
Including: udev
Bootsplash: SuSE-SLES (800x600)
Using grub, re-install of bootloader not required.
L1:/ #

Step 4) Reboot the system with the new kernel.

L1:/usr/src # reboot

# uname -a
Linux L1 2.6.5-7.267-smp #1 SMP Wed Jun 21 10:50:51 UTC 2006 i686 i686 i386 GNU/Linux

Step 5) Download the Application Helper Module Kit from the Emulex web site or copy it to the system from the installation CD.

Emulex Web Site http://www.emulex.com/

Step 6) Log on as 'root' to a terminal, and unpack the tarball with the following command:

# tar xzf lpfc_2.6_ioctl_module_kit-2.0.9-2.tar.gz

Step 7) Change to the directory that is extracted:

# cd lpfc_2.6_ioctl_module_kit-2.0.9-2

Step 8) Execute the 'lpfc-install' script with no options to install the new driver kit.

# ./ioctl-install
Emulex LPFC Application Helper Module Installer Version 2947
Determining distribution type and kernel version ...
Checking for old Emulex Application Helper Module ...
Checking minimum kernel requirements ...
Looking for kernel source package ...
Looking for compilers ...
Configuring /etc/modprobe.conf.local ...
Original saved as /etc/modprobe.conf.local.elx
Searching for LPFC DFC Application Helper Module source RPM from /kearnan/lpfc_2.6_ioctl_module_kit-2.0.9-2/lpfc_2.6_ioctl_module_kit-2.0.9-2/. ...
Installing package ...
Preparing... ###########################################
[100%]
1:lpfc_2.6_ioctl_inbox ###########################################
[100%]
Building lpfcdfc module .......
Loading LPFC DFC Driver ..
Installing Emulex Application Helper Module startup script ...
elxlpfc 0:off 1:off 2:on 3:on 4:on 5:on
6:off
Package installation complete
Installation complete.

Reboot the system to complete re-installation of the Emulex drivers.

# reboot

# uname -a
Linux L1 2.6.5-7.267-smp #1 SMP Wed Jun 21 10:50:51 UTC 2006 i686 i686 i386 GNU/Linux
# /usr/sbin/lpfc/lputil
LightPulse Common Utility for Linux. Version 2.0a9 (8/11/2005).
Copyright (c) 2005, Emulex Corporation
Emulex Fibre Channel Host Adapters Detected: 2
Host Adapter 0 (lpfc0) is an LP9802DC (Ready Mode)
Host Adapter 1 (lpfc1) is an LP9802DC (Ready Mode)

MAIN MENU

1. List Adapters
2. Adapter Information
3. Firmware Maintenance
4. Reset Adapter

0. Exit

Enter choice => 0