I've successfully made Ubuntu boot on this hardware with kernel version
2.6.32-33-server

Note: <kernel version identifier> is whatever the folder name is in
/lib/modules which corresponds to your target kernel.  In my case this
was 2.6.32-33-server.

The issue with the dkms driver install path might be due to dkms
improperly updating /lib/modules/<kernel version
identifier>/modules.dep.bin.  Updating this file and remaking the
initrd.img allowed me to boot off my 3ware 9750 card.  From start to
finish here's what I did

install new kernel and headers
make 3w-sas module as described by rhardy on 08-19-2010 (above)
For revisions after 2.6.32-25 dkms will load the kernel driver into 
updates/dkms disregarding any dkms.conf specification for using 
kernel/drivers/scsi for 3w-sas drivers, as was noted by rhardy on 10-24-2010.  
This appears to be due to be an intentional change based on the way ubuntu is 
supposed to handle these kinds of drivers.  I can't find the link right now but 
that's essentially what I picked up from a dkms development related thread I 
came across.  There are a number of manual interventions available at this 
point to circumvent this issue, the most straightforward involves leaving 
3w-sas.ko where dkms installs it in updates/dkms, while rebuilding 
modules.dep.bin so that mkinitramfs will grab the 3w-sas.ko file from its 
default location and include it in the initrd.img file.

make sure updates/dkms/3w-sas.ko: is in listed in /lib/modules/<kernel version 
identifier>/modules.dep.  dkms should automatically have included it.  
To rebuild modules.dep.bin use
depmod <kernel version identifier>

The following should list your 3w-sas.ko driver if you've done everything 
correctly so far
strings /lib/modules/<kernel version identifier>/modules.dep.bin | grep 3w

back up old initrd.img, make new one, and install it:
cp /boot/initrd.img-<kernel version identifier> /boot/initrd.img-<kernel 
version identifier>_bak
mkinitramfs -o /boot/initrd.img-<kernel version identifier>

This method worked for me using kernel 2.6.32-33-server.
2.6.32-34-server is missing a file present in prior revisions, namely
/lib/modules/2.6.32-34-server/build/include/linux/bounds.h, which is
required to build 3w-sas.ko correctly.  It may work to simply copy
bounds.h from the 2.6.32-33 headers to that location and try building
against that for future revisions.  For me doing so resulting in an
error free 3w-sas build, and my system booted OK, but I reverted back to
2.6.32-33 rather than risk any potential stability issues with this
hack.

This is a suitable method for upgrading from one kernel revision to the
next.  If you don't have a working operating system when installing
these drivers (for instance you reboot after a system update you didn't
notice and now don't have the drivers to get back into a system that's
running a new kernel) you will need to compile these drivers against the
appropriate kernel headers and build an initrd file using a live CD.
www.sysresccd.org  has a gentoo based live cd (and live USB version)
with a graphical interface (startx for KDE desktop) that includes 3w-sas
drivers by default and can be used for this purpose.  Once booted you
can get a chroot environment in your disk array in order to download
kernel headers,  3w-sas drivers, build the drivers and run
depmod/mkinitramfs successfully.

mount /dev/<ubuntu root device> <mntpt>
mount -t proc none <mntpt>/proc
mount --rbind /dev <mntpt>/dev
chroot <mntpt> /bin/bash

The one thing to watch out for is any query for the current kernel
version (uname -a), since this information comes out of /proc that's
tied to the current running kernel (i.e. the Live CD's kernel).  For
instance, 3w-sas's Makefile has a `uname -a`/sources call in it.  Since
uname -a will return the name of the current active kernel you may need
to modify this Makefile and substitute <kernel version identifier>/build
for `uname -a`/sources before building your drivers.  I don't know if
this will be an issue, since I haven't tried it, but it's something to
watch out for.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/607838

Title:
  3w-sas driver

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/607838/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to