LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   Linux (FC4) Incorrectly Detects UDMA Mode on Asus DVD E616P2 (https://www.linuxquestions.org/questions/linux-hardware-18/linux-fc4-incorrectly-detects-udma-mode-on-asus-dvd-e616p2-342804/)

gillius 07-13-2005 10:17 AM

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:

hdc: media error (bad sector): status=0x51 { DriveReady SeekComplete Error }
hdc: media error (bad sector): error=0x30 { LastFailedSense=0x03 }
ide: failed opcode was: unknown
ATAPI device hdc:
Error: Hardware error -- (Sense key=0x04)
(reserved error code) -- (asc=0x08, ascq=0x03)
The failed "Read 10" packet command was:
"28 00 00 00 00 10 00 00 20 00 00 00 00 00 00 00 "
end_request: I/O error, dev hdc, sector 64
Buffer I/O error on device hdc, logical block 8
Buffer I/O error on device hdc, logical block 9
Buffer I/O error on device hdc, logical block 10
Buffer I/O error on device hdc, logical block 11
Buffer I/O error on device hdc, logical block 12
Buffer I/O error on device hdc, logical block 13
Buffer I/O error on device hdc, logical block 14
Buffer I/O error on device hdc, logical block 15
Buffer I/O error on device hdc, logical block 16
Buffer I/O error on device hdc, logical block 17
Whatever process attempts to access /dev/hdc or drive in anyway is frozen completely, not even kill -9 will stop the process. hdparm on /dev/hdc also freezes completely, even just to view information.

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.

gillius 07-13-2005 09:35 PM

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.