apocryph.org Notes to my future self

19Sep/076

Ubuntu Feisty Fawn, HighPoint RocketRaid 2220, and Satan

A while back I contorted myself to get a 64-bit FreeBSD 6.0 driver for my HighPoint RocketRaid 2220 RAID controller. Now that I have a 2TB ReadyNAS box, that old 1TB FreeBSD box is falling into disuse, so I thought I’d repurpose it as a dedicated Azureus download machine.

At first, I had hoped I could install Ubuntu Feisty Fawn directly on the RAID array, but I couldn’t even get the Ubuntu live CD to boot without a litany of read errors on sdc and sdb. I gave up on that, pulled one of the five 250GB drives from the array, and hooked it up to the on-board SATA controller, unplugged the RocketRaid, and installed Ubuntu.

Once that was done, I wanted to at least get enough RocketRaid support to create a RAID 0 volume consisting of the four remaining 250GB SATA drives. Long story short, here’s what I had to do:

  • Compile a custom 2.6.22 kernel, explicitly excluding the sata_mv driver, which is extremely incomatible with the RocketRaid. Adding sata_mv to the blacklist, and using the brokenmodules kernel startup parameter were not sufficient; I had to literally compile this out of the kernel.
  • Download the latest HighPoint RocketRaid Linux driver source code. It may be possible to get the pre-compiled drivers to work on Feisty, but if so I don’t know how.
  • Build the RocketRaid driver code per the instructions. The make install step failed towards the end, but it made it far enough to get the hptmv6 driver built and working and loading at boot time.

Once that was done, it was time to create the RAID array. As I learned when I built a BSD box around this card, the RocketRaid 2220 is what is known as a FakeRAID card, meaning it has no hardware RAID circuitry; it’s just a SATA controller with some proprietary, buggy code that emulates the various RAID levels. So, I decided against using the HighPoint RAID code, and went into the HighPoint BIOS and created one JBOD device for each disk in the array. These devices showed up at /dev/sdb through /dev/sde. I used the software RAID HOWTO to build a /dev/md0 device consisting of these four disk devices, in RAID 0.

Now, I have a 1TB RAID 0 reiserfs partition upon which to stage my ill-gotten gains, before archiving them on my 2TB dedicated NAS box.

Next time, I’ll spend the $300 and get a real, supported RAID controller card.

Comments (6) Trackbacks (0)
  1. highpoint

    When you removed sata_mv, what parameter is that specifically in the .config file? I didn’t
    see a “sata_mv”. Thanks.

  2. I was using the make menuconfig configuration GUI. It was under Device Drivers, iirc.

  3. Looks like sata_mv stands for Marvell.
    My RocketRaid is picking up that driver instead, and I’m now compiling it out of kernel

  4. I unchecked Marvell SATA driver, but it still shows…

    any ideas?
    I recompiled the kernel, and unchecked Marvell driver under SATA heading.

    I boot into this new kernel and I still see:
    *-scsi
    description: SCSI storage controller
    product: MV88SX6081 8-port SATA II PCI-X Controller
    vendor: Marvell Technology Group Ltd.
    physical id: 1
    bus info: pci@0000:03:01.0
    version: 07
    width: 64 bits
    clock: 66MHz
    capabilities: scsi pm msi pcix busmaster caplist
    configuration: driver=satamv latency=64 module=satamv

  5. It appears satamv is still loading. It may still be available as a kernel module. So a sudo lsmod | grep satamv. You may need to blacklist the satamv module to get it to stop loading.

  6. I’m trying to compile the 2522 driver on Ubuntu 8.04 but having no luck. I’ve disabled sata_mv and it doesn’t appear in lsmod, but when I try to compile I get a bunch of errors and make fails:

    midgetspy@MidgetNAS:~/rr2522-linux-src-v1.1/product/rr2522/linux$ make KERNELDIR=/usr/src/linux-2.6.25
    make[1]: Entering directory `/usr/src/linux-2.6.25′
    CC [M] /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/os_linux.o
    CC [M] /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.o
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c: In function “scsicmd_buf_get”:
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:442: error: “Scsi_Cmnd” has no member named “use_sg”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:443: error: “Scsi_Cmnd” has no member named “request_buffer”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:455: error: “Scsi_Cmnd” has no member named “request_buffer”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:456: error: “Scsi_Cmnd” has no member named “request_bufflen”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c: In function “scsicmd_buf_put”:
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:464: error: “struct scsi_cmnd” has no member named “use_sg”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c: In function “do_mode_sense”:
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:509: error: “Scsi_Cmnd” has no member named “request_bufflen”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c: In function “os_cmddone”:
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:578: error: “Scsi_Cmnd” has no member named “use_sg”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:581: error: “Scsi_Cmnd” has no member named “request_buffer”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:582: error: “Scsi_Cmnd” has no member named “use_sg”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:589: error: “Scsi_Cmnd” has no member named “request_bufflen”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c: In function “os_buildsgl”:
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:627: error: “Scsi_Cmnd” has no member named “request_buffer”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:632: error: “Scsi_Cmnd” has no member named “use_sg”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:634: error: “Scsi_Cmnd” has no member named “use_sg”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:655: error: “Scsi_Cmnd” has no member named “use_sg”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:676: error: “Scsi_Cmnd” has no member named “request_buffer”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:677: error: “Scsi_Cmnd” has no member named “request_bufflen”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:682: error: “Scsi_Cmnd” has no member named “use_sg”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:690: error: “Scsi_Cmnd” has no member named “use_sg”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:722: error: “Scsi_Cmnd” has no member named “request_buffer”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:723: error: “Scsi_Cmnd” has no member named “request_bufflen”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:730: error: “Scsi_Cmnd” has no member named “request_bufflen”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c: In function “hpt_queuecommand”:
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:959: error: “Scsi_Cmnd” has no member named “request_bufflen”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:962: error: “Scsi_Cmnd” has no member named “use_sg”
    /home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.c:965: error: “Scsi_Cmnd” has no member named “request_buffer”
    make[2]: *** [/home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build/osm_linux.o] Error 1
    make[1]: *** [_module_/home/midgetspy/rr2522-linux-src-v1.1/product/rr2522/linux/.build] Error 2
    make[1]: Leaving directory `/usr/src/linux-2.6.25′
    make: *** [rr2522.ko] Error 2

    Do you have any idea what’s going wrong?


Leave a comment

No trackbacks yet.