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