LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   Drivers for Promise PDC42819 RAID Controller on MSI K9A2 Platinum Motherboard (https://www.linuxquestions.org/questions/linux-hardware-18/drivers-for-promise-pdc42819-raid-controller-on-msi-k9a2-platinum-motherboard-621818/)

viron 02-17-2008 01:54 PM

Drivers for Promise PDC42819 RAID Controller on MSI K9A2 Platinum Motherboard
 
I have an MSI K9A2 Platinum motherboard which comes with an Promise T3 FastTrack PDC42819 RAID controller that for the life of me I can't get Linux to detect. I have two 500GB hdds that are detected during boot, just not seen by Linux. Does anyone know the correct driver to use, or if that particular controller is supported at this time?

archtoad6 02-18-2008 06:23 AM

Welcome
1st, welcome to LQ. I hope you both get & give good answers here.

Before I start on what I found about your problem, I'd like to make 2 suggestions about what to post:

1. Post links to mfr.'s h/w info. -- it will save prospective helpers time & thus make it easier (read more likely) to try to help.

2. You are expected to try to solve your problem yourself before you post, Google, Google Linux, & searching LQ are good ways to this. If you then posted your searches, your helpers would get up to speed on your problem (& therefore be more likely to try to help) much quicker, not to mention know that you did already try to figure it out on your own.


Links
  1. Googling your mobo:
    http://www.google.com/search?q=MSI+K9A2+Platinum
  2. yeilds:
    http://global.msi.com.tw/index.php?f...&prod_no=1332#
  3. Googling your chip:
    http://www.google.com/search?q=Promise+PDC42819
    yeilds nothing directly useful, i.e. info. on the chip itself
  4. but yeilds this clue:
    http://www.digital-daily.com/motherboard/msi_abit_am2
    http://www.digital-daily.com/motherb...abit_am2/print
    " a rather expensive Promise PDC42819 chip (for comparison, the expansion card Promise FastTrak TX2650 based on this chip costs about 80$)."
    A comparison review, this also includes a good description of the board.
  5. Another good description/review (of the mobo):
    http://www.hardwarezone.com/articles...6&id=2423&pg=3
  6. Googling the Promise website for the chip:
    http://www.google.com/search?q=site%....com/+PDC42819
    "Your search - site:www.promise.com/ PDC42819 - did not match any documents."
    nor does a serch AT www.promise.com produce anthing useful.
  7. Googling that card:
    http://www.google.com/search?q=Promise+FastTrak+TX2650
  8. The card itself:
    http://www.promise.com/product/produ...product_id=191
    1. Downloads, incl. Drivers:
      http://www.promise.com/support/downl...ory=all&os=100
    2. Press Release:
      http://www.promise.com/company/press...RES20080128001
      "server platforms running all popular Linux distributions"
      "Promise's FastTrak TX offerings are software-based SAS RAID cards"
    3. Compatibility List - PDF as HTML:
      http://64.233.169.104/search?q=cache...t-20070906.pdf
      "Linux driver 1.1.0.3"
    4. Enlarged picture:
      http://www.promise.com/upload/product/FXTX4650.JPG
      shows your chip.

Good News
It sounds like there is a Linux driver.

Bad News
It sounds like there is a Linux driver;
& that means you are probably dealing w/ "fake RAID", see the Wikipedia RAID article or search LQ for "fake RAID".

Good News
Most "fake RAID" chips can be used as plain multi-disk controllers for Linux software RAID, which is considered very good.

viron 02-18-2008 10:37 AM

...
 
Search Google? Yea gee...didn't think of that. I ended up where you pointed to shortly after posting the question. Unfortunately the source to the t3sas driver (which is needed for that particular controller) will not compile against the 2.6.24.2 kernel. As far as this place is concerned, I was more or less hoping for quick response somewhat to the degree of "use X module found [here]".

On that note I have to say that I feel rather sorry for those new to Linux coming here for answers. If the philosophy here is to research the problem yourself, then why come here at all? With enough searching/studying, the solution is bound to present itself...

To be helpful to others with the same question I will add the following:

For people with the new MSI K9A2 Platinum (V1) motherboard with the Promise T3 RAID controller / FastTrack PDC42819 you will need visit www.promise.com, go to the driver download section and select FastTrack SAS. To get the source you'll need to select "Other" as the operating system. The actual module you need is called t3sas. Please note that as I mention above, it will not compile (by itself anyway) using the 2.6.24.2 kernel at the time of this post (2/18/2008). If you use an earlier kernel version, then there's a good chance you'll have better luck compiling the module.

guru_stpetebeach 03-21-2008 08:45 AM

Quote:

Originally Posted by viron (Post 3061479)
Search Google? Yea gee...didn't think of that. I ended up where you pointed to shortly after posting the question. Unfortunately the source to the t3sas driver (which is needed for that particular controller) will not compile against the 2.6.24.2 kernel. As far as this place is concerned, I was more or less hoping for quick response somewhat to the degree of "use X module found [here]".

Im having the same problem. Have you had any progress yet? I have some driver dev experience so I've started digging into the source. Im hoping I dont have to though.

Colin

guru_stpetebeach 03-22-2008 10:17 PM

Great news! I have the promise driver t3sas.ko compiled on the 2.6.24 kernel. There were a few errors that had to be corrected due to changes from the 2.6.18 to 2.6.24 versions.

I started by getting the driver compiled on a supported kernel 2.6.15 just so I could see what the output of a successful compile looks like and ensure that I could fdisk my RAID partition. I then got it working on 2.6.22 (ubuntu 7.10). So I took baby steps in getting to 2.6.24.

I used a ubuntu LiveCD (6.06LTS). Using the live cd I downloaded the kernel source and build-essential packages (also ncurses for menuconfig). I used a flash drive to hold the sources and driver build. I made mrproper, copied the config for the live cd from the /boot dir, made menuconfig and saved the config (i.e. no changes but rewrites the .config file.) build the kernel for 30 secs or so then Ctrl-c'd. With a good kernel source dir setup I was ready to compile the kernel module and debug. (dont forget to link via ln the /usr/src/kernel-source.2.6.24.x to /usr/src/linux.

The changes amounted to the following:
1. Change an include of /linux/ioctl32.h to /linux.ioctl.h
2. a struct dereference for ->sg_page is now via sg_page(sg)
3. In interrupt define flag SA_SHIRQ is now IRQF_SHARED

I will post a diff file soon enough. The promise driver on a supported kernel produces a MEGA amount of warnings even for a supported kernel version. After realizing that in 2.6.15, I felt like I might have a change at this!

I am now installing using the ubuntu alternate install. During the install, after the network is initialized, I go to another VT and copy my driver over to the modules dir where the install uses to detect the RAID controller. Then VT back and continue the install and partd. Then before rebooting I have to VT back and regenerate the initrd. I found a really good post on another site on how to do this. When I finally get my system installed I will post the details.

guru_stpetebeach 03-23-2008 01:55 AM

Got it! Successful kubuntu installation with latest kernel 2.6.24-11 64bit with RAID5 on 3x 320GB SATA, directly booting using the RAID array.

Phew!

guru_stpetebeach 03-27-2008 12:13 PM

I have posted the *preliminary* source for the driver. You can download it on my website at:
http://www.colinmackenzie.net/

viron 04-04-2008 04:38 PM

That's great...I had pretty much given up on the idea of using those two ports. I'll be sure and test your modified source later this evening on a 2.6.24.4 kernel and see what I can come up with.

viron 04-04-2008 07:02 PM

Everything compiles fine on 2.6.24.4. However...it's seems you've centered the module around 64 bit operations. This is not conducive to 32bit users. Upon trying to insmod I received an undefined reference to __udivdi3. Thanks a lot for your effort though. Perhaps you'll be able to resolve this in future updates to the source.

guru_stpetebeach 04-05-2008 11:51 PM

I am running a 64bit kernel, thus the error. Remember, I am not the original maintainer, I simply gave up on finding a solution to the problem and dug into the source code. I have a 32bit Ubuntu machine I can build it on to test. Might as well since I am familiar with the source now. I want to get rid of the compile time warnings anyway, clean them up.

Give me a little time and I'll have it. Are you running the Promise card now?

Colin


Quote:

Originally Posted by viron (Post 3111151)
Everything compiles fine on 2.6.24.4. However...it's seems you've centered the module around 64 bit operations. This is not conducive to 32bit users. Upon trying to insmod I received an undefined reference to __udivdi3. Thanks a lot for your effort though. Perhaps you'll be able to resolve this in future updates to the source.


viron 04-06-2008 12:36 PM

No. As of now it's disabled. No drivers to use it. I'd be happy to help test things out though.

guru_stpetebeach 04-07-2008 10:57 AM

Quote:

Originally Posted by viron (Post 3112659)
No. As of now it's disabled. No drivers to use it. I'd be happy to help test things out though.

I was just thinking, did you insmod it or modprobe to install the driver? insmod will produce unresolved references if a dependancy module is not loaded. Also, run "depmod -a" before trying to insert the module.

I would bet this is not the problem but still a problem with the source code, but lets cover our bases anyway.

Colin

viron 04-08-2008 11:14 AM

I tried all of the above. I'll play with it a little more this evening and post the results.

viron 04-08-2008 12:23 PM

Well...the link to the driver appears to be down. I'll try again later this evening and see if it's back up again.

guru_stpetebeach 04-10-2008 11:50 PM

Quote:

Originally Posted by viron (Post 3114799)
Well...the link to the driver appears to be down. I'll try again later this evening and see if it's back up again.

It should be up, I think I was playing with the apache module I wrote that does my photo album. I made it for Apache 1.3 and then Apache2 came out soon after. The mod API had some drastic changes. I am just getting around the bringing the code up to date. I didnt know that my module was messing with the whole web server. I am coding it on another machine now.

Also, I just got around to getting the build environment setup on my old 32 bit station and compiling the TX drivers on it. First thing I noticed is that the ftlib tries to build with the ftlib.obj in the tx4650 root dir, which I have packages as 64bit version. So I had to copy that from the ftlib dir and overwrite, build then succeeded. You most have figured this out to as you got the module built. I will fix this somehow in the Makefile.

I am not getting the same undefined symbol you are. I am getting sg_page symbol not found. I recognize this symbol as part of my update, it was a kernel changeover in 2.6.22 (I believe) which I am running 2.6.22-14. I converted the code sg_page(sg) back to sg->page and I got the module build and insmod'd without error.

I will have to upgrade my kernel to 2.6.24-4-x86 to see how it builds on that. I have a feeling that your compile problem is related to your kernel config. I think I had to change some kernel settings to get it to compile on my machine.

Here are a few config options that I remember were relevant:
Symmetric Multiprocessing Support - on
Preemption support - voluntary

I think the most important one was the SMP support and should be on. If you send me your email in a private message, I will send you a copy of my current kernel config for my 64 bit station. Other than 64bit cpu selected, the other options would be the same.

I will try to get my kernel upgraded this weekend on the 32bit workstation.

Colin

viron 04-14-2008 07:58 PM

The good news:

I sent my email to you in a private message, but I've solved the problem just now (for me anyway). At line 1806 in linux/osd_main.c

- u64 cylinders;
+ u32 cylinders;

u64 simply needs to be changed to u32. Once this is done, I'm able to insmod it just fine. Now obviously you're going to want to add something in the nature of:

#if defined(CONFIG_X86_64)
u64 cylinders;
#else
u32 cylinders;
#endif

Bad News:

Although the module compiles and inserts into the kernel, I'm still unable to see any devices connected to the controller. Were you actually able to see any drive connected to it? Keep in mind that during boot the drive is detected. Once in linux, I load the module, dmesg (and see that it worked) but where is the drive???

guru_stpetebeach 04-15-2008 09:56 AM

(this is a portion of a private email posted here for other users)

I am very glad to see you got in inserted. I didn’t modify the line you speak of, so it seems it was meant to be that way in 32bit kernels too. Likely what happened is when you modified that line, the 64bit division turned into 32bit division which this has been available for almost ever, so no linking problems. Still curious, is your problems with the 64bit division function. However, 32 bits should be fine too as long as your drive container (in the Promise Array Utility) does not report more than 2^32 cylinders.

Once I compiled and insmod'd the module I was able to see the drive immediately. This was using the Linux Live CD too, which I used to build the module so I could later insert it during the install process. (During the install you can go to another vterm, like Alt-Ctrl-F2, do your insmod, then back to the install vterm and continue the install process, then later when the install finishes but before your reboot, you update the initrd with it too using the other vterm. may sound complex, but pretty easy actually.)

You did create a container in your Promise Array utility/setup that appears during POST right? If you didn’t create a container, then you wouldn’t see any drives, even if just a single drive is on the controller I don’t think it automatically creates a container or virtual device for it. btw: I noticed the controller emulates a scsi devices. My drive shows up as /dev/sda. But if I put my old PATA drive in, then my SATA drives becomes sdc, but luckily linux now uses the drive UUID if specified in fstab, so it boots fine no matter what the /dev/sd is.

Colin

viron 04-15-2008 10:16 PM

No, I did not create a container for it. It posted the drive as JBOD (which is fine) because I don't plan on using it at the moment for any actual RAID setup. I'll try that and post the results back here.

viron 04-15-2008 10:31 PM

Still a no go. I'm not exactly sure what you meant by "create a container for it" unless you assumed I had multiple devices plugged into the controller. It's simply 1, 500GB HDD. When I 'ls /dev/sd*' or 'ls /dev/hd*' or even 'ls /dev/md*' all I see it what was there previously. Obviously I'm not doing something right. What version BIOS do you have on your board? I ask because I recently upgraded to v1.4.

Hmm...could it possibly be that the driver isn't setup to handle JBOD? Perhaps I would actally have to have both of my 500's hooked up and define an array? Just speculating....

guru_stpetebeach 04-16-2008 09:28 AM

Quote:

Originally Posted by viron (Post 3122605)
Still a no go. I'm not exactly sure what you meant by "create a container for it" unless you assumed I had multiple devices plugged into the controller.

We both have to remember, I have a TX4650 PCI-E card, and you have the same chip but integrated on your motherboard. There may be differences between its firmware or BIOS implementation and thus the driver too. If you go onto the Promise website does it give you the same link to the drivers?

When I reboot, the card hooks the BIOS and initializes itself. It posts a "Press Ctrl-? to enter Promise Array Setup" or something like that. Inside that it lists the hard drives attached and how I want to combine those hard drives. In my case I took my three identical drives of 320GB and made a container of 640GB RAID 5 (1 lost drive, 2+1 config). A container is just promise's term for a *virtual* hard drive that spans 1 or more drives. You could even have 1 container that spans the first half of three drives, and another that spans the latter half of the three drives.

I am not sure what the card would report to BIOS if I didnt create the container. Maybe it would report as three dries hda,hdb,hdc, I dont know, maybe it would not report any drives at all until I at least created a container on one of the drives. I cant find out now without deleting my config.

Quote:

It's simply 1, 500GB HDD. When I 'ls /dev/sd*' or 'ls /dev/hd*' or even 'ls /dev/md*' all I see it what was there previously. Obviously I'm not doing something right. What version BIOS do you have on your board? I ask because I recently upgraded to v1.4.
My motherboard is a MSI P7N Diamond with a Intel Quad Core 2.4GHz. I think your motherboard is a P7N Plantinum? There is a substantial difference in the two chipsets for these boards. You may want to go on the MSI forums too.

http://forum.msi.com.tw/

These forums are quite active and have some *really* smart people on there. They are mostly over-clockers and they understand the ins and outs of memory & pci timing to a great deal! I am still having a few stupid problems with my motherboard, not sure I am happy with it. For example, I still cant reboot my machine without unplugging all usb devices or my promise card init locks up. I have the most recent firmware for both the promise card and the MB but no go. Other people are complaining about usb probs with my MB too. My memory was only detected as 800MHz versus 1000MHz, but the guys on the forum had the answer for that. I have the same username on there.

Quote:

Hmm...could it possibly be that the driver isn't setup to handle JBOD? Perhaps I would actally have to have both of my 500's hooked up and define an array? Just speculating....
I still dont understand most of the driver coding. I was lucky to get it working myself probably. I think to tackle this problem we need to hasten the communication. We should move to instant messenger or over the phone. I have free long distance. I also call on other people with the PDC42819 chip to get in contact with me (via private message here or on my website) and together we can tackle the problem.

viron 04-17-2008 01:52 PM

I think that just answered my question. I was under the impression we were both using the same motherboard..haha. I have the MSI K9A2 Platinum. So the problem is the different revision of the Promise BIOS. That, and I have an integrated controller, yours' is simply an add-on card.

Oh well...it was worth a shot. I'll try the MSI forums and see what I can come up with. Thanks for all your help, I'm sure the people with your particular card will find this thread very useful.

Arreaux 04-19-2008 09:50 PM

Working on same problem
 
Hi viron and guru...

I too am a proud owner of a k9a2 platinum board. So...I have the same concerns.

I just got the puter assembled and don't even have a 64 bit linux yet to try on it.

That said..I booted a 32 bit Kubuntu 8.04 to see what would happen.

viron make sure you hit Cntl-F when the Promise bios come up. I'm sure you have to create a
raid configuration so the controller knows you have disks... I did and at every boot the bios
reports the disk I have.

My setup is slightly different than both of you as I bought a Fujitsu 73 G 15k rpm SAS drive.
The controller seems to like it because I hear it spin up when the Bios checks for it.
(if you buy a SAS drive you need a special cable tho SAS to SATA (get at scsi4me.com))

I have one issue as I only have this one hard drive installed in the box. I'll have to
work at getting a distro installed on it. I probably will attach with usb for the time being while sorting out the drive.

This is like a flashback for me. I haven't panic'd a kernel since '93 when I was trying to get my
UltraStor34 scsi controller installed on 1.0.13.

I checked the bootlog and the pci and they duly report the promise as registered but 'unknown'..so I imagine with some driver tweaking it should work.

Oh and Guru..I sent you an email on your website...I'm in St. Pete too.

Mathias.hellevang 05-05-2008 03:14 PM

Hi guys!

guru_stpetebeach, great work!

[Removed]

Edit: I removed the previous post as I did not see guru_stpetebeach's guide on his webpage before now. I'll try the steps described there :-)

