Acer y el problema de las baterías -- Solución facil

Tengo la suerte de contar con un Acer TM 4001 wlmi, cuya batería es una smart battery y no funciona con los drivers acpi por defecto.

Bruno Ducrot creo un parche del kernel y unos módulos para poder acceder, pero tenía algún bug q me petaba al cargarse del todo o descargarse del todo. Además, había que recompilar el núcleo.

Pues bueno, ahora tengo por fin una solución relativamente sencilla para el problema, sin recompilar kernel en ubuntu.

Lo que se necesita es el parche dsdt-initrd, pero ubuntu lo trae aplicado ya en sus kernels (al menos hoary). También Mandrake lo trae y es posible que otras distros también lo traigan.

Lo siguiente que se necesita es un compilador/decompilador raro de intel llamado iasl.
Para bajarse las fuentes, hay que ir a:
http://developer.intel.com/technology/iapc/acpi/downloads.htm
Habrá que compilar, que no es muy dificil.
Hace falta flex, y creo que bison. Eso sí, tuve problemas con el paquete flex de ubuntu (demasiado nuevo??) y tuve que instalar el paquete flex-old, también en los repositorios, para poder compilarlo.

Una vez que tenemos el ejecutable podemos copiarlo por ejemplo en /usr/local/bin para tenerlo en el PATH.

Ahora, nos bajaremos la ultima versión del driver en:
http://sourceforge.net/projects/sbs-linux/
Descomprimimos en /donde/quieras/sbs-{version}

Ejecutamos (en algunos casos necesitaremos ser root o sudoer):
$ cd /donde/quieras/sbs-{version}
$ cat /proc/acpi/dsdt > dsdt.dat
$ iasl -d dsdt.dat
$ patch < XXXXXXXX-sbs-cm.diff
$ iasl dsdt.dsl
Obtenemos así DSDT.aml
Las XXXXXXXX son la versión del diff y variará según el ordenador. Solo hay dos ficheros que son:
acer-tm4xxxx-sbs-cm.diff
acer-tm32xx-sbs-cm.diff
Para más info, leeros el README del sbs-{version}

Ahora, lo más delicado. Vamos a modificar nuestro initrd, pero lo haremos en una copia:
$ cp /boot/initrd.img-{version} /boot/initrd.img-{version}-dsdt
Por alguna extraña razón no me deja modificar con sudo los initrd así que usamos root:
$ sudo -s
Y ahora parcheamos nuestro initrd
$ echo -n "INITRDDSDT123DSDT123" >> /boot/initrd.img-{version}-dsdt
$cat DSDT.aml >> /boot/initrd.img-{version}-dsdt
$echo -n "INITRDDSDT321DSDT321" >> /boot/initrd.img-{version}-dsdt

Ahora, solo tenemos que editar el fichero /boot/grub/menu.lst
$ sudo gedit /boot/grub/menu.lst
Buscamos nuestra entrada del kernel actual, la copiamos y modificamos el initrd añadiendo al final -dsdt
Os copio mi entrada modificada, pero la vuestra podría cambiar:

title Ubuntu, kernel 2.6.10-5-686-dsdt
#:2 <-- type: 0 => linux, 1 => windows, 2 => other
root (hd0,1)
kernel /boot/vmlinuz-2.6.10-5-686 root=/dev/hda2 ro quiet splash
initrd /boot/initrd.img-2.6.10-5-686-dsdt
savedefault
boot

Lo único que cambia es el -dsdt que añado en la línea del initrd y en el nombre.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

y para los que tenemos un ace

y para los que tenemos un acer y no es un travelmate??
Yo tengo el Acer Aspire 2023WLMI, existe algun archivo estilo acer-tm4xxxx-sbs-cm.diff
acer-tm32xx-sbs-cm.diff

pero que sea para mi modelo? Estuve buscando y solo encontre para los travelmate. Gracias

para el primer comentario, el

para el primer comentario, el iasl te le tienes que bajar y compilar. En el README del parche que pongo ahí hay instrucciones.

Para el segundo, ni idea, lo mejor será que vayas a la página del proyecto y preguntes. Sino, puedes mirar en acpi.sourceforge.net y buscar DSDT ya parcheadas (no entiendo mucho de esto, así que tendrías que buscar o preguntar en el foro/lista de ACPI).

gracias!

