COMO: Añadiendo soporte DSDT en Hoary y posterior

+1
0
-1

El DSDT es un tipo de archivo que permite sobre sobreescribir la información acerca del ACPI que da el hardware.

Si la información proporcionada por el hardware es incorrecta nos podemos encontrar cosas como: tarjetas de sonido que funcionan mal, baterias de las cuales es imposible sacar la capacidad restante, funciones de ahorro de energia deshabilitadas, etc...

Con los archivos DSDT se puede arreglar todo lo anterior, pero se deben cargar justo en el momento que se inicia el núcleo del sistema.

Soluciones:

  • Adjuntar ese archivo al initrd manualmente cada vez que hay una actualizacion del kernel
  • Dejar que Ubuntu lo haga por nosotros de forma automatica

Como esta claro voy a explicar la segunda ;) y en solo dos pasos:

  1. Renombramos nuestro archivo DSDT a /etc/mkinitrd/DSDT
    Atencion: usar ese nombre de archio tal cual sin extension ni nada
  2. Reconfiguramos el paquete del kernel para que refleje el cambio que acabamos de hacer.
    Esto se puede hacer con:
    dpkg-reconfigure paquetedelkernelqueusamos

    Si no conocemos el paquete al cual pertenece el kernel que usamos podemos ejecutar la siguiente linea que nos imprime el paquete que toca y ejecutar el comando anterior

    dpkg -S $(grep vmlinuz /boot/grub/menu.lst | grep ^kernel | cut -d "/" -f 2- | cut -d " " -f 1 | head -n $(echo $((`cat /boot/grub/menu.lst | grep ^default | tail -1 | sed -e 's/[^0-9]//g'`+1)))) | cut -d ":" -f 1
  3. Listo, en el siguiente reinicio el archivo DSDT será cargado y si es el correcto nuestra bateria y demas funciones de energia funcionarán perfectamente.

Comentarios

Imagen de versvs

No estoy en casa, motivo por el cual no puedo probar, pero me serviría hacer esto para poder monitorizar los parámetros de los sensores de mi equipo (Tª de cpu, HD, velocidad de ventiladores, ...) usando, por ejemplo, gdesklets? Es que actualmente no puedo hacer nada de eso y la verdad es que es algo que me gustaría tener controlado.

Lo probaré luego al llegar a casa pero me gustaría saber si realmente hay opciones... je!

Saludos.
--
"never is a promise, and i'll never need a lie"

JID: versvs@jabberes.org

Imagen de Anónimo

Hola

He usado este método en mi acer y ha funcionado perfectamente. Recientemente han modificado el wiki de ubuntu (oficial) y hay una página que hace referencia a cómo parchear el kernel para usar el dsdt, pero usando un metodo un poquito más complicado que el tuyo. Por esta razón me he tomado la libertad de añadir (si lo he hecho bien) tu solución (eso sí, añadiendo el link al como original de aquí.) Espero que no haya ningún problema.

Un saludo.

Imagen de pier

Hola xuzo. Gracias por este método sencillo, pero tengo un para de problemillas que soy incapaz de resolver. A saber:
1. Deduzco (ya que no controlo mucho el tema), que cuando hablas del DSTD te refieres al archivo lo_que_sea.asl que te bajas de acpi para tu portatil, y que compilas con el compilador este de Intel. Pero yo al intentar crear el compilador de Intel, me da el siguiente error (tengo bajado el flex y el bison):
nacho@portatil:~/acpi/acpica-unix-20050930/compiler$ make
cc -Wall -O2 -Wstrict-prototypes -D_LINUX -DACPI_ASL_COMPILER -I../include -c -o aslcompilerlex.o aslcompilerlex.c
aslcompiler.l: En la función 'comment':
aslcompiler.l:847: error: 'yytext_ptr' no se declaró aquí (primer uso en esta función)
aslcompiler.l:847: error: (Cada identificador no declarado solamente se reporta una vez
aslcompiler.l:847: error: para cada funcion en la que aparece.)
make: *** [aslcompilerlex.o] Error 1

con lo que me quedo sin DSTD

2. La otra es, cuando hablas de reconfigurar el paquete del kernel que usamos, te refieres al linux-image-...?

Gracias por adelantado.

Imagen de niso

sudo apt-get remove flex
sudo apt-get install flex-old bison gcc gcc-3.4 build-essential
Borra la carpeta donde lo has descomprimido y vuelvelo a descomprimir.
Vuelve a hacer un make, con eso deberia bastar ;)