# Abilitare DMA

## osar_sabin

Raga, ho un HP pavilion zv6181 con gentoo installato da pochissimo  :Smile:  .

Il mio problema sta nel fatto che nn riesco ad abilitare il dma del mio Hard disk.

Ho provato eseguendo hdparm -d1 /dev/hda ma come risultato mi da questo:

HDIO_SET_DMA failed: Operation not permitted

Inizialmente pensavo che il problema risiedesse nel kernel, ma avendolo rincontrollato + volte mi pare di aver settato ttuo bene, tuttavia essendo all'inizio con Linux ho consultato questo per il kernel:

http://gentoo-wiki.com/HARDWARE_Gentoo_Linux_64bit_on_HP_Pavilion_zv6000_series_notebook

ma niente il rpoblema è sempre lo stesso. Sapete aiutarmi?  :Confused: 

----------

## randomaze

 *osar_sabin wrote:*   

> HDIO_SET_DMA failed: Operation not permitted

 

Questo solitamente succede quando il supporto al chipset non é compilato nel kernel oppure quando il chipset non é ben supportato.

Dato che la guida che hai linkato mi é sembrata generica, sei sicuro che il tuo chipset é lo stesso degli altri della stessa serie? Perché a volte cambiano....

----------

## osar_sabin

il mio output con lspci è questo:

00:00.0 Host bridge: ATI Technologies Inc RS480 Host Bridge

00:01.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge

00:04.0 PCI bridge: ATI Technologies Inc Unknown device 5a36

00:13.0 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller

00:13.1 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller

00:13.2 USB Controller: ATI Technologies Inc IXP SB400 USB2 Host Controller

00:14.0 SMBus: ATI Technologies Inc IXP SB400 SMBus Controller (rev 10)

00:14.1 IDE interface: ATI Technologies Inc Standard Dual Channel PCI IDE Controller ATI

00:14.3 ISA bridge: ATI Technologies Inc IXP SB400 PCI-ISA Bridge

00:14.4 PCI bridge: ATI Technologies Inc IXP SB400 PCI-PCI Bridge

00:14.5 Multimedia audio controller: ATI Technologies Inc IXP SB400 AC'97 Audio Controller (rev 01)

00:14.6 Modem: ATI Technologies Inc ATI SB400 - AC'97 Modem Controller (rev 01)

00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration

00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map

00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control

01:05.0 VGA compatible controller: ATI Technologies Inc ATI Radeon XPRESS 200M 5955 (PCIE)

03:00.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)

03:02.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)

03:04.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller

03:04.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller

03:04.4 Class 0805: Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD) Controller

03:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

Sai dirmi qualcosa?

----------

## Ic3M4n

```
00:14.1 IDE interface: ATI Technologies Inc Standard Dual Channel PCI IDE Controller ATI
```

questo è il tuo. sei sicuro di averlo compilato nel kernel?

----------

## osar_sabin

su ATA/ATAPI/MFM/RLL trovo ATI IXP chipset IDE support che è abilitato...non so che fare  :Crying or Very sad: 

Da cosa altro puo dipendere?

----------

## osar_sabin

con il cd live funziona...sto impazzendo

----------

## randomaze

 *osar_sabin wrote:*   

> con il cd live funziona...sto impazzendo

 

Allora copia la configurazione del live CD e ricompila il kernel... oppure confrinta i due /proc/config.gz per trovare la differenza...

----------

## osar_sabin

non me lo cancella...  :Rolling Eyes:   e dunque non posso sostituirlo con l'altro...naturalmente faccio da root

----------

## osar_sabin

mi arrendo...faccio fare a genkernel

----------

## Ic3M4n

scusa ma cos'è che non riesci a fare? prendi il config del livecd da /proc/config.gz, lo estrai e lo imposti come .config nella dir del tuo kernel, solitamente il symlink /usr/src/linux

----------

## osar_sabin

ho avviato genkernel facendo fare tutto a lui.

Dop di che ho avviato il pc e ho dato 

hdparm -d1 /dev/hda

Risultato---UGUALE A PRIMA.

Dunque non penso dipenda dal kernel...voi che dite?

----------

## Ic3M4n

il dma viene impostato nel kernel, se non funziona credo proprio che tu abbia sbagliato qualcosa.

----------

## osar_sabin

ma il genkernel non crea un kernel uguale a quello del cd?

----------

## makoomba

posta

```
dmesg | grep -i ide

hdparm -iv /dev/hda
```

----------

## osar_sabin

ecco i risultati

dmesg | grep -i ide 

Bootdata ok (command line is video=vesafb:mtrr,ywrap,1280x768-32@85 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev)

BIOS-provided physical RAM map:

ACPI: IRQ0 used by override.

ACPI: IRQ2 used by override.

Kernel command line: video=vesafb:mtrr,ywrap,1280x768-32@85 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev

PCI: Ignoring BAR0-3 of IDE controller 0000:00:14.1

Boot video device is 0000:01:05.0

ACPI: Video Device [VGA] (multi-head: yes  rom: no  post: no)

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2

ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx

Probing IDE interface ide0...

Probing IDE interface ide1...

ide0 at 0x1f0-0x1f7,0x3f6 on irq 14

ide1 at 0x170-0x177,0x376 on irq 15

hdparm -iv /dev/hda

/dev/hda:

 multcount    =  0 (off)

 IO_support   =  0 (default 16-bit)

 unmaskirq    =  0 (off)

 using_dma    =  0 (off)

 keepsettings =  0 (off)

 readonly     =  0 (off)

 readahead    = 256 (on)

 geometry     = 65535/16/63, sectors = 100030242816, start = 0

 Model=FUJITSU MHU2100AT, FwRev=00000008, SerialNo=NQ07T572F8C7

 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }

 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4

 BuffType=DualPortCache, BuffSize=8192kB, MaxMultSect=16, MultSect=off

 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=195371568

 IORDY=yes, tPIO={min:240,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=yes: mode=0x80 (128) WriteCache=enabled

 Drive conforms to: ATA/ATAPI-6 T13 1410D revision 3a:

 * signifies the current active mode

----------

## nightshadow

Il problema e' gia stato trattato diverse volte  :Smile: 

in questo post

https://forums.gentoo.org/viewtopic-p-3133196.html#3133196

trovi la soluzione al problema.

in sostanza, occorre abilitare il supporto libata per le periferiche PATA e gestirle come fossero SCSI.

----------

## osar_sabin

ma il mio non è un sata  :Confused:   ...sei sicuro di ciò???

----------

## randomaze

 *osar_sabin wrote:*   

> ma il mio non è un sata   ...sei sicuro di ciò???

 

Il disco no, ma, probabilmente il controller si, infatti se leggi il link che ti ha passato nightshadow:

 *Quote:*   

> 
> 
> accade quando utilizzi un dispositivo EIDE/ATAPI collegato a un controler SATA (che, per semplificare, "emula" un controller IDE). 

 

Controlla... e se effettivamente il tuo controller é SATA faccio il merge dei thread.

----------

## osar_sabin

no, non è sata

----------

## osar_sabin

ho risolto ricompilando nuovamente il kernel

----------

