# hdparm fehler - HDIO_SET_DMA failed: Inappropriate ioctl for

## cypher_head

hallo gentoo gemeinde:

habe auf meinem system folgende fehlermeldung, wenn ich mit hdparm arbeite:

```
# hdparm -d 1 /dev/sda

/dev/sda:

 setting using_dma to 1 (on)

 HDIO_SET_DMA failed: Inappropriate ioctl for device
```

mein board ist ein asrock p4vt8+ mit einer sata platte.

kernel ist der 2.6.12-rc2

dmesg meldung:

```
libata version 1.10 loaded.

sata_via version 1.1

ACPI: PCI Interrupt 0000:00:0f.0[B] -> GSI 20 (level, low) -> IRQ 20

sata_via(0000:00:0f.0): routed to hard irq line 4

ata1: SATA max UDMA/133 cmd 0xEC00 ctl 0xE802 bmdma 0xDC00 irq 20

ata2: SATA max UDMA/133 cmd 0xE400 ctl 0xE002 bmdma 0xDC08 irq 20

ata1: dev 0 cfg 49:2f00 82:346b 83:7d01 84:4003 85:3469 86:3c01 87:4003 88:407f

ata1: dev 0 ATA, max UDMA/133, 390721968 sectors: lba48

ata1: dev 0 configured for UDMA/133

scsi0 : sata_via

ata2: no device found (phy stat 00000000)

scsi1 : sata_via

  Vendor: ATA       Model: ST3200822AS       Rev: 3.01

  Type:   Direct-Access                      ANSI SCSI revision: 05

SCSI device sda: 390721968 512-byte hdwr sectors (200050 MB)

SCSI device sda: drive cache: write back

SCSI device sda: 390721968 512-byte hdwr sectors (200050 MB)

SCSI device sda: drive cache: write back

 sda: sda1 sda2 sda3 sda4 < sda5 >

Attached scsi disk sda at scsi0, channel 0, id 0, lun 0

mice: PS/2 mouse device common for all mice

```

auf der ata platte funkt es:

```
 # hdparm -d 1 /dev/hda

/dev/hda:

 setting using_dma to 1 (on)

 using_dma    =  1 (on)

 # hdparm -d 1 -A 1 -m 16 -u 1 -a 64 /dev/hda

/dev/hda:

 setting fs readahead to 64

 setting multcount to 16

 setting unmaskirq to 1 (on)

 setting using_dma to 1 (on)

 setting drive read-lookahead to 1 (on)

 multcount    = 16 (on)

 unmaskirq    =  1 (on)

 using_dma    =  1 (on)

 readahead    = 64 (on)

# hdparm -d 1 -A 1 -m 16 -u 1 -a 64 /dev/sda

/dev/sda:

 setting fs readahead to 64

 setting multcount to 16

 HDIO_SET_MULTCOUNT failed: Inappropriate ioctl for device

 setting unmaskirq to 1 (on)

 HDIO_SET_UNMASKINTR failed: Inappropriate ioctl for device

 setting using_dma to 1 (on)

 HDIO_SET_DMA failed: Inappropriate ioctl for device

 setting drive read-lookahead to 1 (on)

 HDIO_DRIVE_CMD(setreadahead) failed: Inappropriate ioctl for device

 HDIO_GET_MULTCOUNT failed: Inappropriate ioctl for device

 readahead    = 64 (on)
```

kann mir da einer helfen??

gruss cypher_headLast edited by cypher_head on Thu Apr 14, 2005 1:56 pm; edited 1 time in total

----------

## TheCurse

Ist ioctl im Kernel aktiviert?

----------

## cypher_head

 *TheCurse wrote:*   

> Ist ioctl im Kernel aktiviert?

 

wo finde ich das??

OK so heisst es im kernel

```
IDE Taskfile Access 
```

werde es testen

----------

## cypher_head

jetzt ist es drin, fehler bleibt aber ;-(

```
 root # hdparm -tT /dev/hda

/dev/hda:

 Timing cached reads:   1672 MB in  2.00 seconds = 836.13 MB/sec

 Timing buffered disk reads:  168 MB in  3.03 seconds =  55.49 MB/sec

root # hdparm -tT /dev/sda

/dev/sda:

 Timing cached reads:   1672 MB in  2.00 seconds = 834.88 MB/sec

HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device

 Timing buffered disk reads:  186 MB in  3.01 seconds =  61.80 MB/sec

HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device

```

----------

## EnricoHorn

Für SATA-Platten brauchst du das DMA nicht anzuschalten, ist automatisch an!

----------

## bozan

Hallo,

habe das selbe Problem gehabt. Die Ursache ist, das libata noch keine direkten ioctl() calls implementiert hat. Soll aber laut Entwickler bald kommen. 

BoZaN

----------

## cypher_head

hey bozan,

du schreibst, das du das problem gehabt hast. haste es denn gelöst und wenn wie??

gruss cypher_head

----------

## 76062563

Würde mich auch interessieren ich hab das selbe Problem.

----------

