Jejeje después de haber probado esta herramienta no he dudado en escribir para el faq...
Ante todo decir que hdparm es una herramienta para modificar parámetros de los discos IDE.
En un principio tendremos que bajarlo de la siguiente url:
(link roto)
Acto seguido compilamos... y procederemos a ejecutarlo como root. (No hace falta decir que en Debian... apt-get install hdparm).
Con el comando hdparm -i /dev/hdX podremos ver la información respecto a nuestro disco duro, donde X es el identificador para nuestro disco duro (a: maestro primer canal ide, b: esclavo primer canal ide; c: maestro segundo...):
paran0ia:/home/mcclane# hdparm -i /dev/hda
/dev/hda:
Model=ST340823A, FwRev=3.54, SerialNo=6EF00LYA
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=1024kB, MaxMultSect=16, MultSect=off
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=78165360
IORDY=on/off, 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
AdvancedPM=no WriteCache=enabled
Drive conforms to: device does not report version: 1 2 3 4
Y con hdparm /dev/hdX podremos ver las opciones que tenemos habilitadas:
paran0ia:/home/mcclane# hdparm /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 = 8 (on)
geometry = 4865/255/63, sectors = 78165360, start = 0
Ahora vienen las modificaciones: primero activaremos el IO_support con 32 bits y después activaremos el dma:
paran0ia:/home/mcclane# hdparm -c3 /dev/hda
/dev/hda:
setting 32-bit IO_support flag to 3
IO_support = 3 (32-bit w/sync)
paran0ia:/home/mcclane# hdparm -d1 /dev/hda
/dev/hda:
setting using_dma to 1 (on)
using_dma = 1 (on)
Al activar el DMA, puede que no nos deje, dándonos el siguiente error:
/dev/hda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)
En este caso, tendremos que recompilar el kernel, activando las siguientes opciones:
En ATA/IDE/MFM/RLL support ir a IDE, ATA and ATAPI Block devices y alli activar Generic PCI IDE chipset support y Generic PCI bus-master DMA support.
Hecho ésto, no habrá ningun problema ;)
Con lo que ahora si hacemos hdparm /dev/hdX nos quedará así:
paran0ia:/home/mcclane# hdparm /dev/hda
/dev/hda:
multcount = 0 (off)
IO_support = 3 (32-bit w/sync)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 4865/255/63, sectors = 78165360, start = 0
Si comprobamos la velocidad del disco con hdparm -Tt /dev/hdaX, veremos que... vuela!
paran0ia:/home/mcclane# hdparm -Tt /dev/hda
/dev/hda:
Timing buffer-cache reads: 128 MB in 0.83 seconds =154.22 MB/sec
Timing buffered disk reads: 64 MB in 2.17 seconds = 29.49 MB/sec
El resultado es sorprendete, notaremos cambios al descomprimir archivos grandes, viendo películas, etc.. A mí desde luego me ha funcionado a las mil maravillas :)
hdparm dispone también más opciones (las cuales no vamos a comentar) que podremos consultar con man hdparm o visitando a nuestro querido amigo google.
Jorrrr menuda parrafada xDDD. Enga, que alguien me corriga fallos o si hay algo que añadir que añada :D
Un saludo.