Linux (FC4) Incorrectly Detects UDMA Mode on Asus DVD E616P2
I have just recently installed FC4 on my machine and I am having problems working with my Asus DVD E616P2 drive, currently attached to the secondary IDE channel (ide1,hdc). First my system spec:
Asus A8N-SLI motherboard (nForce4), very recent or latest BIOS AMD Athlon64 3200+ (90 micron) 2x512MB RAM, dual-channel = 1GB IDE 0 Master: NEC-3500A (DVD RW) IDE 1 Master: Asus DVD E616P2 nForce SATA: WD Raptor 80GB PnP OS is off in BIOS Now I will note that the drive also does not work by default in Mandriva LE 2005, but it DOES work in Knoppix 3.9. I tried installing FC4 thinking Mandriva sucked because of the CD problem and FC4 has the same problem. Installer couldn't read from Asus but I could read and install from the NEC drive. I get the following dmesg errors whenever something tries to access the drive. Quote:
I've finally figured out the problem, but I just don't know how to properly solve it. While just looking around in /proc I found a file in /proc/ide that showed the status of my IDE controller. It showed my NEC drive in UDMA mode 2 (33MB/s), but it showed my Asus drive in UDMA mode 5 (100MB/s), which I knew to be impossible! BIOS and Windows XP show the drive as mode UDMA2, but the Asus official site shows the drive supporting UDMA2 and UDMA4, while another random shopping site I found on the web says it supports up to ATA-100 (UDMA5). So something is wrong all around. Well because hdparm crashes the system I rebooted the system in runlevel 1 (single user mode) and hdparm then works. I turn off DMA: "hdparm -d0 /dev/hdc" and for the first time ever it works! I turn on DMA: "hdparm -d1 /dev/hdc" and system fails b/c of UDMA5 mode being nonsense. I forced UDMA mode 2 "hdparm -X66 /dev/hdc" and DMA is enabled and the drive still works. So the problem is that Linux is detecting the drive as supporting UDMA 5 when it does not and causes all sorts of bad when it tries to do anything with it. I am at work, so I haven't yet tried mode 4, which I just found out should work. But my question is: Can I adjust kernel parameters or somehow use hdparm to change the settings on startup? For some reason setting the drive to PIO in the BIOS does not work (still Linux insists on UDMA) and also for some reason "ide1=nodma" does not turn off DMA. It seems that once Linux tries to access the IDE controller it screws up the IDE (thankfully my HD is on SATA!), so I need to adjust these settings AS SOON AS POSSIBLE in bootup. What can I do? I would like to use at least UDMA mode 2 rather than force PIO on my primary DVD drive, as it does read 16x (21,000kb/s), so UDMA is very useful here. |
I have solved this problem by placing "hdparm -X66 /dev/hdc" in my rc.local file. I did find the /etc/sysconfig/harddrives file but nowhere could I find out the proper syntax. It looked like I could put just -X66 under the options, but I couldn't find out how to specify it ONLY for my Asus drive, hdc. Anyway, turning down the DMA mode lets the CD drive operate perfectly.
|
All times are GMT -5. The time now is 11:06 PM. |