LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   A HOWTO for SuSE 9.0 and Promise 20376 (TX 4000/376/378/S150 TX) (https://www.linuxquestions.org/questions/linux-hardware-18/a-howto-for-suse-9-0-and-promise-20376-tx-4000-376-378-s150-tx-124770/)

gromer 12-10-2003 09:51 PM

A HOWTO for SuSE 9.0 and Promise 20376 (TX 4000/376/378/S150 TX)
 
Dear all,

I had been spend a hell lot of time to get my Asus A7V8X running under SuSE 9.0 using the build in Promise controller 20376. I use the partial open source driver given to the world by Promise.
Unfortunately this package doesn't work straight under SuSE 9.0. What you get is an "UNDEFINED SYMBOL schedule" error when you try to insmod ft3xx.o after make.
After a long time googling I figured out that there is a change (apparently since SuSE 8.2) with resepct to this system call. It had been renamed to "do_schedule".To make things worse, this schedule call is done within in the proritary part of the driver, the file called ftlib.o (as you can easily see by sending a grep --binary-file=text "schedule" ftlib (while "do_Schedule" results in no match).

Well, I probably need to point out that I am a fuc... newbie when it comes to Linux so there may be much cooler solutions to the problem, yet I didn't find them when searching the web.

What you need to do is to cheat the system by convincing the driver to use the real do_schedule (which does the same as schedule as I have read).

This can be established as follow:

Load the driver from the promise(d) site (Version 1.00.0.15 23-sep-2003):
http://www.promise.com/support/downl...egory=All&os=4

Unpack the archive to e.g. /tmp/promise
Open the Makefile in your favourite editor and change the following lines at the end. The modifications are using SuSE and using the --wrap schedule linker command.:

###########################################
#choose a parameter for your system.
#default is INDEP386
#.c.o: ; $(CC) $(INDEP386) -c $*.c
#.c.o: ; $(CC) $(DEP386) -c $*.c
.c.o: ; $(CC) $(SuSE_TB) -c $*.c
#.c.o: ; $(CC) $(MDK) -c $*.c
#.c.o: ; $(CC) $(SMP22x) -c $*.c
#.c.o: ; $(CC) $(ARM) -c $*.c
###########################################

all : $(FT)
ld --wrap schedule -r -o ft3xx.o $(FT) ftlib.o ; rm -f fasttrak.o
ftlib : $(FTLIB)
ld --wrap schedule -r -o ftlib.o $(FTLIB)
cyc : $(FTLIB) $(FT)
ld --wrap schedule -r -o ft3xx.o $(FT) $(FTLIB)
clean :
rm -f ft3xx.o $(FT)
clean2 :
rm -f *.o
########### END OF MAKEFILE ########

Now we need to modify the fasttrak.c file

I inserted this function __wrap_schedule between the ft3xx_proc_info and the int ft3xx_ioctl function code (of course not within them)

void __wrap_schedule(void)
{
return(do_schedule());
}


Now you can punsh in ( assuming that you are in the directory were your promise files are) make and voila you get ft3xx.o
(Those of you who wanna play arround with kernel stuff may want to do some "make config" changes under /usr/src/linux, yet I am to stupid so I did not do that).

Copy this file to the appropriate directory e.g.

cp ft3xx.o /lib/modules/YOUR-VERSION-HERE/kernel/drivers/scsi

Now you start YaST2 and open System and Editor etc/sysconfig
There you open System->Kernel->INITRD_MODULES
Modify the command line as follows "scsi_mod sd_mod ft3xx ataraid reiserfs" (it is important that ft3xx is located after scsi_mod and sd_mod

Now you may wanna have the driver also present on each boot
Therefore you edit a file called boot.ut in /etc/rc.d
With this content:
#! /bin/sh
#Promise Fasttrak Driver (ft3xx)
insmod ft3xx >/dev/null 2>&1


Change the rights with chmod 755 boot.ut
and give a symbolic link from /etc/rc.d/boot.d to this file
(ln -s /etc/rc.d/boot.ut /etc/rc.d/boot.d/S01boot.ut)

I used the comand makedevs sd\* (which you may need to install from the SuSE CD) but it may work withou that since /dev/sda etc ar e lready present.

If you have setup a RAID in the Promise Bios (at least a pro forma "Striping if you have just one drive) SuSE should find the drive and you can partition.

Enjoy.


WARNING:
I just did that and wanted to share this with you. I don't know if it'll proof stable, so use at your own risc. Remember that I am a NEWBIE !!!
Let me know what you think of this.

gromer 12-15-2003 05:58 AM

Updated information
 
Well I probably didn't point this out correctly in my frist posting.

You NEED to do a "make dep" but with the default settings.

So do
cd /usr/src/linux
make cloneconfig
make dep

(I hope that's it. I recall from memory)

I furthermore accomplished to create a disk for installation by modifiying the driver-for SuSE 8.1/8.2. Installation works, yet the system won't start as ft3xx.o is not integrated into the initrd.
If someone likes to have this disk-content let me know (stephan.gromer_AT_gmx.de)

What i did was to create a boot-CD. In order to get ft3xx.o into the initrd you need to send "insmod ft3xx.o", because modprobe will complain.
Then mk_initrd (which will now incorporate ft3xx.o).
Then I did teh sequence described in the manula for creating an isoimage for the boot-CD.

Hope this helps anyone.

gromer 12-27-2003 01:15 PM

A driver for SuSE 9.0 is available from PROMISE
 
Just a brief update.
PROMISE has released a new "install driver" for SuSE 9.0 (and 8.2) as wel as a new partial open source driver (1.00.0.19).

Note that the "driver disk" is compiled against the standrad 2.4.22-99 kernel so I guess it'll fail after the update to the patched 144 version, but haven't checked.

OldNerdGuy 01-01-2004 10:13 AM

Re: A driver for SuSE 9.0 is available from PROMISE
 
Quote:

Originally posted by gromer
Just a brief update.
PROMISE has released a new "install driver" for SuSE 9.0 (and 8.2) as wel as a new partial open source driver (1.00.0.19).

Note that the "driver disk" is compiled against the standrad 2.4.22-99 kernel so I guess it'll fail after the update to the patched 144 version, but haven't checked.

Tried it on my A7V8X, no joy. It refused to load, and showed up as an undefined device driver rather than a disk device driver.

I have two drives, one connected to the VIA IDE, and one to the parallel ATA on the Promise controller. When I gave up and let the 9.0 installer run,without the Promise driver, it recognized the 20376 chip, and loaded some driver that did recognize a drive, but did not see it correctly. It saw a 20 gig drive where it should have seen 30. Not only that, but it appeared to confuse the partition tables between the two drives, and BINGO, gone was my Windows2000 Partition. :mad: :mad: :mad:

Zip over to http://www.partition-recovery.com/ and $29.99 (US) later, I got my Windows partition back, but I still don't trust the configuration.

Not sure why it would not load the Promise driver. I had great success using their drivers with 8.2, but the 9.0 new one does not seem to want to load for me.

I do a manual install, loaded from an FTP site of mine where I downloaded the 9.0 install directories from a SUSE mirror. (DSL, itsa wonderful thing). I should note, I have used this install directory for about 4 other installations, none of which had any problems, but none of which used the Promise 20376.

gromer 01-01-2004 10:33 AM

I am sorry to read that you were facing problems.
I have both 250 GB Maxtor drives attached to the SATA-connectors.
As far as I understood the Promise-Material, the driver is for RAID-configurations only, so I don't know if this was your problem.
Trashing your partition table is of course a really bad thing.
Are you sure it wasn't just the MBR ?

I can't say much about the SuSE 9.0 & Promise 20376 now because I have switched back to 8.1 since I couldn't get SuSE 9.0 and neither Samba 2.2.8a nor 3.0.1 to work as did my old 2.2.5a under 8.1. But I am still using the partially OpenSource driver by promise (no modifications were necessary to compile the latest version 1.00.0.19 under 8.1)

Regards
Stephan

PS.:
With respect to the build in linux driver:
I had tried to get my system running on an Epox 8KRA2+ (again both drives on SATA). The drives were configued as RAID 1 (mirror). SuSE 9.0 recognized both drives but not as a RAID. So I tried to use the SoftRAID, which seemd to work fine in the beginning. However after 2 days it showed a disk failure. I believed that and exchanged the "faulty" drive. The rebuild went okay. Then 24 h later the system told me that the other drive was broken. Even though these are MAxtor drives I couldn't believe that.
So I swicthed back to the ASUS bord with the Promise driver using the drives a had used before.
I can't help the feeling that these GNU-compliant linux drivers are still not well tested, so I stick to the only partially OpenSource stuff in the meantime.

OldNerdGuy 01-01-2004 11:17 AM

The Promise BIOS/Manager says it is a single drive stripe array. I don't think the 20376 has an IDE mode like some of the other Promise chips. I have 20276 that sucks as a RAID controller in Win2003, but works great in IDE mode. That is probably a driver issue, as the BIOS/Manager set it up right, but the OS would not recognize the device (whadda ya want, it's only Windows).

I am going to pull the 30gig WD drive, and stick to the 20 gig WD on the IDE controller for now, that way there should be no confusion as to which drive it is partitioning. For some reason, the installer thought the RAID drive was the boot drive, when it should have been the other one.

Partition Magic says the entire Partition was gone, but the two Linux partitions I added were intact. Fortunately, I did not touch anything on the disk before running the Partition Recovery tool, so it was completely intact.

Slycordinator 01-02-2004 02:36 AM

Re: Re: A driver for SuSE 9.0 is available from PROMISE
 
Quote:

Originally posted by OldNerdGuy
Zip over to http://www.partition-recovery.com/ and $29.99 (US) later, I got my Windows partition back, but I still don't trust the configuration.
You (most likely) didn't need to spend that money.

http://www.cgsecurity.org/index.html?testdisk.html
and
http://www.bootdisk.com

Testdisk rules.

I accidentally deleted the entries of my partition table once (hit the wrong key in FreeBSD's fdisk, making it take the entire disk). I instantly went "Shit; better shut this down and not change anything to the disk." Found a Win98 bootdisk on that website, then unzipped the testdisk package, and copied the DOS-based utility it has over to the disk.

It's really quite simple. Once you run testdisk, it finds the right partition table in one of 2 ways:
First it'll check the BIOS to see what it thinks is right (since just trashing the partition table doesn't neccesarily trash what the BIOS thinks is the disk configuration). It displays what it thinks is the correct config. If that doesn't seem correct to you you can have it physically search the drive. It scans the drive and tries to determine what the actual configuration is. It will show a list of "guesses" to the configuration and you pick the right one.
(though I've never had to have it do this part; the first part has always worked)

And if this last part fails; I'd probably say you're toast.

OldNerdGuy 01-02-2004 11:54 AM

Re: Re: Re: A driver for SuSE 9.0 is available from PROMISE
 
Quote:

Originally posted by Slycordinator
You (most likely) didn't need to spend that money.

http://www.cgsecurity.org/index.html?testdisk.html
and
http://www.bootdisk.com

Testdisk rules.

I accidentally deleted the entries of my partition table once (hit the wrong key in FreeBSD's fdisk, making it take the entire disk). I instantly went "Shit; better shut this down and not change anything to the disk." Found a Win98 bootdisk on that website, then unzipped the testdisk package, and copied the DOS-based utility it has over to the disk.

It's really quite simple. Once you run testdisk, it finds the right partition table in one of 2 ways:
First it'll check the BIOS to see what it thinks is right (since just trashing the partition table doesn't neccesarily trash what the BIOS thinks is the disk configuration). It displays what it thinks is the correct config. If that doesn't seem correct to you you can have it physically search the drive. It scans the drive and tries to determine what the actual configuration is. It will show a list of "guesses" to the configuration and you pick the right one.
(though I've never had to have it do this part; the first part has always worked)

And if this last part fails; I'd probably say you're toast.


Well, it is done. This program was rather easy, took about 30 seconds to recover the partition.

I think I have found out why I am not able to load the Promise Driver. According to their Readme file, the SUSE 9.0 Kernel supported is kernel 2.4.21-99. According to my install, the kernel I am running is 2.4.21-144-athlon. When I build the system without the drivers, and then install it after, it complains about not finding the right kernel. My next step is to see if I can hack the installer to recognize the kernel I have, rather than the one that Promise thinks it should be.

Not sure where they got that kernel, as I am installing from a clean, no updates, downloaded install directory from SUSE. Running with an AthlonXP 1800. Anybody have any ideas why Promise thinks that is the SUSE 9.0 Kernel?

Slycordinator 01-02-2004 06:41 PM

Re: Re: Re: Re: A driver for SuSE 9.0 is available from PROMISE
 
Quote:

Originally posted by OldNerdGuy
Well, it is done. This program was rather easy, took about 30 seconds to recover the partition.
Cool. If this happens again, try testdisk instead. Once I started the program it recognized what the partition table should've been in about 1/2 second and I had it write this new partition table.

One piece of advice: label your partitions. That way, it's easy to see if it's picking up the right partitions. Like if you used the option to physically scan the drive for partitions it may end up finding information left from a previously deleted partition and so with the correct labels to your partitions, this process is much easier (since you have to pick which partitions it "found" are the actual ones you want).

OldNerdGuy 01-07-2004 12:26 PM

Re: A driver for SuSE 9.0 is available from PROMISE
 
Quote:

Originally posted by gromer
Just a brief update.
PROMISE has released a new "install driver" for SuSE 9.0 (and 8.2) as wel as a new partial open source driver (1.00.0.19).

Note that the "driver disk" is compiled against the standrad 2.4.22-99 kernel so I guess it'll fail after the update to the patched 144 version, but haven't checked.

Guess what, you are right. I tried the install against my system, and it gives out multiple symbol errors with the 144 kernel, and refuses to load.

nionio 01-07-2004 01:50 PM

After updatin with YOU I have the same problem
 
:Pengy: I Have study this issue:study:

Hopefully we can solve this problem because there will be no supported builds
SUSE and Promise is not so promising...

gromer 01-14-2004 12:57 AM

Folks,

you can use the updates kernels (note down the kernel version you are going to install). The only thing is that after the downoad and install of the modified kernel you have to
cd /usr/src/linux
make cloneconfig
(If you don't use 9.0 you might get into trouble because if new versions introduce new stuff you may have to answer questions. In that case at the end you have to give the information of your resulting kernel. Ensure that they match your newly installed kernel)
make dep

Then go to your Promise Driver source and compile (changhe the makefile for SuSE) it with
make all
(in the latest version of the driver code I guess they have fixed the the do_Schedule issue, so try it first as provided and if you encounter errors do my patch (see above))

Ensure with insmod that your compiled ft3xx.o will match the NEW kernel (it will fail to load but the output should tell you that what kernel ft3xx.o was build against. Check man insmod for details (I write this from memory under WinXP)

and copy the ft3xx.o to the respective folders. You also need to have it inserted into the initrd-variable and you need to to then
a mk_initrd (see all above as in my initial posting)
I strongly recommend to create a bootCD as described in the SuSE-manual (German version page 98ff. Use k3b.. for writing the iso-boot-image)

Good luck

gentle 01-31-2004 11:04 AM

I'm trying to get the driver working under Libranet 2.8.1. Obviously this means I have to dip into a shell during the installation program, and insmod the driver there and then run makedevs.

I have compiled the ft3xx.o module from the half-open 1.00.0.19 driver package on a different system, linked to the same kernel (2.4.21) as Libranet. However, when I try to "insmod ft3xx.o" during installation, I get a bunch of unresolved symbols, among them being scsi_register and kill_fasync.

From what I can see, these should be present either statically in the kernel, or in one of the SCSI modules. The scsi_mod and sd_mod modules (from Libranet's kernel) are already loaded.

Any ideas?

droctagon 02-12-2004 04:41 PM

i do not know about you guys, but i am fed up with this crap.
How about every reader sents a complaining email about the driver to promise?
this might help. If they don't make something working, we could spread the word that it's bad Linux hardware.
I have wasted more then 2 weeks on trying to get it work, and still no results.
really frustrating.
If somebody has some working results on Suse 9 or Mandrake 9.2,
for the Fasttrack 376 on Asus A7V8X, Raid1 mode, please let me know or post the ft3xx compiled module.
If somebody does that, hopefully promise, that could be promising.
Good luck yall

gromer 09-17-2004 03:03 PM

I don't use SuSE currently
 
Dear all,
I don't use SuSE anymore and thus I cannot provide bootdisc for your new kernels.
Sorry, I hope someone else can take over.
But 2.6.x can do the job anyway


All times are GMT -5. The time now is 07:44 PM.