I have some questions on how to get the Promise SATA300 TX2plus to work. I have got the driver (or module) to start but I can't get the harddrive to "open".
Here is a history of what I have done so far. Kind of long, but it's what I've done so far.
1. I have Slackware 10.1 with the default 2.4.x kernel. I wanted to add an extra harddrive so I needed a PCI card. So, I went on searched online and it said to use the test26.s kernel (which is the 2.6.13 kernel with scsi support). Then somebody here suggested that I install the kernel modules package; which I did as well.
2. I went to the Promise website and got the source driver. I followed the instructions in README and it gave some warnings, but no errors. That was fine, so I copied the module to the directory it said to (something like /lib/modules/2.6.13/kernel/driver/scsi). Then I did a "modprobe ulsata2" to start the module. It had an error and it exited saying to look at "dmesg".
3. So, after looking at "dmesg", it says that it can't find "scsi_set_device". So now, I'm confused cause it compiled fine but threw this error. So, I start searching on the net.
--At this point, I find alot of information. And I try anything and everything to get this to work.
4. First I found out that theres a patch for kernel 2.6.13 to add the PCI_VENDOR_ID_PROMISE for my card. I looked at the kernel source of what I had and it didn't have it, so I applied the patch. But for some reason, that didn't work (like it didn't update the source). So I just went in and added that piece of code in myself.
Code:
{ PCI_VENDOR_ID_PROMISE, 0x3d73, PCI_ANY_ID, PCI_ANY_ID, 0, 0, board_2037x },
So, I rebuilt the module and installed the the module
Code:
make modules
make modules_install
5. So I thought it fixed the Promise module problem, so I rebuilt the Promise driver, copied it over, and "modprobe ulsata2". And it gave me the same "scsi_set_device" error. So, I searched on the net and I found out that the function "scsi_set_device" was actually taken out of the 2.6.13 (could have been earlier) source. So, I just copied and pasted that function into the Promise source.
Code:
static inline void scsi_set_device(struct Scsi_Host *shost,
struct device *dev)
{
shost->shost_gendev.parent = dev;
}
I rebuilt it, recopied it, and started the module.... *BAM* it worked! It didn't exit or gave an error. So, I did a "dmesg" and it printed out what was connected to it (sda and sdb). But it said that it can't start (something like that).
I tried to "mount" it and "dfisk -l", but it doesn't work. I'm kinda stuck at this point.
----
Since these are regular ATA (PATA) harddrive, am I wrong to use SATA/SCSI drivers?
If you need some output, I'd be happy to post them up as well.