lo que me pasaba era que yo movia toda la carpeta de acpica-unix a usr/local/bin, y solo habia que copiar el ejecutable de iasl.
creo que no me explico muy bien, no??
bueno, gracias de nuevo y me has solucionao un problema.

funciona bien?

Tengo una Acer Aspire 3620 y me gustaria instalar ubunto pero tengo la preocupacion de que algun device no funcione bien, puedo instalar ubuntu hoary o espero los cds del nuevo ubuntu? Como te fue durante la instalacion?

Con la Acer Aspire 3620 Funciona al 100%

Se que la respuesta llega tarde para cavernicola pero quizas para otros usuarios no, yo me compre una Acer Aspire 3620 e instale el ubuntu 6.06 y me funciona al 100%, no tuve que configurar nada, detectó desde la tarjeta Inlalambrica hasta el teclado y el monitor, y no borre la particion ntfs con windows que traia por defecto y ubuntu carga esa particion sin ningun problema, de verdad que quedé muy satisfecho con esta distribucion de ubuntu.

problemilla

mi portatil es el mismo y no he tocado nada del kernel todavia, pero cuando tengo que escribir: "iasl -d dsdt.dat" me dice que no se encuentra el comando. alguna pista...

ya que estamos

Hola josuealacalde, tengo la suerte también de contar con un Acer TM WMLi4002, y voy a meterle el Ubuntu de rigor, y como veo que tu lo has hecho funcionar al 100%, te quería preguntar que tal fue la operación?, algún sitio de refereencia y/o consejo durante la instalación?
Eternamente agradecido

Bueno, en principio he hecho

Bueno, en principio he hecho funcionar todo menos el Firewire y el modem, pero otros lo han conseguido.

El IrDa es imposible hacerlo funcionar yo creo. Lo reconoce, pero no funciona de ninguna manera.

La batería, ya sabes el problema, pero tiene la solución de arriba.

Lo demás, todo va bien. El USB, si vas a usar discos duros te va a ir lento y tendrás que usar un kernel 2.6.11 o 2.6.12 (están en el repositorio universe). Luego el speedstepcentrino (algo para manejar la velocidad del procesador) no iba muy bien, pero tu procesador es diferente.

La página que te puede ayudar en algunos casos puede ser linuxzamora.
Pon en google linuxzamora acer travelmate wlmi 4001 y te aparece el tutorial que escribió un chico.

Irda

El irda funciona perfectamente en este portátil. Al menos en Ubuntu 5.10. Te cuento como lo he hecho.
instala los paquetes irda y irda-utils. ejecuta dpkg-reconfigure irda-utils. Te aparecerá un menú de configuración. Tienes que seleccionar soporte native y el chip nsc-ircc. Ya deberías tenerlo funcionando. Compruebalo con irdadump y ya está.

Irda

A partir de Ubuntu 5.10 funciona el IrDa correctamente.

Pues a mi no me funciona :'(

Que tal?

Bueno, yo tambien tengo este portátil...

Para la bateria de momento uso acpi_sbs-20050119 (que mas o menos funciona la versión 20050120 se cuelga al cargar la materia al 100%, como dices).

Ya llevo unos cuantos dias buscando información y sin buenos resultados. Para quitar confusiones, podrias mandarme el fichero 'dsdt.dsl' que estas usando y el DSDT.aml por si acaso.

A mi me da unos avisos al parchear el dsdt.dsl
$ patch < acer-tm4xxx-sbs-cm.diff
patching file dsdt.dsl
Hunk #1 succeeded at 3730 (offset 475 lines).
Hunk #2 succeeded at 3758 (offset 475 lines).
Hunk #3 succeeded at 5338 (offset 411 lines).

Y luego al compilar:
$ iasl dsdt.dsl

Intel ACPI Component Architecture
ASL Optimizing Compiler / AML Disassembler version 20050309 [Apr 28 2005]
Copyright (C) 2000 - 2005 Intel Corporation
Supports ACPI Specification Revision 3.0

dsdt.dsl 245: Method (_WAK, 1, NotSerialized)
Warning 2026 - ^ Reserved method must return a value (_WAK)

dsdt.dsl 4815: Method (_STA, 0, NotSerialized)
Warning 2019 - ^ Not all control paths return a value (_STA)

dsdt.dsl 4815: Method (_STA, 0, NotSerialized)
Warning 2026 - ^ Reserved method must return a value (_STA)

smbus-cm.asl 87: Method (_SBI, 0, NotSerialized)
Warning 2033 - Unknown reserved name ^ (_SBI)

