← Back to team overview

sslug-teknik team mailing list archive

Patches RH 9.0 kernel with latest aic79xx driver as module?

 

Hi

I'm a newbie to Linux in oh-so-many ways, but I'm in at the deep end, so
here goes ...

I have two RH 9.0 machines connected to a dual-host SCSI RAID array.  The
idea is to use OpenGFS and the "heartbeat" code from the Linux HA project
(http://www.linux-ha.org) to provide the World's most basic redundant file
server cluster.

The first hurdle was that the Maxtor Atlas 10K SCSI drive violates the SCSI
spec - I used Justin Gibbs' v1.3.11 aic79xx driver to get around this
problem.  Fine.  Now we have two machines which can both mount the shared
SCSI RAID array - and fall over each other because ext3 isn't a cluster file
system.  (By the way as of 15 September, v2.0.2 of the aic79xx driver is on
Justin's site --> see http://people.freebsd.org/~gibbs/linux/ for details)

On to OpenGFS (now on v0.3.0 also as of 15 September - is this a
coincidence?!).  There are some kernel patches against 2.4.20 in order for
OpenGFS to work.

BUT the first problem is that three hunks in the OpenGFS patch fail - in
fs.h, mm.h and buffers.c.  I can see where the problem is - RH 9.0 is a fork
of 2.4.20 (2.4.20-8, of course) so there are other changes over the base
2.4.20 source that the OpenGFS patches were generated from, I guess - but it
was trivial to manually change those three files.  I managed to get a
version of the kernel to build and boot, but watching the bootup shows that
the SCSI driver is at v1.0.0 - which is no good because of the Maxtor Atlas
10K SCSI drive problem!  The problem manifests itself as a gradual
deterioration in the drive's behaviour, until it drops off the SCSI bus.
Not good.

So, what I want to do is add the v1.3.11 aic79xx module to my custom build
of 2.4.20-8.  According to "Appendix A - Creating initrd.img file"
(http://www.redhat.com/mirrors/LDP/HOWTO/Kernel-HOWTO/create_initrd.html) in
RedHat's "The Linux Kernel HOWTO" this is as straightforward as copying
aic79xx.o into /initrd/lib ... But the next problem is how to build the
1.3.11 version of aic79xx as a module ...  Gibbs himself recommends using
either his RPM or a driver update diskette and not the source, because of
config and makefile issues.  Does anyone have any advice on how to go about
doing this, or a relatively painless way of integrating the v1.3.11 aic79xx
source without hacking makefiles?

Cheers

Daen

http://www.daen.dk