Hi, I have a iWill DK8X with a RAIDCore BC4852 running the stock Slackware 10.2 kernel sata.o 2.4.31.
My problem is that slackware reconizes my RAID card as a:
"04:02.0 RAID bus controller: Broadcom RAIDCore RC4000"
and uses a driver that will only allow me to see 4 of the 8 SATA drives that are connected.
So, in order to get all 8 drives working, I have to install the bcraid driver from Broadcom's website. From what I gather, on 2.4 kernels this driver can not be compiled externally, it must be patched into the kernel and compiled.
Well, after I patch the Makefile and the Config.in I run
. # cd /usr/src/linux
. # cp .config ~/
. # rm -rf /lib/modules/2.4.29
. # make mrproper
. # cp ~/.config ./
. # make menuconfig
I configure the kernel to use then new driver then make dependencies:
. # make dep
And finally I do a:
. # make clean bzImage modules modules_install
and I get the following compile error:
Quote:
make[2]: Entering directory `/usr/src/linux-2.4.31/drivers/scsi'
make -C bcraid
make[3]: Entering directory `/usr/src/linux-2.4.31/drivers/scsi/bcraid'
make all_targets
make[4]: Entering directory `/usr/src/linux-2.4.31/drivers/scsi/bcraid'
gcc -D__KERNEL__ -I/usr/src/linux-2.4.31/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i486 -I/usr/src/linux-2.4.31/drivers/scsi -D__LINUX__=1 -nostdinc -iwithprefix include -DKBUILD_BASENAME=bc_init -c -o bc_init.o bc_init.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.31/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i486 -I/usr/src/linux-2.4.31/drivers/scsi -D__LINUX__=1 -nostdinc -iwithprefix include -DKBUILD_BASENAME=bc_msg -c -o bc_msg.o bc_msg.c
gcc -D__KERNEL__ -I/usr/src/linux-2.4.31/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i486 -I/usr/src/linux-2.4.31/drivers/scsi -D__LINUX__=1 -nostdinc -iwithprefix include -DKBUILD_BASENAME=bc_mem_ops -c -o bc_mem_ops.o bc_mem_ops.c
bc_mem_ops.c: In function `bc_kthread':
bc_mem_ops.c:265: error: `cpumask_t' undeclared (first use in this function)
bc_mem_ops.c:265: error: (Each undeclared identifier is reported only once
bc_mem_ops.c:265: error: for each function it appears in.)
bc_mem_ops.c:265: error: syntax error before "cpumask"
bc_mem_ops.c:285: error: `cpumask' undeclared (first use in this function)
bc_mem_ops.c: In function `bc_check_addr_one':
bc_mem_ops.c:750: warning: implicit declaration of function `pfn_valid'
make[4]: *** [bc_mem_ops.o] Error 1
make[4]: Leaving directory `/usr/src/linux-2.4.31/drivers/scsi/bcraid'
make[3]: *** [first_rule] Error 2
make[3]: Leaving directory `/usr/src/linux-2.4.31/drivers/scsi/bcraid'
make[2]: *** [_subdir_bcraid] Error 2
make[2]: Leaving directory `/usr/src/linux-2.4.31/drivers/scsi'
make[1]: *** [_subdir_scsi] Error 2
make[1]: Leaving directory `/usr/src/linux-2.4.31/drivers'
make: *** [_dir_drivers] Error 2
|
So I opened /usr/src/linux-2.4.31/drivers/scsi/bcraid/bc_mem_ops.c to have a look....
Code:
bc_kthread(void *bc_threadp)
{
int cpu, status, i;
bc_thread_t *tp;
bc_mem_op_t *mop;
bc_softstate_t *state;
unsigned long irql;
cpumask_t cpumask;
state = &bc_state;
tp = (bc_thread_t*)bc_threadp;
cpu = tp - bc_thread;
This doesnt really mean anything to me but maybe it does to one of you?
Any help getting this binary to compile will be greatly appriciated.