smbus-cm.asl 147: Method (_SBR, 3, NotSerialized)
Warning 2033 - Unknown reserved name ^ (_SBR)

smbus-cm.asl 237: Method (_SBW, 5, NotSerialized)
Warning 2033 - Unknown reserved name ^ (_SBW)

smbus-cm.asl 314: Method (_SBA, 0, NotSerialized)
Warning 2033 - Unknown reserved name ^ (_SBA)

ASL Input: dsdt.dsl - 5350 lines, 250680 bytes, 3168 keywords
AML Output: DSDT.aml - 25861 bytes 706 named objects 2462 executable opcodes

Compilation complete. 0 Errors, 7 Warnings, 0 Remarks, 920 Optimizations

Al reiniciar el pc se queda colgado justo al cargar el ACPI :(

Según tengo entendido el dsdt.dsl depende de la configuracion de la bios, quizas con la que tengo yo no funcione y deba parchearse diferente.

Si puedes mandarme tus archivos me iria perfecto.
Si lo quieres hacer a nivel privado: frikimaster (registrado en) gmail punto com

Gracias!!

Bueno, a mi también me daba

Bueno, a mi también me daba varios warnings al compilar el dsdt.
De todas formas, a mi si me ha compilado.
En cuanto a la bios, yo la tengo con password de usuario y de bios, pero por lo demás no creo que haya mucha diferencia. Solo he tocado el IRDA para tratar hacerlo funcionar. El resto de la bios, pues tampoco hay muchas opciones.

Te enviaré los ficheros al correo. Lo que si que puedo decir, es que el arranque se retrasa unos 30 segundos, al tener que cargar el dsdt en el initrd.

¿Qué kernel usas?

Avanzando... :D

El detalle de los 30 segundos era importante!! :D

Vaya tonteria, a veces me falta paciencia.

Emm los archivos que me has enviados son exactos a los mios.

Bueno ahora si carga el dsdt:
ACPI: AC Adapter [ACAD] (on-line)
ACPI: Battery Slot [BAT0] (battery present)
ACPI: Battery Slot [BAT1] (battery absent)

Luego, al leer de /proc/acpi/ac_adapter i /proc/acpi/battery me encuentro en que existen dos directorios con esos nombres, no me lo puedo explicar!
***
dr-xr-xr-x 2 root root 0 2005-04-29 15:30 ac_adapter
dr-xr-xr-x 2 root root 0 2005-04-29 15:30 ac_adapter
-rw-r--r-- 1 root root 0 2005-04-29 15:39 alarm
dr-xr-xr-x 2 root root 0 2005-04-29 15:30 battery
dr-xr-xr-x 2 root root 0 2005-04-29 15:30 battery
dr-xr-xr-x 5 root root 0 2005-04-29 15:32 button
[...]
***

Como tienes configurado en el kernel el ac_adapter y battery? Yo lo tengo así:
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y

Si lo desactivo tampoco funciona :(
Voy a probar a meterlos como módulos... si funciona ya os cuento.

Espero que almenos sirva para afinar detalles en el manual o resolver dudas a otros usuarios.

Muchas gracias!!

Otro apunte más.

He intentado meter el dsdt estático (aquí explicas el modo dinámico).

El resultado es el mismo. No veo ninguna mejora en cuanto a rendimiento ;-)

No hace falta complicarse la vida, el modo dinámico es más sencillo.

No te compliques con el Kerne

No te compliques con el Kernel. Este método está pensado para no tener que recompilar ningún Kernel ni nada, puesto que el de Ubuntu ya viene preparado para cargar la dsdt desde initrd.

Solo sigues los pasos. El .config, igual que el de Ubuntu sin nada. En cualquier caso, es raro que aparezcan dos directorios con el mismo nombre. Creía que eso era imposible.

Lo de la espera, es una putada, pero bueno, esperemos que pronto no haya que parchear nada en nuevos kernels.

No te compliques con el Kerne

Yo no uso ubuntu, estoy en debian.

Y uso los releases del kernel sin ningún parche, parcheo lo que necessito. Tuve que parchear y recompilar, tampoco me molesta hacerlo :)

Errores

Hola tengo un acer-tm4002wlmi y he seguido todos los pasos al pie de la letra pero no me deja crear el fichero DSDT.aml, ya que me sale los errores que pongo a continuacion. Tengo la kubuntu con el kernel 2.6.10-5-386. Gracias

