Activar DMA

Imagen de mz
mz
0 puntos

bueno, desde siempre ubuntu a sido la unica distribucion con la que tengo este problema. curiosamente tambien es la distribucion que mas me satisface, por eso trato de solucionarlo por todos los medios. el problema viene a ser que a nada que este aciendo algo, especialmente usando el apt, aptitude, o cualquier herramienta de configuracion, el ordenador se me volvia lentisimo.

y llevo asi desde hoary.
tras dar vueltas, buscar de un sitio a otro, herrores por el estilo, no encontraba nunca nada, pero el otro dia no se xq acabe leyendo algo sobre dma, me dio por mirar, y la tenia desactivada. "no vaya a ser eso..." me dije. asi que probe a activarla:

mz@gantz:~$ sudo hdparm -d1 /dev/hda1

/dev/hda1:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Invalid argument
using_dma = 0 (off)
mz@gantz:~$

d'oh!

busque el error por ahi, y llegue a la conclusion de que tenia que recompilar el kernel. y ni corto ni perezoso, me puse a ello. make mrproper, make menuconfig, blahblahblah make-kpkg --append-to-blahblah blah.

y lo compile. a reiniciar. entro con el nuevo kernel, miro la dma, coño, activada. mas feliz que nadie. ahora la parte mala:

al recompilar el kernel toque mas de lo que debia, y me quede sin acceso a un disco sata que tengo y a internet (voy via router por eth0). y mierda ya. de que me vale estar con dma si pierdo lo otro?

asi que me volvi a mi viejo kernel, sin dma.

mi peticion: ¿alguien sabe que hay que tocar exactamente en el kernel para activar la dma? o mejr aun... alguna manera de activarla sin tener q recompilar? :D

gracias

Imagen de mz
+1
0
-1

OMG he escrito errores con h!! ya siento semejante patadon al diccionario.
----------------------

quitando el 1 a /dev/hda1 tambien falla :p

root@gantz:/home/mz# hdparm -d1 /dev/hda

/dev/hda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)
root@gantz:/home/mz#

+1
0
-1
Imagen de xinelo
+1
0
-1

A mi ejecutar ese comando parece que me ha funcionado:

xinelo@micho:~$ sudo hdparm -d1 /dev/hda

/dev/hda:
setting using_dma to 1 (on)
using_dma = 1 (on)
xinelo@micho:~$ sudo nano /etc/hdparm.conf

Sin embargo, he visto que /etc/hdparm.conf tiene las siguientes líneas comentadas:

#/dev/hda {
# mult_sect_io = 16
# write_cache = off
# dma = on
#}

Me pregunto por que y si no sería bueno descomentarlas.

Salud y gracias, xinelo

+1
0
-1
Imagen de gabiel
+1
0
-1

Esas líneas pertenecen a una serie de ejemplos que se incluyen en el propio archivo. Unas líneas más arriba te da una breve explicación sobre cada ejemplo; si quieres saber que hace exáctamente cada parámetro, puedes dirigirte directamente a la documentación de hdparm.

Saludos.

♠ ♣ ♥ ♦
Este comentario puede contener trazas de cacahuetes, almendras y germen de trigo.
[Documentación oficial][Normas del foro]

+1
0
-1
Imagen de ekaitza
+1
0
-1

sudo nano /etc/hdparm.conf

Te vas al final del fichero y escribes esto:

/dev/hdc {
dma = on
}

/dev/hdd {
dma = on
}

Lo anterior es aplicable a un ordenador que tiene un lector de cd/dvd y un grabador, ambos en el IDE secundario. Es un caso muy común, pero a lo mejor no coincide con tu ordenador. Adáptalo a tu caso (mirar /etc/fstab).

Cuando escribas el fichero ese, reinicia la máquina.

+1
0
-1

Imagen de jamogon
+1
0
-1

yo he hecho eso, pero sigue sin funcionar :( alguien podría echarme un cable

+1
0
-1
Imagen de gabiel
+1
0
-1

Prueba a hacerlo desde un terminal mediante sudo hdpar -d1 /dev/tu_disco_duro y mira los mensajes que devuelva. Si de esa forma se activa el DMA, entonces revisa que los cambios que hiciste a hdparm.conf sean correctos.

Saludos.

♠ ♣ ♥ ♦
Este comentario puede contener trazas de cacahuetes, almendras y germen de trigo.
[Documentación oficial][Normas del foro]

+1
0
-1
Imagen de gabiel
+1
0
-1

¿Compilaste el kernel desde las fuentes de Ubuntu o bajaste las fuentes de otro sitio?

Lo único que se necesita para poder usar DMA (en los equipos que dispongan de él) es compilar el soporte para el chipset de la placa base. Lo extraño es que por defecto se incluye soporte para todos los chipsets que disponen de él, así que deberías de poder usarlo sin recompilar. Asegurate de que se cargaba el módulo correspondiente a tu chipset en el arranque (tal vez al compilar el kernel lo integraste en el kernel, en vez de compilarlo como un módulo); por cierto ¿que chipset usa tu placa base?

Saludos.

--------
Para ver mi firma rasca aquí ===> ||||||||||||||||||||||||||||||||
Para ver algo más interesante, haz clic aquí.
Jabber ID: gabiel@jabber.org

+1
0
-1