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

Reply via email to