$ iasl dsdt.dsl

Intel ACPI Component Architecture
ASL Optimizing Compiler / AML Disassembler version 20050513 [May 25 2005]
Copyright (C) 2000 - 2005 Intel Corporation
Supports ACPI Specification Revision 3.0

dsdt.dsl 245: Method (_WAK, 1, NotSerialized)
Warning 2026 - ^ Reserved method must return a value (_WAK)

dsdt.dsl 430: 0x0100, 0x00,,)
Error 1094 - ^ Missing ResourceSource string (required)

dsdt.dsl 437: , TypeStatic)
Error 1094 - ^ Missing ResourceSource string (required)

dsdt.dsl 445: , TypeStatic)
Error 1094 - ^ Missing ResourceSource string (required)

dsdt.dsl 452: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 459: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 466: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 473: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 480: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 487: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 494: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 501: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 508: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 515: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 522: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 529: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 536: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 543: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 550: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 557: , AddressRangeMemory, TypeStatic)
Error 1094 - Missing ResourceSource string (required) ^

dsdt.dsl 4815: Method (_STA, 0, NotSerialized)
Warning 2019 - ^ Not all control paths return a value (_STA)

dsdt.dsl 4815: Method (_STA, 0, NotSerialized)
Warning 2026 - ^ Reserved method must return a value (_STA)

smbus-cm.asl 87: Method (_SBI, 0, NotSerialized)
Warning 2033 - Unknown reserved name ^ (_SBI)

smbus-cm.asl 147: Method (_SBR, 3, NotSerialized)
Warning 2033 - Unknown reserved name ^ (_SBR)

smbus-cm.asl 237: Method (_SBW, 5, NotSerialized)
Warning 2033 - Unknown reserved name ^ (_SBW)

smbus-cm.asl 314: Method (_SBA, 0, NotSerialized)
Warning 2033 - Unknown reserved name ^ (_SBA)

ASL Input: dsdt.dsl - 5350 lines, 250680 bytes, 3168 keywords
Compilation complete. 19 Errors, 7 Warnings, 0 Remarks, 933 Optimizations

+ de lo mismo

Tengo el mismo problema que el compañero y google se niega a ayudarme xD

Apuntes:
- Me da unos warnings en la compilacion del iasl
- Si trato de compilar el dsdt.dsl SIN parchearlo me da los mismos problemas (por lo que descarto que sea cosa del parche)

pd: También he necesitado el flex-old

Si dais con la solución mi correo es mike513 a-encerclada gmail punt com

Saludos! (Y gracias por el howto aunque estemos a medias xD)

Pues en el comentario anterio

Pues en el comentario anterior no se me ocurría nada, pero qui?as sea la versión de iasl.
En el README viene que algunas son incompatibles. Leerlo.

En todo caso, en sourceforge teneis el proyecto sbs-linux, y quizás en su foro o escribiendo un e-mail al desarrollador os pueda ayudar en algo.

Yo por mi parte no os puedo decir mucho más.

¿Me podrias mandar una versi

¿Me podrias mandar una version anterior de acpica-unix-20050513?, mi correo es trc_xd(a)hotmail(punto)com

Gracias

Posible Solucion

Muy buenas,

A mi me daba los mismos errores al compilar en un travelmate 2303WLMI.

Mirando un poco las opciones del "iasl", he visto que había una opción para forzar la creación del DSDT.aml aunque de errores y/o warnings de compilación, he probado a ejecutarlo:

$iasl -f dsdt.dsl

y me ha creado el fichero .aml, ha partir de ahí he seguido los pasos y me funciona, el arranque ha pasado a tardar medio minuto más pero funciona OK.

Espero que os sirva de algo....

Se puede simplificar

En Hoary basta con copiar el fichero .aml resultante en /etc/mkinitrd dándole como nombre DSDT (así, en mayúsculas y sin extensión).

A partir de aquí cada kernel que instalemos añadirá nuestro DSDT al initrd. De esta forma basta con reinstalar el kernel que estamos usando para que se aplique el nuevo dsdt.

Si, hace poco aparecio el how

Si, hace poco aparecio el howto en ubuntu-es.
Es más, no hace falta reinstalar el kernel. Solo reconfigurarlo
sudo dpkg-reconfigure (el nombre del paquete).

Pa más info, ver howtos.

Y para un TravelMate 2303LM ???