PeeWee63 05-13-2008 08:10 PM

Solution for MSI K9A2
 
To get this working for the MSI K9A2 board, you need to make one adjustment to guru_stpetebeach's code. The vendor id is incorrect for the PDC42819 chip that is included on the MSI mainboard.

In linux/osd_main.c

Find the line:
{ 0x105a, 0x3f20, 0x105a, 0x3716, 0, 0, 0 }, //FastTrak PDC42819; SubDeviceID 3F20 -> 3716(20070625)


and change it to:

{ 0x105a, 0x3f20, 0x1462, 0x3716, 0, 0, 0 }, //FastTrak PDC42819; SubDeviceID 3F20 -> 3716(20070625)

recompile
and install this module. You will have to at least make your drives JBOD (from the RAID BIOS utility) to be recognized.

I obtained this information by issuing lspci -vv -nn in a shell. This will cause the PCI string in the generated t3sas.mod.c to include an identifier for the MSI board and it will match now.

Enjoy!

Jim

guru_stpetebeach 05-13-2008 11:42 PM

Awesome!We should be able to add a new PCI line instead of modifying the existing one. I will look into it. I will also post a note to this thread from my website so MSI MB owners will know what to do.

Thanks,
C

qbasasa 05-28-2008 03:13 PM

I cant download your driver the WwW says something about administrator editing files:\

