Bug 127818 - Qlogic driver won't compile in RedHat 3 ES
Qlogic driver won't compile in RedHat 3 ES
Status: CLOSED WORKSFORME
Product: Red Hat Enterprise Linux 3
Classification: Red Hat
Component: kernel (Show other bugs)
3.0
i686 Linux
medium Severity medium
: ---
: ---
Assigned To: Tom Coughlan
Brian Brock
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2004-07-14 06:21 EDT by Xavier Gonzalez
Modified: 2007-11-30 17:07 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2004-07-14 11:38:45 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Xavier Gonzalez 2004-07-14 06:21:58 EDT
I´m running RH ES 3 in Proliant 360 server with a HP fca2214 HBA 
(qlogic) adapter, the .rpm drivers included with the array (MSA 1000) 
are for RedHat AS 2.1 with kernel 2.4.7 so I had to create a driver 
from source. 

RPM Prerequisites: (As stated in HP MSA 1000 manual)
# rpm -q kernel-source
kernel-source-2.4.21-4.EL
# rpm -q glibc-kernheaders
glibc-kernheaders-2.4-8.34

I tried to compile both the 6.06.50 version and the 7.00.03 version 
with SMP support and no matter what I do I always get an instant 
error 



Steps to Reproduce:
1.Download Qlogic drivers 
http://download.qlogic.com/drivers/19696/qla2x00-v7.00.03-fo-dist.tgz
2. Follow instructions to compile in qlogic/README.qla2x00
3. make (all | qla2200.o | qla2300.o) SMP=1
  
Actual results:

In file included from /usr/src/linux-2.4/include/linux/spinlock.h:56,
                 from /usr/src/linux-2.4/include/linux/module.h:11,
                 from qla2x00.c:36,
                 from qla2200.c:43:
/usr/src/linux-2.4/include/asm/spinlock.h:9: invalid suffix on 
integer constant
/usr/src/linux-2.4/include/asm/spinlock.h:9: syntax error before 
numeric constant
/usr/src/linux-2.4/include/asm/spinlock.h:10: `printk_R_ver_str' 
declared as function returning a function
/usr/src/linux-2.4/include/asm/spinlock.h:10: warning: function 
declaration isn't a prototype
In file included from /usr/src/linux-2.4/include/linux/prefetch.h:13,
                 from /usr/src/linux-2.4/include/linux/list.h:6,
                 from /usr/src/linux-2.4/include/linux/module.h:12,
                 from qla2x00.c:36,
                 from qla2200.c:43:
/usr/src/linux-2.4/include/asm/processor.h:61: warning: parameter 
names (without types) in function declaration
/usr/src/linux-2.4/include/asm/processor.h:61: field 
`loops_per_jiffy_R_ver_str' declared as a function
/usr/src/linux-2.4/include/asm/processor.h:84: invalid suffix on 
integer constant
/usr/src/linux-2.4/include/asm/processor.h:84: syntax error before 
numeric constant
/usr/src/linux-2.4/include/asm/processor.h:84: warning: function 
declaration isn't a prototype
In file included from /usr/src/linux-2.4/include/linux/prefetch.h:13,
                 from /usr/src/linux-2.4/include/linux/list.h:6,
                 from /usr/src/linux-2.4/include/linux/module.h:12,
                 from qla2x00.c:36,
                 from qla2200.c:43:
/usr/src/linux-2.4/include/asm/processor.h:270:1: warning: "EISA_bus" 
redefined
In file included from /usr/src/linux-
2.4/include/linux/modversions.h:137,
                 from <command line>:1:
/usr/src/linux-2.4/include/linux/modules/i386_ksyms.ver:81:1: 
warning: this is the location of the previous definition
/usr/src/linux-2.4/include/asm/processor.h:272: warning: parameter 
names (without types) in function declaration
In file included from qla2x00.c:36,
                 from qla2200.c:43:
