Description of problem: My IDE disk need to be switched from UDMA5 to UDMA4 in order to prevent errors caused by a removable tray cabling. hdparm is unable to do that. Version-Release number of selected component (if applicable): hdparm-7.7-1.fc8.x86_64 How reproducible: Always Steps to Reproduce: 1. hdparm -d1 -X68 -k1 /dev/sdc Actual results: /dev/sdc: setting using_dma to 1 (on) HDIO_SET_DMA failed: Inappropriate ioctl for device setting keep_settings to 1 (on) HDIO_SET_KEEPSETTINGS failed: Inappropriate ioctl for device setting xfermode to 68 (UltraDMA mode4) SG_IO: bad/missing ATA_16 sense data:: 70 00 05 00 00 00 00 0a 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 HDIO_DRIVE_CMD(setxfermode) failed: Input/output error Expected results: no errors Additional info: Back in the old days when sdc was hda it worked fine. Output of hdparm -i /dev/sdc: Model=WDC WD2000JB-00GVA0 , FwRev=08.02D08, SerialNo=WD-WCALxxxxxxxx Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq } RawCHS=16383/16/63, TrkSize=57600, SectSize=600, ECCbytes=74 BuffType=DualPortCache, BuffSize=8192kB, MaxMultSect=16, MultSect=?16? CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=268435455 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5 AdvancedPM=no WriteCache=enabled Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6
hdparm cannot be used for libata devices (ATA devices named like SCSI devices). Unfortunately I haven't found a way to set a specific DMA mode with sdparm either so the only solution right now that I'm aware of is to add your harddisk model to the libata blacklist in the kernel source and build your own custom kernel. On the other hand I personally wouldn't trust any data on that removable tray HD anyway and just go for a USB disk.