updated 3w-9xxx module -- was: CentOS install prob

der.hans PLUGd at LuftHans.com
Fri Sep 21 11:26:53 MST 2007


Am 21. Sep, 2007 schwätzte R P Herrold so:

> On Thu, 20 Sep 2007, der.hans wrote:
>
>> I was able to boot the rescue image, load the 3ware module
>> and open up the initrd being used for the boots. The initrd
>> has the 3ware module as well as the scsi_mod driver and ext3
>> driver. It looks like everything is there.
>
> the latest 3-ware PCI-X cards need a later 3ware driver
> variant than centOS and their upstream presently ship.  One

Yup.

> installs with the driver disk (dd) option; one may also also

If one had a disk...

At first I was loading via a SATA drive I borrowed from another machine. I
then looked and found out the install shell has wget available. Bliss :).

I run pump to set up a network interface. I wget the driver package. I
unpack the driver package. I unpack the driver. I insmod the driver.

If I'm in the install, I switch back to the install.

If I'm in rescue mode I need to also mknod the nodes needed to see the
disk partitions. I don't know how to trigger whatever the normal drive
search tools use. I can't seem to get a shell early enough to install the
driver before the point where the nodes would be made.

> need to make a custom initrd with the altered module.  If not
> needed at boot time, one may be able to wait and let the usual
> module probing call it in as well, when a mount occurs.

Yeah. The problem, I think, is that I was was presuming the driver wasn't
already in the kernel tree, so when had the module in the initrd I figured
it was the driver I'd loaded. Now I think that's not the case and the
initrd has been loading the driver without support for the card.

> I doco the custom mkinitrd part generally at:
> 	http://www.owlriver.com/tips/driver-modules/

The problem is that mkinitrd was looking for things that weren't in the
chroot environment. Things like /bin/bash. Nothing insurmountable, I
think, but I was thinking I didn't need it, so I didn't want to expend a
bunch of wasted effort.

> I'll turn this piece into another 'tip' when it comes back
> around in my email spool.
>
>
> Additionally it turns out that the sources for the later
> 3-ware version are available from 3-ware, so that one may
> compile and add it to the tree traversed by the depmod, after
> moving the unwanted one away to another name:

Yeah, building a custom kernel is an option once I get the install done.
Getting the install working should be possible since I have a working
driver.

I will try again when I get a chance. Now that I think we know the actual
problem I should be able to compensate for it.

Any idea where the install puts the modules for creating the initrd? In
/lib/modules/$kernel_version/ like normal?

ciao,

der.hans

>
>
> as root:
>
> ... poke around a bit to see what is loaded
>
>   335  modprobe 3w-9xxx
>   336  locate  3w-9xxx
>
> ... examine and inventory what is present as to size and
> datestamp
>
>   337  ls -al \
> /lib/modules/2.6.18-8.1.8.el5/kernel/drivers/scsi/3w-9xxx.ko 	\
> /lib/modules/2.6.18-8.1.8.el5/updates/3w-9xxx.ko  		\
> /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/3w-9xxx.ko 	\
> /lib/modules/2.6.18-8.el5/updates/3w-9xxx.ko
>   338  lsmod | grep 3w
>   339  rmmod 3w_9xxx
>   340  lsmod | grep 3w
>   341  mv  \
> /lib/modules/2.6.18-8.1.8.el5/kernel/drivers/scsi/3w-9xxx.ko  \
> /lib/modules/2.6.18-8.1.8.el5/kernel/drivers/scsi/3w-9xxx.ko_
>   342  depmod -a
>
>
> as non-root:
>
>   273  ls
>   274  less 3w-9xxx-2.6.16kernel_9.4.1.2.tgz
>
> ... this was pulled from the 3-ware support site
>
>   275  tar zxf  3w-9xxx-2.6.16kernel_9.4.1.2.tgz
>   276  ls
>   277  cd driver/
>   278  ls
>   279  make
>
> ... the make dies because I needed the 'kernel-devel' package
> which was not present for some headers
>
>   280  ls
>   281  less Makefile
>   282  rpm -qa | grep kernel
>   283  rpm -ql kernel-headers
>   284  make
>   285  sudo yum provides 'source/drivers/scsi'
>   286  sudo yum -y install kernel-devel
>
> ... so I install the build dependency
>
>   287  ls
>   288  make
>   289  ls
>   290  history
>   291  find -name *.ko
>
> ... and a new kernel module results:
>
>   292  uname -a
>
> which I move into the proper location for the depmod to find:
>
>   293  sudo scp ./3w-9xxx.ko  /lib/modules/2.6.18-8.1.8.el5/updates/
>   295  sudo depmod -a
>   296  sudo /sbin/depmod -a
>   297  sudo /sbin/depmod -a -v
>
>
> Then, back as root:
>
> [root at hostname modules]# uname -a
> Linux hostname.yyy.lan 2.6.18-8.1.8.el5 #1 SMP Tue Jul
> 	10 06:39:17 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
> [root at hostname modules]# find -name '3w-9xxx*' | grep  '2.6.18-8.1.8.el5'
> ./2.6.18-8.1.8.el5/kernel/drivers/scsi/3w-9xxx.ko_
> ./2.6.18-8.1.8.el5/updates/3w-9xxx.ko
> [root at hostname modules]#
>
> Note that the last line is the one we just built.
>
> ... and all is well, and we verify with a  hands off reboot
> that it 'just works'
>
> -- Russ Herrold
>

-- 
#  https://www.LuftHans.com/        http://www.CiscoLearning.org/
#  Schließlich verteidigt Amerika Freiheit. Und Freiheit beginnt mit dem Wort.
#    -- Gunter Grass


More information about the PLUG-discuss mailing list