guru_stpetebeach 05-29-2008 10:15 AM

I dont know what was wrong, I got the same error too. I recently moved my web site as the old server is being rebuilt and having problems with it.

It is working now though, I refreshed the files within my website CMS.

qbasasa 05-30-2008 07:54 AM

i have the driver but i cant make it on ubuntu 8.04 probobly b'cuz im to new to ubuntu :\

guru_stpetebeach 06-01-2008 03:43 PM

Quote:

Originally Posted by qbasasa (Post 3169266)
i have the driver but i cant make it on ubuntu 8.04 probobly b'cuz im to new to ubuntu :\

What is the problem you are having?

I am using 8.04 ubuntu on 64bit arch. If you are using the 64bit arch, I can send you my binary module and it should work fine. Send me your email address by personal message.

C

hochopeper 06-12-2008 07:24 PM

Hi guys,

I'm having a few problems setting up the tx4650 card. I'm running fedora 9 64bit. (2.6.25.4-30.fc8.x86_64 kernel)

When compiling a get a pile of errors. They start with

Code:

[root@localhost tx4650]# make
make ARCH=x86_64 V=1  CC=cc LD=ld ARCH=x86_64 DRIVER_SRC_DIR=/home/chris/Download/tx4650 -C /usr/src/linux SUBDIRS=`pwd` modules
make[1]: Entering directory `/usr/src/kernels/2.6.25.4-30.fc9.x86_64'
test -e include/linux/autoconf.h -a -e include/config/auto.conf || (                \
        echo;                                                                \
        echo "  ERROR: Kernel configuration is invalid.";                \
        echo "        include/linux/autoconf.h or include/config/auto.conf are missing.";        \
        echo "        Run 'make oldconfig && make prepare' on kernel src to fix it.";        \
        echo;                                                                \
        /bin/false)

I'm not entirely sure how to fix this error as I have the kernel-devel and kernel-headers packages installed (it is entering the correct directory for my kernel source). Is there anything that I can do to get past this? I think these 2 files referenced above no longer exist in the .25 kernel (at the locations referenced anyway) could anyone point me in the right direction please? I'm happy to collect more info and help with the updating of this driver to make it more robust/versatile for more users if possible.

Cheers,
Chris

guru_stpetebeach 06-17-2008 02:24 PM

Hi Chris,

I think I had this error when I first compiled the source as well. Are you using the src from the Promise site or my web site? The src from Promise is old and unmaintained since 2.6.18. I've updated it to the new kernels but it's not guaranteed with all kernel versions yet...but people seem to get it compiled on recent kernels with a little tweaking.

There are instruction in the error message to run "make oldconfig". I think this message appears when the ".config" file you should have copied into the kernel source dir is from an older kernel version than the one you are compiling...thus some options may be deprecated or new options missing/not specified. Running "make menuconfig" will run a nice text menu config program that allows you to see the config file settings and you can resave the config file which will refreshen the config file. Then run "make" and the error should dissappear.

You might want to go through some of the settings in the config file, especially processor, select the settings that will give you the most performance by enabling newer cpu options, etc, instead of going with the generic cpu settings.

C

Quote:

Originally Posted by hochopeper (Post 3183147)
Hi guys,

I'm having a few problems setting up the tx4650 card. I'm running fedora 9 64bit. (2.6.25.4-30.fc8.x86_64 kernel)

When compiling a get a pile of errors. They start with


viron 07-26-2008 01:47 AM

No longer compiles as of 2.6.24.10
 
This module no longer compiles as of kernel 2.6.24.10. Reference the following error messages:

tx4650/linux/osd_main.c:953: error: 'Scsi_Cmnd' has no member named 'use_sg'

tx4650/linux/osd_main.c:954: error: 'Scsi_Cmnd' has no member named 'request_buffer'

tx4650/linux/osd_main.c:1184: error: 'Scsi_Cmnd' has no member named 'request_bufflen'

loophole8 08-15-2008 12:30 AM

Quote:

Originally Posted by viron (Post 3226653)
This module no longer compiles as of kernel 2.6.24.10. Reference the following error messages:

tx4650/linux/osd_main.c:953: error: 'Scsi_Cmnd' has no member named 'use_sg'

tx4650/linux/osd_main.c:954: error: 'Scsi_Cmnd' has no member named 'request_buffer'

tx4650/linux/osd_main.c:1184: error: 'Scsi_Cmnd' has no member named 'request_bufflen'

This is because of changes to the struct scsi_cmnd. You basically need to:

Replace occurrences of cmd->request_buffer with scsi_sglist(cmd), occurrences of cmd->use_sg with scsi_sg_count(cmd), and occurrences of cmd->request_bufflen with scsi_bufflen(cmd)

in linux/osd_main.c

I would post a patch for you but linuxquestions munges the whitespace so it would be unusable. If you would like I could send you one.

Hope this helps!

loophole8 08-15-2008 12:46 AM

Okay, you can download the patch from here:

http://www.geocities.com/mdnelson8/fixup-scsi-stuff.txt

[seems that geocities doesn't like the .patch extension, thus .txt]

<rant>

To apply the patch download it and run the following from your tx4650 directory:

cat <path to patch> | patch -p1

eg:

cat ~/fixup-scsi-stuff.txt | patch -p1

If you later want to revert the changes caused by the patch give the -R option to patch.

Or you can make the changes yourself and then use the patch to verify that you've got all occurrences.

And to keep track of patches you can use quilt:

http://savannah.nongnu.org/projects/quilt

Or even git :)

</rant>

porchrat 04-28-2009 06:22 AM

Hi all

I'm hoping at least some of you are still monitoring this thread and can help me out. I have a MSI K9A2 Platinum. I would like to start using the eSATA ports to backup my data. However these ports are controlled by the Promise T3 FastTrack PDC42819 RAID controller.

Currently I'm running Ubuntu 8.04 (kernel 2.6.24-3).

At first I thought it just needed a drive connected up to work, but upon reading this I am not so sure. As a piece of additional information "lshw" outputs this:

Code:

*-storage UNCLAIMED
                description: RAID bus controller
                product: Promise Technology, Inc.
                vendor: Promise Technology, Inc.
                physical id: 0
                bus info: pci@0000:03:00.0
                version: 00
                width: 32 bits
                clock: 33MHz
                capabilities: storage bus_master cap_list
                configuration: latency=0

I am worried by the "UNCLAIMED" section and believe I may need drivers as I have so far been unable to get Ubuntu to recognise drives plugged into the Promise controller ports.

I am relatively proficient with Ubuntu, but I would definitely need help installing something like this.

If someone could help me out, maybe let me know where I can download the files I require, and give me some guidance on what steps need to be taken to get this controller running that would be awesome.

I am amazed at how far you guys have taken this driver and I hope that this is an answer to my problem.

loophole8 04-28-2009 11:59 PM

Quote:

Originally Posted by porchrat (Post 3523413)
Hi all

I'm hoping at least some of you are still monitoring this thread and can help me out. I have a MSI K9A2 Platinum. I would like to start using the eSATA ports to backup my data. However these ports are controlled by the Promise T3 FastTrack PDC42819 RAID controller.

Are you going to be using just SATA disks with the T3 controller, or will you be using SAS disks too?

If you're just going to use SATA disks you can use the AHCI driver, but this driver was patched with support for the T3 in AHCI mode only in kernel version 2.6.28 and onwards. Are you able to update your kernel?

porchrat 04-29-2009 04:53 AM

Quote:

Originally Posted by loophole8 (Post 3524307)
Are you going to be using just SATA disks with the T3 controller, or will you be using SAS disks too?

If you're just going to use SATA disks you can use the AHCI driver, but this driver was patched with support for the T3 in AHCI mode only in kernel version 2.6.28 and onwards. Are you able to update your kernel?

I won't be using SAS, only SATA2 drives, they're only for backups I don't think it justifies SAS. I don't need RAID either. I'm running a RAID array on the other controller, but as I mentioned before this is just to make backups a little easier. If it is going to end up being a big mess I'll just use USB, but I really would like to get this controller running as there is only space for one more SATA device on the first controller.

I have never tried updating a kernel, but I could look up a guide and give it a go. If I make a pigs-ear of it I can always fall back on the old 2.6.24 kernel. I would be much more comfortable updating a kernel than messing with driver code, I'm sure there are plenty of explanatory guides to getting a new kernel running.

I have never gone out of my way to learn how drivers work in Linux, I have been using it for under a year and all I've messed with are graphics drivers and some wifi drivers. These tend to come in pre-packaged .deb form. I do have some java experience, but I have never looked at code for drivers. Is there some sort of guide I could follow to get the Promise functioning under the new kernel with AHCI, or are there really no extra options required for this?

Thank you very much for your response. Is the kernel update something that you would recommend?

Alternatively I could bring the entire machine onto Jaunty Jackalope 9.04, I have it running on another machine and it is really fast. It runs 2.6.28. Would the promise run on AHCI under Jaunty out of the box, or would some tweaking be needed during the install?

loophole8 04-29-2009 08:56 PM

Excellent - seeing as you're not planning to use SAS disks you don't need anything that an updated AHCI driver can't give you. And you also won't have to use Promise's binary driver.

If you're using a kernel that has a new enough AHCI driver (>= 2.6.28) you don't need to use any special or extra options at all and you won't need to do any tweaking - when the driver gets loaded you'll just suddenly have four more SATA ports and your drives should be discovered.

As long as you don't have any requirements that mean you need to run a 2.6.24 kernel, I would suggest updating the kernel (your other alternative is to patch your current 2.6.24 kernel if you don't want to update your kernel and userspace and rebuild the kernel, initrd, etc). Or, alternatively if you don't depend on any old packages from 8.04 (and don't mind updating the whole Ubuntu installation) then bringing your Ubuntu installation up to 9.04 would work as well as it would pull in a new enough kernel to give you a working and useful T3 controller.

lashsilence83 06-12-2009 10:19 AM

super frustrating
 
I've been following this thread for some time and have tried every possible solution to get these two ports on my mobo to work but no matter what I can't get the driver to compile. I even applied the patch to it that was listed here and I just get different errors now. I have been using linux for some time and I try to not get stuck on things like this, but this time I'm clearly in over my head. Could someone please help me get this done? I also followed the instructions in the error and attempted to run make oldconfig && make prepare on the kernel source but that recieved a multitude of errors as well. I'm at my wits end with this problem. All I want is to be able to add a couple hard drives to my system and have them work... :( I can't seem to find anywhere to attach a txt file to show my errors so I'll just post the last few lines:

/opt/tx4650/linux/osd_main.c:1134:5: warning: "VDEBUG" is not defined
/opt/tx4650/linux/osd_main.c:1218:5: warning: "VDEBUG" is not defined
/opt/tx4650/linux/osd_main.c:1222:5: warning: "VDEBUG" is not defined
/opt/tx4650/linux/osd_main.c: In function ‘t3_probe’:
/opt/tx4650/linux/osd_main.c:2002: error: ‘SA_SHIRQ’ undeclared (first use in this function)
/opt/tx4650/linux/osd_main.c:2002: error: (Each undeclared identifier is reported only once
/opt/tx4650/linux/osd_main.c:2002: error: for each function it appears in.)
/opt/tx4650/linux/osd_main.c:2022: warning: statement with no effect
/opt/tx4650/linux/osd_main.c: At top level:
/opt/tx4650/linux/osd_main.c:2088: warning: function declaration isn’t a prototype
/opt/tx4650/linux/osd_main.c: In function ‘t3_remove’:
/opt/tx4650/linux/osd_main.c:2110: warning: statement with no effect
/opt/tx4650/linux/osd_main.c: In function ‘t3_shutdown_1’:
/opt/tx4650/linux/osd_main.c:2130: warning: statement with no effect
/opt/tx4650/linux/osd_main.c: In function ‘t3_shutdown_2’:
/opt/tx4650/linux/osd_main.c:2142: warning: statement with no effect
make[2]: *** [/opt/tx4650/linux/osd_main.o] Error 1
make[1]: *** [_module_/opt/tx4650] Error 2

porchrat 06-13-2009 06:21 AM

What distro are you using, which kernel?

As was mentioned previously kernels >= 2.6.28 come with an updated AHCI driver that supports the Promise controller. Most distros these days are running 2.6.28 or greater so updating should solve the problem assuming that you don't need to run an SAS device because that isn't supported on the AHCI driver. The great thing about that is that you then don't need to mess with the Promise drivers at all, solving the whole need to get them to compile.

Personally I've decided to backup everything using an extra drive on the last space on my currently working controller. I have found that Ubuntu 9.04 is a little too unstable so I will wait for 9.10 (as far as I recall it is actually an LTS version as well so even better for me). I will then backup everything I need, wipe the drives and move to 9.10 thus hopefully solving my problem. Just means I need to keep the backup drive mounted in the chassis for now, but I can live with that as I don't need to remove it unless there is a crash.

I am really glad this thread exists though because I was really getting worried that I would never have managed to sort this out. It is great to know that there are people that can help.

lashsilence83 06-13-2009 06:53 AM

RE:
 
ubuntu 9.04, 2.6.28-11, all sata drives
[EDIT]

I ran some updates, then reset the machine and poked around in the bios until I found the setting for the controller that specifies AHCI, RAID, or IDE. I set it to AHCI and then reset and ran the raid config utility and set a drive I plugged in as JBOD and then after resetting again to my surprise, the drive worked! I'm stoked now that I can order myself a couple of 1TB drives and continue doing backups for my home network. I wonder if I could get a RAID 0 working on those two ports? Because the AHCI driver is being used, should I always leave it on AHCI setting in the bios? Does this mean I can only use the controller as JBOD? I just want to get things straight before I decide on a permanent setup.


All times are GMT -5. The time now is 10:42 AM.