Drivers for Promise PDC42819 RAID Controller on MSI K9A2 Platinum Motherboard
Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
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
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
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.
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.
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?
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?
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.
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
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.
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.
Last edited by lashsilence83; 06-13-2009 at 08:31 AM.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.