From: risenhoover on
Greetings all,

I was able to make just a tiny bit of progress in this regard. I have
a clean install and was able to get the driver to load. This is what I

Starting with the RaidCore Linux SDK (

Go to the bcraid directory -- this is the only part I have compiled so
far. The bccfg remains unusable.

1. Copy the Makefile_2.6 to Makefile

[pauly(a)flux bcraid]$ pwd
[pauly(a)flux bcraid]$ cp -p Makefile_2.6 Makefile

2. Comment out the line 329 in bc_init.c (the line with

eh_abort_handler: bc_eh_abort_cmd, /* Abort
Command */
// eh_strategy_handler: NULL, /* Strategy
Error Handler */
eh_device_reset_handler: bc_eh_dev_reset, /* Device Reset
Handle */

3. Comment out the lines in bc_mem_ops.c that define the page_to_pfn
and the pfn_to_page macros, starting at line 410:

//#ifndef page_to_pfn
//#define page_to_pfn(page) ((unsigned long)((page) - mem_map))

//#ifndef pfn_to_page
//#define pfn_to_page(pfn) (mem_map + (pfn))

4. Type Make, and viola:

[pauly(a)flux bcraid]$ make
make -C /lib/modules/2.6.17-1.2187_FC5/build
SUBDIRS=/home/pauly/src/LIN-DRV-SDK/bcraid modules
make[1]: Entering directory `/usr/src/kernels/2.6.17-1.2187_FC5-x86_64'
CC [M] /home/pauly/src/LIN-DRV-SDK/bcraid/bc_mem_ops.o
CC [M] /home/pauly/src/LIN-DRV-SDK/bcraid/bc_event.o
echo "char *bc_ident = \"built on by pauly on Tue
Sep 26 11:34:19 PDT 2006\";" >
CC [M] /home/pauly/src/LIN-DRV-SDK/bcraid/vers.o
LD [M] /home/pauly/src/LIN-DRV-SDK/bcraid/bcraid.o
Building modules, stage 2.
CC /home/pauly/src/LIN-DRV-SDK/bcraid/bcraid.mod.o
LD [M] /home/pauly/src/LIN-DRV-SDK/bcraid/bcraid.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.17-1.2187_FC5-x86_64'
[pauly(a)flux bcraid]$

As a final check:

[root(a)flux scsi]# modinfo bcraid.ko
filename: bcraid.ko
author: Broadcom, Inc
description: Supports Broadcom RAIDCore(tm) BC4000/HT1000 series
raid controllers
license: Dual BSD/GPL
vermagic: 2.6.17-1.2187_FC5 SMP mod_unload gcc-4.1
depends: scsi_mod
alias: pci:v00001166d00000241sv0000182Fsd00000005bc*sc*i*
alias: pci:v0000182Fd00000005sv0000182Fsd00000005bc*sc*i*
alias: pci:v0000182Fd0000000Bsv0000182Fsd0000000Bbc*sc*i*
srcversion: 852A1BEC1DCFFB5EA870CE8
parm: SmartPollInterval:SMART poll interval in seconds (uint)
parm: DoSmart:Do SMART polling (uint)
parm: ForcePhysAddr:force all memory references to use
physical addresses (int)
parm: ActiveRaid5FlushesLimit:Active Raid5 Flushes Limit
parm: WriteBypassThreshold:min write size (kb) to bypass
cache (int)
parm: OneTripWriteRate:min write rate (kb/s) to bypass cache
parm: TwoTripWriteRate:min write rate (kb/s) to bypass cache
parm: max_xfer:max sectors per transfer (int)
parm: tag_q_depth:individual tagged command queue depth (int)
parm: cmd_q_depth:total command queue depth (int)
parm: debug:debug print level (int)

At this point I am able to get it to install and it looks like it's in
good shape, but when I reboot the server the kernel does not pick it up
at boot time.

Any thoughts?

Pages: 1
Prev: dictaphone Olympus
Next: Setup advice