On Thu, 2003-01-30 at 19:47, Jimmy Rosen wrote:
> I'm going bald from trying to get this driver to build.
>
> Anyone out there who have had success with compiling and running the pti_st
> driver for the sx6000 raid card?
>
> I've tried both under an old gentoo 1.2 install with gcc 2.95.3 and mcpu
> i686 and a newer gentoo 1.4 rc2 with gcc 3.2.1 and march athlon.
>
> First I tried to just change the rather bizarre makefile as specified in
> the source download readme, then building my own makefile, then manually
> compiling the sources.
> Nope, can't get it to compile.
>
> Thankful for any help
> Jimmy
Hi!
I had the same problem when I bought my SX6000 RAID card.
This is a wonderful card but Linux drivers included are olds and would
compile well on (for example) 2.4.7 kernels but not most recents like
2.4.20.
For information, I've compiled ths sources under a Debian GNU/Linux with
gcc 2.95.4 and after modification of my Makefile it works.
Now how to modify your Makefile ?
1- DON'T follow their instructions, get a brand new Makefile just
detared :)
2- you'll have to modify the line beginning by 'CFLAGS247' to:
CFLAGS247 = -D__KERNEL__ -I/usr/src/linux-2.4.20/drivers/scsi
-I/usr/src/linux-2.4.20/include -Wall -Wstrict-prototypes -O2
-fomit-frame-pointer -fno-strict-aliasing -fno-common -Wno-unused -pipe
-mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include
/usr/src/linux-2.4.20/include/linux/modversions.h
(admitting that you have a 2.4.20 kernel without SMP)
3- After that you'll have to define manually (after autodetection) the
UTSVERSION variable. In order to do so, after the CFLAGS lines you'll
have two lines like:
SOURCES = pti_st.c
OBJECT = pti_st.o
Just add:
UTSVERSION="2.4.7-10" on the line after
4- Continue your kernel compilation...
This is the only way I've found in order to make it work. There is
another module developped by A.Cox but it doesn't work for me :/
In order to help you, I've joined my Makefile.
After that you will have a .o module that will you will load (it will
taint the kernel) and if it works, you'll have some lines like this in
your dmesg output:
Found PTI SuperTrak at mbase: 0xfb000000, irq 9.
scsi0 : PROMISE SuperTrak SX6000 Driver
Vendor: PTI Model: SuperTrak Rev:
Type: Direct-Access ANSI SCSI revision: 02
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
SCSI device sda: 39062272 512-byte hdwr sectors (20000 MB)
sda: sda1
(here the 20000Mb are from 3x10Gb in RAID5 before I find some money to
buy some hard disks ;)
Hope it will help you.
Regards,
--
Aur�lien gouny <[EMAIL PROTECTED]>
Paris, France
VERSIONFILE = /usr/src/linux/include/linux/version.h
#the following are for RedHat
UTSVERSION = `uname -r`
UTSSMP = `uname -a|grep -i smp`
#the following are for generial OS
OS = `grep UTS_RELEASE $(VERSIONFILE) | awk -F '"' '{ print $$2}'`
OS1 = `grep UTS_RELEASE $(VERSIONFILE) | awk -F '"' '{ print $$2}' | awk -F . '{ print $$1 }'`
OS2 = `grep UTS_RELEASE $(VERSIONFILE) | awk -F '"' '{ print $$2}' | awk -F . '{ print $$2 }'`
OS3 = `grep UTS_RELEASE $(VERSIONFILE) | awk -F '"' '{ print $$2}' | awk -F . '{ print $$3 }'`
DOSMP = `grep UTS_RELEASE $(VERSIONFILE) | awk -F '"' '{ print $$2}' | grep SMP`
CFLAGS24 = -D__KERNEL__ -I/usr/src/linux/drivers/scsi -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -DMODULE -DMODVERSIONS
CFLAGS242 = -D__KERNEL__ -I/usr/src/linux-2.4.2/drivers/scsi -I/usr/src/linux-2.4.2/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -Wno-unused -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/linux-2.4.2/include/linux/modversions.h
CFLAGS247 = -D__KERNEL__ -I/usr/src/linux-2.4.20/drivers/scsi -I/usr/src/linux-2.4.20/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -Wno-unused -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/linux-2.4.20/include/linux/modversions.h
CFLAGS24_SMP = -D__KERNEL__ -I/usr/src/linux-2.4.0-64GB-SMP/drivers/scsi -I/usr/src/linux-2.4.0-64GB-SMP/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -Wno-unused -pipe -mpreferred-stack-boundary=2 -march=i686 -D__SMP__ -DMODULE -DMODVERSIONS
CFLAGS242_SMP = -D__KERNEL__ -I/usr/src/linux-2.4.2/drivers/scsi -I/usr/src/linux-2.4.2/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -Wno-unused -pipe -mpreferred-stack-boundary=2 -march=i686 -D__SMP__ -DMODULE -DMODVERSIONS -include /usr/src/linux-2.4.2/include/linux/modversions.h
CFLAGS247_SMP = -D__KERNEL__ -I/usr/src/linux-2.4.7-10/drivers/scsi -I/usr/src/linux-2.4.7-10/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -Wno-unused -pipe -mpreferred-stack-boundary=2 -march=i686 -D__SMP__ -DMODULE -DMODVERSIONS -include /usr/src/linux-2.4.7-10/include/linux/modversions.h
CFLAGS244_SMP = -D__KERNEL__ -I/usr/src/linux/drivers/scsi -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -Wno-unused -pipe -mpreferred-stack-boundary=2 -march=i686 -D__SMP__ -DMODULE -DMODVERSIONS
CFLAGS22 = -D__KERNEL__ -I/usr/src/linux/drivers/scsi -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=586 -DMODULE -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h
CFLAGS22_1 = -D__KERNEL__ -I/usr/src/linux/drivers/scsi -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=386 -DMODULE -DMODVERSIONS
CFLAGS22_SMP = -D__KERNEL__ -I/usr/src/linux/drivers/scsi -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -D__SMP__ -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=686 -DMODULE -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h
CFLAGS22_SMP1 = -D__KERNEL__ -I/usr/src/linux/drivers/scsi -I/usr/src/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -D__SMP__ -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=686 -DMODULE -DMODVERSIONS
CFLAGS245_1 = -D__KERNEL__ -I/usr/src/linux/drivers/scsi -I/usr/src/linux-2.4.5/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -mpreferred-stack-boundary=2 -march=i586 -DMODULE
CFLAGS245 = -D__KERNEL__ -I/usr/src/linux/drivers/scsi -I/usr/src/linux-2.4.5/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -mpreferred-stack-boundary=2 -march=i586 -DMODULE -DMODVERSIONS -include /usr/src/linux-2.4.5/include/linux/modversions.h
SOURCES = pti_st.c
OBJECT = pti_st.o
UTSVERSION="2.4.7-10"
all:
@if [ "x$(UTSVERSION)" = "x2.4.2-2" -o "x$(UTSVERSION)" = "x2.4.2-2smp" -o "x$(UTSVERSION)" = "x2.4.2-2enterprise" -o "x$(UTSVERSION)" = "x2.4.7-10" -o "x$(UTSVERSION)" = "x2.4.7-10smp" -o "x$(UTSVERSION)" = "x2.4.7-10enterprise" ]; \
then \
if [ "x$(UTSVERSION)" = "x2.4.2-2" ]; \
then \
echo "2.4.2-2"; \
make Modules CC=gcc CFLAGS="$(CFLAGS) $(CFLAGS242)"; \
elif [ "x$(UTSVERSION)" = "x2.4.7-10" ]; \
then \
echo "2.4.7-10"; \
make Modules CC=gcc CFLAGS="$(CFLAGS) $(CFLAGS247)"; \
elif [ "x$(UTSVERSION)" = "x2.4.7-10smp" -o "x$(UTSVERSION)" = "x2.4.7-10enterprise" ]; \
then \
echo "2.4.7-10smp/enterprise"; \
make Modules CC=gcc CFLAGS="$(CFLAGS) $(CFLAGS247_SMP)"; \
else \
echo "2.4.2-2smp/enterprise" ; \
make Modules CC=cc CFLAGS="$(CFLAGS) $(CFLAGS242_SMP)";\
fi; \
elif [ "x$(UTSVERSION)" = "x2.2.14-5.0" -o "x$(UTSVERSION)" = "x2.2.14-5.0smp" ]; \
then \
if [ "x$(UTSSMP)" = "x" ]; \
then \
echo "2.2.14-5.0"; \
make Modules CC=cc CFLAGS="$(CFLAGS) $(CFLAGS22)"; \
else \
echo "2.2.14-5.0smp"; \
make Modules CC=cc CFLAGS="$(CFLAGS) $(CFLAGS22_SMP)"; \
fi; \
elif [ "x$(UTSVERSION)" = "x2.2.16-22" -o "x$(UTSVERSION)" = "x2.2.16-22smp" ]; \
then \
echo "2.2.16-22/smp"; \
if [ "x$(UTSSMP)" = "x" ]; \
then \
make Modules CC=kgcc CFLAGS="$(CFLAGS) $(CFLAGS22)"; \
else \
make Modules CC=kgcc CFLAGS="$(CFLAGS) $(CFLAGS22_SMP)"; \
fi; \
elif [ "x$(OS1)" = "x2" -a "x$(OS2)" = "x2" ]; \
then \
if [ "x$(OS3)" = "x14-5" ]; \
then \
echo "2.2.14-5"; \
make Modules CC=cc CFLAGS="$(CFLAGS) $(CFLAGS22_1)"; \
elif [ "x$(OS)" = "x2.2.18-2BOOT" ]; \
then \
echo "2.2.18-2BOOT"; \
make Modules CC=cc CFLAGS="-D__BOOT_KERNEL_BOOT_=1 $(CFLAGS22_1)"; \
elif [ "x$(OS3)" = "x14" ]; \
then \
echo "2.2.14"; \
make Modules CC=cc CFLAGS="$(CFLAGS) $(CFLAGS22_SMP)"; \
elif [ "x$(OS3)" = "x18-9smp" -o "x$(OS3)" = "x14-5smp" -o "x$(OS3)" = "x18-SMP" ]; \
then \
echo "2.2.18-9smp/14-5smp/smp1"; \
make Modules CC=cc CFLAGS="$(CFLAGS) $(CFLAGS22_SMP1)"; \
else \
if [ "x$(DOSMP)" = "x" ]; \
then \
echo "2.2"; \
make Modules CC=cc CFLAGS="$(CFLAGS) $(CFLAGS22)"; \
else \
echo "2.2-smp"; \
make Modules CC=cc CFLAGS="$(CFLAGS) $(CFLAGS22_SMP)"; \
fi; \
fi; \
elif [ "x$(OS1)" = "x2" -a "x$(OS2)" = "x4" ]; \
then \
if [ "x$(OS3)" = "x5-3" ]; \
then \
echo "2.4.5-3"; \
make Modules CC=cc CFLAGS="$(CFLAGS) $(CFLAGS245)"; \
elif [ "x$(OS3)" = "x5-3smp" ]; \
then \
echo "2.4.5-3smp"; \
make Modules CC=cc CFLAGS="$(CFLAGS) $(CFLAGS245)"; \
elif [ "x$(OS3)" = "x5-3BOOT" ]; \
then \
echo "2.4.5-3BOOT"; \
make Modules CC=gcc CFLAGS="-D__BOOT_KERNEL_BOOT_=1 $(CFLAGS245_1)"; \
fi; \
else \
if [ "x$(OS3)" = "x4-4GB-SMP" -o "x$(OS3)" = "x4-64GB-SMP" -o "x$(OS3)" = "x10-4GB-SMP" -o "x$(OS3)" = "x10-64GB-SMP" ]; \
then \
echo "244_smp"; \
make Modules CC=cc CFLAGS="$(CFLAGS) $(CFLAGS244_SMP)"; \
elif [ "x$(DOSMP)" = "x" ]; \
then \
if [ "x$(OS3)" = "x2-2" ]; \
then \
echo "242"; \
make Modules CC=gcc CFLAGS="$(CFLAGS) $(CFLAGS242)"; \
else \
echo "24"; \
make Modules CC=cc CFLAGS="$(CFLAGS) $(CFLAGS24)"; \
fi; \
else \
if [ "x$(OS3)" = "x0-64GB-SMP" ]; \
then \
echo "24_SMP"; \
make Modules CC=cc CFLAGS="$(CFLAGS) $(CFLAGS24_SMP)"; \
else \
echo "242_SMP"; \
make Modules CC=cc CFLAGS="$(CFLAGS) $(CFLAGS242_SMP)"; \
fi; \
fi; \
fi
boot:
@make clean
@echo "$(UTSVERSION):$(OS1),$(OS2),$(OS3)"
@if [ "x$(UTSVERSION)" = "x2.2.14-5.0" ]; \
then \
echo "2.2.14-5.0"; \
make all CFLAGS="-D__BOOT_KERNEL_BOOT=1"; \
elif [ "x$(OS1)" = "x2" -a "x$(OS2)" = "x2" -a "x$(OS3)" = "x18-9" ]; \
then \
echo "2.2.18-9"; \
make all CFLAGS="-D__BOOT_KERNEL_BOOT=1"; \
elif [ "x$(OS1)" = "x2" -a "x$(OS2)" = "x4" -a "x$(OS3)" = "x2-2" ]; \
then \
echo "2.4.2-2"; \
make all CFLAGS="-D__BOOT_KERNEL_BOOT=1"; \
elif [ "x$(OS1)" = "x2" -a "x$(OS2)" = "x4" -a "x$(OS3)" = "x2-2smp" ]; \
then \
echo "2.4.2-2smp"; \
make all CFLAGS="-D__BOOT_KERNEL_BOOTSMP=1"; \
elif [ "x$(OS1)" = "x2" -a "x$(OS2)" = "x4" -a "x$(OS3)" = "x2-2enterprise" ]; \
then \
echo "2.4.2-2enterprise"; \
make all CFLAGS="-D__BOOT_KERNEL_ENTERPRISE=1"; \
elif [ "x$(OS1)" = "x2" -a "x$(OS2)" = "x4" -a "x$(OS3)" = "x7-10" ]; \
then \
echo "2.4.7-10"; \
make all CFLAGS="-D__BOOT_KERNEL_BOOT=1"; \
elif [ "x$(OS1)" = "x2" -a "x$(OS2)" = "x4" -a "x$(OS3)" = "x7-10smp" ]; \
then \
echo "2.4.7-10smp"; \
make all CFLAGS="-D__BOOT_KERNEL_BOOTSMP=1"; \
elif [ "x$(OS1)" = "x2" -a "x$(OS2)" = "x4" -a "x$(OS3)" = "x7-10enterprise" ]; \
then \
echo "2.4.7-10enterprise"; \
make all CFLAGS="-D__BOOT_KERNEL_ENTERPRISE=1"; \
fi
@if [ -e pti_st.o ]; then \
if [ "x$(UTSVERSION)" = "x2.2.14-5.0" ]; \
then \
[ -d $(UTSVERSION) ] || mkdir $(UTSVERSION); \
if [ "x$(UTSSMP)" = "x" ]; then \
mv pti_st.o $(UTSVERSION)/pti_st.o.boot; \
else \
mv pti_st.o $(UTSVERSION)/pti_st.o.boot.smp; \
fi; \
else \
[ -d $(OS) ] || mkdir $(OS); \
if [ "x$(DOSMP)" = "x" ]; then \
mv pti_st.o $(OS)/pti_st.o.boot; \
else \
mv pti_st.o $(OS)/pti_st.o.boot.smp; \
fi; \
fi; \
fi
Modules: $(OBJECT)
install:
@make all
@if [ "x$(UTSVERSION)" = "x2.4.2-2" -o "x$(UTSVERSION)" = "x2.4.2-2smp" -o "x$(UTSVERSION)" = "x2.4.2-2enterprise" ]; \
then \
export OS2_2="4"; \
export UTSSMP_2=$(UTSSMP); \
elif [ "x$(UTSVERSION)" = "x2.2.14-5.0" -o "x$(UTSVERSION)" = "x2.2.16-22" ]; \
then \
export OS2_2="2"; \
export UTSSMP_2=$(UTSSMP); \
else \
export OS2_2=$(OS2); \
fi; \
if [ "x$(UTSVERSION)" != "x2.4.2-2" -a "x$(UTSVERSION)" != "x2.4.2-2smp" -a "x$(UTSVERSION)" != "x2.4.2-2enterprise" -a "$${OS2_2}" = "2" ]; \
then \
if [ "x$(UTSVERSION)" = "x2.2.14-5.0" -o "x$(UTSVERSION)" = "x2.2.16-22" ]; \
then \
cp -f $(OBJECT) /lib/modules/$(UTSVERSION)/scsi; \
else \
cp -f $(OBJECT) /lib/modules/$(OS)/scsi; \
fi; \
else \
if [ "x$(UTSVERSION)" = "x2.4.2-2" -o "x$(UTSVERSION)" = "x2.4.2-2smp" -o "x$(UTSVERSION)" = "x2.4.2-2enterprise" ]; \
then \
cp -f $(OBJECT) /lib/modules/$(UTSVERSION)/kernel/drivers/scsi; \
else \
cp -f $(OBJECT) /lib/modules/$(OS)/kernel/drivers/scsi; \
fi; \
fi
@if [ "x$(UTSVERSION)" = "x2.4.2-2" -o "x$(UTSVERSION)" = "x2.4.2-2smp" -o "x$(UTSVERSION)" = "x2.4.2-2enterprise" -o "x$(UTSVERSION)" = "x2.2.14-5.0" -o "x$(UTSVERSION)" = "x2.2.16-22" ]; \
then \
if [ ! -d $(UTSVERSION) ]; \
then \
mkdir $(UTSVERSION); \
fi; \
if [ "x$(UTSVERSION)" = "x2.2.14-5" -a "x$$UTSSMP_2" != "x" -o "x$(UTSVERSION)" = "x2.2.16-22" -a "x$$UTSSMP_2" != "x" ]; \
then \
cp -f $(OBJECT) $(UTSVERSION)/$(OBJECT).smp; \
else \
cp pti_st.o $(UTSVERSION); \
fi; \
else \
if [ ! -d $(OS) ]; \
then \
mkdir $(OS); \
fi; \
cp pti_st.o $(OS); \
fi
clean:
rm -f pti_st.o pti_st.o.boot 2>&1 >/dev/null
pti_st.o: pti_st.c
$(CC) $(CFLAGS) -c -o pti_st.o $(SOURCES)
pti_st.c: pti_st.h pti_stdev.h i2odef.h
--
[EMAIL PROTECTED] mailing list