Hay alguna forma de detectar una bateria de este ordenador. He probado el metodo que indicas tanto con el acer-tm4xxxx-sbs-cm.diff como con el acer-tm32xx-sbs-cm.diff y no funciona.

Tendrás que buscar el

Tendrás que buscar el dsdt.aml de este en concreto. Busca en acpi.sourceforge.net

Y si no estás, tendrás que seguir los pasos, pero como no tienes parche, tendrás que editarla tu mismo...

Vamos, que si tienes ciertos de programación-compilación, pues podrás.
Basicamente es recompilarla y mirar los errores e ir corregiéndolos.

Yo no lo he hecho nunca, pero hay tutoriales por ahí. Si sabes ingés, busca dsdt.aml en www.ubuntuforums.org

Tendrás que buscar el

Tendrás que buscar el dsdt.aml de este en concreto. Busca en acpi.sourceforge.net

Y si no estás, tendrás que seguir los pasos, pero como no tienes parche, tendrás que editarla tu mismo...

Vamos, que si tienes ciertos de programación-compilación, pues podrás.
Basicamente es recompilarla y mirar los errores e ir corregiéndolos.

Yo no lo he hecho nunca, pero hay tutoriales por ahí. Si sabes ingés, busca dsdt.aml en www.ubuntuforums.org

desesperacionnn

Hola tengo un acer travelmate 4002Lmi y soy Incapaz de hacer funcionar la bateria...hago todo lo q poneis pero no tira al arrancar el kernel con el initrd conel dsdt me da un kernel panic no se pq...a ver si alguien me puede ayudar pq es lo unico q me falta para tener mi portatil en regla.Mi email es idenjoe84@gmail.com.Gracias de antemano.

no desesperes ,,

El problema que tienes es que la tabla DSDT que estas usando en el initrd , no es correcta para tu maquina , mira si cuando compilas con el iasl obtienes o errores, si no tendras que corregirlos.

Eso es lo que yo creo , espero no haberme equivocado demasiado.

Lo del kernel panic seguro que es por lo del DSDT en el initrd.

Atentamente Monbru,,,

NO ENCIENDE MI TRVMT 4001LMi

Tengo un travelmate de acer 4001lmi y llevo 5 meses peleando para que me arreglen una averia que tiene el ordenador, el cual no se enciende, el boton de encendido no tiene contacto y no me enciende el ordenador, bueno los del servicio tecnico te piden las mil y una facturas, todos los números de serie en fin parece mentira las de cosas que te pueden llegar a pedir, y despues para que? para nada por que he mandado muchos correos electrónicos, muchas llamadas de telefono al servicio tecnico y que he obtenido por respuesta¡ Nada esto es impresionante tengo un ordenador portatil que no puedo utilizar, es increible todo lo que pasa con este servicio, lo unico que puedo decir es que se compren un ordenador que no a acer por que si no se tendran que hacer cargo de todo el mantenimiento y el servicio tecnico jeje un saludo para todos los afactados por el servicio tecnico de ACER. Yabalcavernicola davizcom@hotmail.com para más información de todos

acer de mala calidad

hola yo tengoe le mismo problema con eun acer travelmate 244 lC dejo de funcionar comos si nada
lo envie por garantia y le cambiaron toda la placa base ahora se me ha vuelto a averiar y estoy deseseperado que pcs tan pésimos es mejor no comprar esta marca

yimy garcia

Otro 4001

Yo tb tengo un 4001WLMI y no tengo manera de hacer funcionar la bateria... creo que he hecho lo que indicas pero me da un kernel panic...

Alguna sugerencia?

Me puedes pasar el archivo tuyo compilado?...

por favooooooooooooooooor

sobre acpi

Lo que comentas está muy bien, pero en uno de los pasos indicas que hay que hacer $ cat /proc/acpi/dsdt > dsdt.dat .......pero

¿y si no existe /proc/acpi? ¿qué hago?

mi acer travelmate 3002 wtmi para poder arrancar ubuntu requiere usar las opciones acpi=off noacpi, por lo que no existe soporte acpi

Inicio de sesión

Encuesta

¿Qué entorno gráfico prefieres usar? ¿Por qué?
Unity
22%
Gnome 3
23%
Gnome classic
39%
Kde
6%
Xfce
4%
Enligthenment
1%
Lxde
2%
Otro - Especificar
2%
¿Entorno gráfico? Ninguno, ¡solo uso la consola!
2%
Total de votos: 1056