/usr/src/linux-2.4/include/linux/module.h:190: invalid suffix on 
integer constant
/usr/src/linux-2.4/include/linux/module.h:190: syntax error before 
numeric constant
/usr/src/linux-2.4/include/linux/module.h:190: 
`inter_module_register_R_ver_str' declared as function returning a 
function
/usr/src/linux-2.4/include/linux/module.h:190: warning: function 
declaration isn't a prototype
/usr/src/linux-2.4/include/linux/module.h:191: invalid suffix on 
integer constant
/usr/src/linux-2.4/include/linux/module.h:191: syntax error before 
numeric constant
/usr/src/linux-2.4/include/linux/module.h:191: 
`inter_module_unregister_R_ver_str' declared as function returning a 
function
/usr/src/linux-2.4/include/linux/module.h:191: warning: function 
declaration isn't a prototype
/usr/src/linux-2.4/include/linux/module.h:192: 
`inter_module_get_R_ver_str' declared as function returning a function
/usr/src/linux-2.4/include/linux/module.h:192: warning: parameter 
names (without types) in function declaration
/usr/src/linux-2.4/include/linux/module.h:193: 
`inter_module_get_request_R_ver_str' declared as function returning a 
function
/usr/src/linux-2.4/include/linux/module.h:193: warning: parameter 
names (without types) in function declaration
/usr/src/linux-2.4/include/linux/module.h:194: invalid suffix on 
integer constant
/usr/src/linux-2.4/include/linux/module.h:194: syntax error before 
numeric constant
/usr/src/linux-2.4/include/linux/module.h:194: 
`inter_module_put_R_ver_str' declared as function returning a function
/usr/src/linux-2.4/include/linux/module.h:194: warning: function 
declaration isn't a prototype
/usr/src/linux-2.4/include/linux/module.h:203: 
`try_inc_mod_count_R_ver_str' declared as function returning a 
function
/usr/src/linux-2.4/include/linux/module.h:203: warning: parameter 
names (without types) in function declaration
In file included from qla2200.c:43:
qla2x00.c: In function `qla2x00_detect':
qla2x00.c:1964: warning: implicit declaration of function 
`inter_module_get_request_Rsmp_b69f826b'
qla2x00.c:2374: warning: implicit declaration of function 
`inter_module_put_Rsmp_6b99f7d8'
make: *** [qla2200.o] Error 1

Expected results:

A module for qlogic2x00 HBA should have compiled


Additional info:

#lspci
01:01.0 Fibre Channel: QLogic Corp. QLA2312 Fibre Channel Adapter 
(rev 02)

The binary drivers in rpm format are only for RH AS 2.1, I can't find 
any rpm for RH ES 3.0 (Taroon)
Comment 1 Arjan van de Ven 2004-07-14 06:24:56 EDT
1) we already ship such qlogic drivers as part of our kernel
2) this looks quite like a case of qlogic having quite broken
makefiles, nothing we can do about it
Comment 2 Xavier Gonzalez 2004-07-14 06:50:53 EDT
Ok, I wasn't sure if the drivers with the MSA 1000 CD or qlogic 
drivers were the only ones valid for this setup.

I have in:
/usr/src/linux-2.4/drivers/addon/qla2200

qla2300.c
qla2x00.c

Which one should I chose?. And what will be the procedure to compile 
only a module?
Comment 3 Arjan van de Ven 2004-07-14 07:23:34 EDT
No need to compile it actually, we ship them precompiled for you
already :)

just modprobe qla2300 .... and done ;)
Comment 4 Xavier Gonzalez 2004-07-14 07:42:21 EDT
Great!. For some reason unknown to me the directory 
under /lib/modules/..../qla2000 was empty  I had to uninstall the 
kernel-smp rpm (rpm -e + rpm -ivh and the module came in).

So now i modprobe and do a:

# cat /proc/scsi/qla2300/0

QLogic PCI to Fibre Channel Host Adapter for QLA2340         :
        Firmware version:  3.02.13, Driver version 6.06.00b11
Entry address = f89e3060
HBA: QLA2312 , Serial# L62825
Request Queue = 0x34df0000, Response Queue = 0x34de0000
Request Queue count= 512, Response Queue count= 512
Total number of active commands = 0
Total number of interrupts = 1
Total number of IOCBs (used/max) = (0/600)
Total number of queued commands = 0
    Device queue depth = 0x20
Number of free request entries = 510
Number of mailbox timeouts = 0
Number of ISP aborts = 0
Number of loop resyncs = 0
Number of retries for empty slots = 0
Number of reqs in pending_q= 0, retry_q= 0, done_q= 0, scsi_retry_q= 0
Host adapter:loop state= <READY>, flags= 0x48e0813
Dpc flags = 0x0
MBX flags = 0x0
SRB Free Count = 4096
Link down Timeout = 008
Port down retry = 016
Login retry count = 016
Commands retried with dropped frame(s) = 0


SCSI Device Information:
scsi-qla0-adapter-node=200000e08b1149be;
scsi-qla0-adapter-port=210000e08b1149be;
scsi-qla0-target-0=500805f3000cd2f1;

SCSI LUN Information:
(Id:Lun)  * - indicates lun is not registered with the OS.
( 0: 0): Total reqs 1, Pending reqs 0, flags 0x0*, 0:0:81,


I suppose this output is fine but my HP ACU (Array Configuration 
Utility) only shows the integrated controller and not the fibre 
channel one.
So do I have to do something more in this front or I start bugging 
HP? ;-). And wich is the best way to ensure this module is loaded at 
boot time (modprobe in rc.local?, modules.conf?).

Thanks for your great help.
Comment 5 Rik van Riel 2004-07-14 08:12:05 EDT
I believe the ACU utility needs the qla2200_conf module, but since I'm
really not sure I reassigned the bug to the person who is sure to
know. Tom, could you please give Xavier a hint ? ;)
Comment 6 Xavier Gonzalez 2004-07-14 09:39:31 EDT
Anyway with your guide I've managed to see my MSA 1000 , I configured 
the MSA 1000 via serial port (just forget the ACU) so for me it's OK.

..[dmsg extract]..

scsi: unknown type 12
  Vendor: COMPAQ    Model: MSA1000           Rev: 2.38
  Type:   Unknown                            ANSI SCSI revision: 04
initializing plug timer for queue f6ae3818
Starting timer : 1 1
blk: queue f6ae3818, I/O limit 4294967295Mb (mask 0xffffffffffffffff)
  Vendor: COMPAQ    Model: MSA1000 VOLUME    Rev: 2.38
  Type:   Direct-Access                      ANSI SCSI revision: 04
initializing plug timer for queue f6ae3618
Starting timer : 1 1
blk: queue f6ae3618, I/O limit 4294967295Mb (mask 0xffffffffffffffff)
scsi(0:0:0:0): Enabled tagged queuing, queue depth 64.
scsi(0:0:0:1): Enabled tagged queuing, queue depth 64.
Attached scsi disk sda at scsi0, channel 0, id 0, lun 1

# fdisk /dev/sda

Disk /dev/sda: 291.3 GB, 291347642880 bytes
255 heads, 63 sectors/track, 35421 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes


So all's well that ends well. Thanks. Now comes the hard part. ;-)
Comment 7 Tom Coughlan 2004-07-14 11:38:45 EDT
The best way to get the module to load at boot time is to add it to
modules.conf. After you do this you must re-make the initrd (see
mkinitrd). If the qla2300 is present when you do the install, then the
installer should take care of all this for you.

I am not certain that the ACU supports MSA1000. Please check with HP.

The qla2300_conf.o module is needed for QLogic's SAN management tools.
 I'm not aware of any other uses.  If you need it, you will find that
it is also delivered, pre-compiled, starting with RHEL 3 update 2 (U2). 

Note You need to log in before you can comment on or make changes to this bug.