viernes, 20 de enero de 2012

Solucion al problema de bateria no detectada por linux en notebooks Toshiba




En algunos modelos de notebooks Toshiba linux no reconoce la existencia de la batería. Con este post intentaré explicarles de manera facil como hacer que el kernel obtenga los datos de la bateria.. 

Para solucionar este inconveniente hay 2 soluciones, recompilar el kernel modificando unos parametros antes o solucionarlo via grub sin necesidad de compilar nada. Yo me voy a enfocar en la segunda ya que en caso de actualizar el kernel no seria necesaria una nueva recompilacion. 


 Primero hay que ver si efectivamente el kernel no detecta la bateria ejecutando desde la terminal cat/proc/acpi/battery/BAT1/* 

mukenio@notebook:~$ cat/proc/acpi/battery/BAT1/
cat /proc/acpi/battery/BAT1/*
present: no
present: no
present: no

mukenio@notebook:~$ dmesg | grep batt
[ 1.370268] ACPI: Battery Slot [BAT1] (battery absent)



Efectivamente el kernel no detecta la presencia de la bateria. 
Bien, desde ahora en adelante con solo tener una terminal abierta bastará ya que no es necesario nada mas. 

 Obtenemos la DSDT (Differentiated System Description Table) ejecutando 

$sudo cat /sys/firmware/acpi/tables/DSDT > DSDT.dat


(La DSDT es una de las tablas que pueden utilizar los sistemas operativos para obtener la informacion del hardware) 

 Ahora hay que desemsablarla mediante el siguiente comando

$sudo iasl -d DSDT.dat


(si el comando anterior falla es que necesitan tener instalado el paquete iasl

 Editar el archivo que se generó en el paso anterior. 
No intenten editarlo con gedit o kate porque puede traerles problemas
Recomiendo vi o nano. Yo uso nano porque me parece un poco mas amigable que vi pero es cuestion de gustos.

$sudo nano DSDT.dsl


y reemplazar 

OperationRegion (EMEM, SystemMemory, 0xFF808001, 0xFF) 

por 

OperationRegion (EMEM, EmbeddedControl, 0×00, 0xFF) 


(En nano pueden buscar la cadena pulsando Ctrl-W) 

Guardar los cambios y salir (Ctrl-O en nano para guardar, Ctrl-X para salir) 


 Generar el archivo DSDT.aml ejecutando

$sudo iasl -tc DSDT.dsl


 Copiar este ultimo archivo al directorio /boot 

sudo cp DSDT.aml /boot



 Descargar el siguiente archivo, darle permisos de ejecucion y copiarlo al directorio /etc/grub.d/ 

Suponiendo que la descarga se hizo en la carpeta de usuario en la terminal seria: 

$chmod +x 01_acpi ; sudo cp 01_acpi /etc/grub.d



 Regenerar el grub ejecutando 

sudo update-grub2


Ahora al reiniciar e iniciar sesión nuevamente deberían ver el icono de la batería o para comprobarlo desde la consola 

cat /proc/acpi/battery/BAT1/* 


Obteniendo 

$cat /proc/acpi/battery/BAT1/*
alarm: unsupported
present: yes
design capacity: 4500 mAh
last full capacity: 2389 mAh
battery technology: rechargeable
design voltage: 10825 mV
design capacity warning: 300 mAh
design capacity low: 200 mAh
cycle count: 0
capacity granularity 1: 32 mAh
capacity granularity 2: 32 mAh
model number: PA3817U-1BRS
serial number:
battery type: LION
OEM info: SANYO
present: yes
capacity state: ok
charging state: discharging
present rate: 1820 mA
remaining capacity: 132 mAh
present voltage: 10701 mV






Con esta solución al actualizar el kernel no hay que volver a realizar ninguno de los pasos anteriores. En cambio si se hubiese optado por recompilar el kernel, con cada actualización es necesaria una recompilacion desde los fuentes. 

Yo les dejo el archivo aml de mi notebook asi en caso de contar con el mismo modelo de notebook solo deben realizar los pasos 6, 7 y 8. El modelo donde realice los pasos es L645 sp4135l


Descargar archivo DSDT.aml 


Espero que les sirva y cualquier duda no duden en comentar 

121 comentarios:

  1. Hola,
    No encuentro OperationRegion (EMEM, SystemMemory, 0xFF808001, 0xFF)

    Lo hge buscado decenas de veces y no esta presente

    alguna idea de como seguir ? muchisimas gracias. Alex

    ResponderEliminar
  2. Alex, que modelo de Toshiba tenes? Lo anterior es para una L645, puede que varie dependiendo el modelo.

    La linea que hay que modificar se encuentra mas o menos por la linea 6240. En mi caso esto se encuentra alrededor

    Name (PDBR, 0x4D)
    Name (SMBL, 0x10)
    Name (TCGM, One)
    OperationRegion (GNVS, SystemMemory, 0xB77BEE18, 0x0174)
    Field (GNVS, AnyAcc, Lock, Preserve)
    {
    OSYS, 16,
    SMIF, 8,

    ResponderEliminar
  3. Excelente Amigo llevaba un año sin encontrar solución y ahora ya me detecta mi bateria.
    Una observación me marco errores al generar el fichero .aml y aun asi me anime a probar y funcionó.
    igualmente tuve que hacerlo como root ya que con sudo no me permitio hacerlo.

    ResponderEliminar
  4. es normal que el directorio acpi solo me contega button, toshiba, wakeup y no battery? bue del resto segui los pasos hasta el paso 5 donde intento crear el .aml y me dice alguna especie de error "Non-ascii input file - DSDT.dsl, Si me responden pronto te lo agradeceria mucho jeje ya estoy cansado de buscar en la red Salu2

    ResponderEliminar
  5. @Jerry luego de intentar esto veo que tampoco aparece battery.
    Intenta ejecutar desde consola
    acpi -b
    y si el kernel la detecta deberias ver algo como

    Battery 0: Full, 100%

    ResponderEliminar
    Respuestas
    1. @mukenio intente ejecutar acpi -b y al perecer no lo tenia instalado, asi que instale el acpi y luego reinicie e intente de nuevo y no me devuelve nada intente con acpi -a y me devuelve " Adapter 0: online" ... :( no se si ayude pero mi toshiba es Satellite L645-SP4138, Gracias por responder tan pronto

      Eliminar
    2. @Jerry yo lo tengo funcionando en una Satellite L645-SP4135, con archlinux, kernel 3.3.5 y me ha funcionado. ¿Seguiste los pasos tal cual indico? Fijate que no te indique ningun error al generar el archivo DSDT.dsl porque en un intento tuve una falla en este paso y no funciono este metodo

      Eliminar
    3. @mukenio tambien tengo archlinux, bueno primero /proc/acpi/battery/BAT1 no existe solo existe /proc/acpi y no existe battery ni muchos menos BAT1.
      luego al hacer $ sudo iasl -d DSDT.dat devolvio:

      Intel ACPI Component Architecture
      ASL Optimizing Compiler version 20111123-64 [Nov 26 2011]
      Copyright (c) 2000 - 2011 Intel Corporation

      Loading Acpi table from file DSDT.dat
      Acpi table [DSDT] successfully installed and loaded
      Pass 1 parse of [DSDT]
      Pass 2 parse of [DSDT]
      Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)
      ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
      Parsing completed

      Found 5 external control methods, reparsing with new information
      Pass 1 parse of [DSDT]
      Pass 2 parse of [DSDT]
      Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)
      ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
      Parsing completed
      Disassembly completed, written to "DSDT.dsl"

      no parece tener ningun error hasta ahora, luego abri con nano DSDT.dsl y reemplace la linea indicada. luego ah ejecutar: $sudo iasl -tc DSDT.dsl me devuelve:

      Intel ACPI Component Architecture
      ASL Optimizing Compiler version 20111123-64 [Nov 26 2011]
      Copyright (c) 2000 - 2011 Intel Corporation

      Non-ascii input file - DSDT.dsl

      y desde aqui no puedo pasar, continuo tus pasos con tu DSDT.dsl pero no me funciono, muchas gracias por tomar de tu tiempo para ayudarme amigo.

      Eliminar
    4. @Jerry en mi caso me di cuenta que tampoco tengo el archivo /proc/acpi/battery/BAT1 y todo me funciona ok, luego de realizar el proceso (con un kernel mas antiguo) si veia ese archivo, ahora para saber si me detecta la bateria debo hacerlo con acpi -b
      Volviendo a la compilacion del DSDT, cuando ejecutas
      sudo iasl -tc DSDT.dsl
      si todo fue bien deberias ver en la salida algo como esto

      Compilation complete. 0 Errors, 6 Warnings, 37 Remarks, 6 Optimizations
      Los warnings no importan pero deben figurar 0 errores.

      "Non-ascii input file - DSDT.dsl"
      Ese error es seguramente porque pegaste el reemplazo, lo que hay que hacer es reemplazar a mano
      OperationRegion (EMEM, SystemMemory, 0xFF808001, 0xFF)
      por esto
      OperationRegion (EMEM, EmbeddedControl, 0×00, 0xFF)
      nada de copy/paste porque no funciona

      Otra solucion, la he probado y me funciono tambien cuando usaba lmde es la que se plantea en esta direccion
      http://techinterplay.com/fix-toshiba-battery-issue-linux.html
      pero ya involucra recompilar el kernel.
      Algo similar a lo que hice podes encontrar en http://blog.michael.kuron-germany.de/2011/03/patching-dsdt-in-recent-linux-kernels-without-recompiling/

      Proba y contame como te fue
      Exitos!

      Eliminar
    5. Tenias razon estaba copiando y pegando, por eso me daba error, al compilar me dio 3 errores... gracias al link que me pasastes pude resolverlos cambiando unos valores de tipo HEX y usando una calculadora edite el DSDT.dsl en las lineas donde me daba el error y ahora me compila "Compilation complete. 0 Errors, 6 Warnings, 37 Remarks, 7 Optimizations". En la parte donde tu ejecutas update-grub2 a mi no me funciona capas porque mi GNU GRUB es version 0.97 y ya busque una equivalencia para ver como actualizo el grub pero no encontre algo parecido a update-grub2 para mi version capas esto sea lo que me hace falta para que funcione todo.
      Cuando ejecuto acpi -b no me retorna nada y esta bien que /etc/grub.d tenga:

      #! /bin/sh -e

      # Uncomment to load custom ACPI table
      GRUB_CUSTOM_ACPI="/boot/DSDT.aml"

      # DON'T MODIFY ANYTHING BELOW THIS LINE!

      prefix=/usr
      exec_prefix=${prefix}
      libdir=${exec_prefix}/lib

      . ${libdir}/grub/grub-mkconfig_lib

      # Load custom ACPI table
      if [ x${GRUB_CUSTOM_ACPI} != x ] && [ -f ${GRUB_CUSTOM_ACPI} ] \
      && is_path_readable_by_grub ${GRUB_CUSTOM_ACPI}; then
      echo "Found custom ACPI table: ${GRUB_CUSTOM_ACPI}" >&2
      prepare_grub_to_access_device `${grub_probe} --target=device ${GRUB_CUSTOM_ACPI}` | sed -e "s/^/ /"
      cat << EOF
      acpi (\$root)`make_system_path_relative_to_its_root ${GRUB_CUSTOM_ACPI}`
      EOF
      fi

      no me explico porque no me funciona, pense que a lo mejor este archivo tenga algo malo

      Eliminar
  6. para una Toshiba Satellite L655-S5146 como se le haria , intente lo de arriba esperando fuera generico pero nada me arroja despues de las modificaciones

    ResponderEliminar
    Respuestas
    1. perdon, al reinicio funciono y reconocio la bateria, gracias me fue de gran ayuda


      solidus@Solinux:~$ cat /proc/acpi/battery/BAT1/state
      present: yes
      capacity state: ok
      charging state: charging
      present rate: 2631 mA
      remaining capacity: 3501 mAh
      present voltage: 12456 mV

      Eliminar
  7. Amigo realicé todo el proceso me salió todo bien, me reconoció la batería, pero ahora el mouse óptico me falla, se apaga cada 2 segundos y para activarlo tengo que estar dándole clic a cada rato, eso me pasó desde que hice este proceso, tú crees que haya alguna solución o algo.
    Gracias espero tu respuesta.

    ResponderEliminar
  8. @BenPaz probá lo que sugieron el siguiente link
    http://heraldolinux.blogspot.com.ar/2011/09/tip-evitar-que-se-suspendan.html

    @Jerry si utilizas grub2?

    ResponderEliminar
    Respuestas
    1. Este comentario ha sido eliminado por el autor.

      Eliminar
  9. @mukenio jajaja te cuento la aventura de hoy, trate de instalarle grub2 a mi arch linux asi probaba el update-grub2, pero mori en el intento segui los paso que consegui en la wiki de arch al reiniciar parece que el sistema seguia cargando el grub que ya habia desinstalado y me abrio una consola donde me salia "grub> " y no pude hacer mas nada aca no logre botear mas :(... estube rato tratando de repararlo y nada... borre las particiones e instale ubuntu 12.04, segui todos los pasos, cuando compile me dio 2 errores los solucione gracias a los links que pusistes junto con la calculadora kcalc y ahora si me funciona perfectamente !!!

    Jajaja pero quede enamorado de archlinux quisiera volver instalarlo y tratar de hacerlo alla tambien, posiblemente lo que me falto en archlinux fue instalar el grub2 y dale update para que me funcionara perfecto, tratare de investigar a ver si como hago para desinstalar el grub e instalar el grub2 y no morir en el intento de nuevo jejeje.

    Muchas gracias por todo el apoyo, muchas gracias por ayudarme a solucionar el problema ahora lo intentare en archlinux luego les cuento como me fue jeje

    ResponderEliminar
  10. Disculpa amigo tengo el mismo problema...Toshiba satellite L655-SP5014M...realice los pasos hasta donde se tiene que crear el archivo con el comando --sudo iasl -tc DSDT.dsl pero solo me arroja...Non-ascii input file - DSDT.dsl....por favor ayuda de antemano grasias!!

    ResponderEliminar
    Respuestas
    1. Ya ese problema fue resuelto @mukenio me ayudo a solucionarlo, el problema es que no puedes copiar y pegar cuando reemplazas la linea en el DSDT.dsl, escribe todo exactamente, nada de copiar y pegar. Luego si te genera errores en la compilacion lee todos los comentarios, te encontraras con unos links (en ingles) que te ayudaran a resolver en caso de que te den algunos errores. Te recomiendo que leas todos los comentarios ;).

      Eliminar
  11. @mukenio listo me funciono tambien en archlinux tube algunos problemas, primero instale el grub2 que solo consegui uno que se llama grub2-bios (a lo mejor no tengo todos los repositorios adecuados) bueno lo configure y quedo bien, luego hice todos los pasos de nuevo solucione algunos errores de compilacion y listo le di update-grub2 y BAMM!!! no me funcionaba parece que mi grub-bios no usa eso :S .... me frene de nuevo y probe usando grub-mkconfig que reconstruye todo el grub y me decia que faltaban archivos los busque en otro pc con ubuntu y los tenian asi que me traje algunas lib que necesitaba (desde ubuntu) las pegue en arch y listo me funciono!!! Muchas gracias!!

    ResponderEliminar
    Respuestas
    1. Hola Jerry!

      A mi me paso lo mismo que a ti al seguir los pasos. Si me puedes decir cuales fueron los archivos y/o librerias qe copiaste y pegaste para que te funcionara?

      Espero que me puedas responder a pesar de la gran diferencia de fecha!

      Eliminar
  12. @cristian como dijo Jerry no copies y pegues, edita a mano y se soluciona el problema

    ResponderEliminar
  13. @Jerry Genial! Me alegro que te haya servido. Abrazo!

    ResponderEliminar
  14. Hola mukenio. Te comento brevemente que inicié el año pasado con ubuntu 11.04 y tuve la mala suerte de que mi Toshiba Stellite L645-SP4135L daba este problema, pensé que sería un problema de ubuntu y decidí desinstalarlo y esperar a este año con el 12.04 a ver si se había coregido. Como vi que no, decidí instalarlo y ver si logro solucionarlo. He estado investigando y me parece que tu publicación es la más accesible y clara. Me da la impresión de que el archivo que subiste al final me puede servir puesto que creo que tenemos el mismo modelo. Disculpa mi ignorancia, como te digo, acabo de iniciar. En el paso 6 bajé tu archivo y lo pegué en la carpeta /boot usando gksu nautilus puesto que no fui yo mismo quien lo generó. En el paso 7 dejas un archivo para descargar, pero mi navegador me abre un texto en otra pestaña, o sea, no puedo descargar el archivo. ¿Tengo que pegar este archivo en algún lugar y ejecutarlo?, y por otra parte, ¿existirá algún problema por haber copiado así tu archivo en el paso 6?. Te agradezco de antemano y te agradezco por hacer publicaciones de fácil entendimiento para los noobs como yo.

    ResponderEliminar
  15. Hola Jorge, te comento como es el tema.
    El paso 6 lo hiciste correctamente, y es normal que el archivo de texto del punto 7 te lo abra el navegador. Para eso te conviene hacer clic derecho sobre el link que dejo y seleccionar guardar como o guardar vinculo como pero siempre teniendo en cuenta que el nombre destino debe ser 01_acpi (nada de .txt, sin extension). Te recomiendo que lo descargues en tu carpeta de usuario y abras la terminal. Ejecutas lo mismo que indico arriba y deberia ir todo perfecto. Es decir, descargas el archivo en tu directorio de usuario, abris la terminal y ejecutas:
    chmod +x 01_acpi;sudo cp 01_acpi /etc/grub.d
    Luego reinicia y ya tenes el indicador de bateria funcionando.
    Saludos

    ResponderEliminar
    Respuestas
    1. Muchísimas gracias mukenio, ahí está el inidicador. Tuve que improvisar un poco porque no me encontraba el archivoa01_acpi pero con el gksu nautilus lo logré. Te agradezco muchísimo por tu tiempo y por tu ayuda. Pues abusandome un poco te hago otra pregunta. Penśe que esto se relacionaba en algún punto con el problema de la bateria. Pero cada vez que enciendo la computadora, el brillo de la pantalla está al mínimo, puedo subirlo a través de las confi. del sistema o manualmente con el teclado de la máquina, pero siempre, cuando inicio sesión está el brillo al mínimo. No es la gran cosa pero algo molesta. He buscado sobre el tema pero no he encontrado en realidad ninguna solución. ¿No te pasó lo mismo con tu Toshiba?

      Eliminar
    2. Yo no he tenido el problema que comentas. Tengo archlinux/KDE y cuando inicio sesion me setea el brillo que le asigne en las preferencias de ahorro de energia. Tal vez sea un problema particular de Ubuntu, pero no sabria decirte con seguridad

      Eliminar
  16. De acuerdo, voy a invetigar más a fondo, de verdad te agradezco mucho por tu tiempo, un abrazo desde Costa Rica!

    ResponderEliminar
    Respuestas
    1. Me alegro que te haya servido, otro saludo desde Argentina ;)

      Eliminar
  17. hola yo tengo una toshiba L645D SO kubuntu con super grub manager quisiera saber si los pasos q describes son los mismos o tengo q hacer algun cambio

    ResponderEliminar
  18. Si super grub manager utiliza grub 2 los pasos son exactamente los mismos. Si es K/Ubuntu o cualquier otra distribucion no cambia en nada
    Saludos

    ResponderEliminar
  19. Hola
    yo tengo el mismo problema!
    pero en una acer aspire 5745 Linux Mint 13
    ya que la bateria solo me la muestra como cargando!!
    podrias ayudar si son los mismos pasos!?

    ResponderEliminar
  20. @Unknown que tal? no creo que te sirva lo que publique, (y no probaria) porque los datos son para las toshiba y las acer deben tener otros valores. Deberias googlear tu modelo o alguno similar que de seguro alguien tuvo tu problema

    ResponderEliminar
  21. ¡Gracias mukenio!
    Desde que me la compré hace casi un año, no había podido resolver este problema :)
    hoy seguí el paso a paso y me funcionó de maravillas :)
    tengo instalado Ubuntu 12.04
    ¡muchas gracias!

    ResponderEliminar
  22. mukenio espero y me ayudas o puedas hacerlo, tengo una laptop toshiba satellite l645d-sp2340m algo aasi, el caso es que tengo instalado fedora y me sale la falla de no tener bateria presente, encontre tu pagina por casualidad y pense que me ayudaria, y pues todo hiba bien hasta que me di cuenta que no existen tales carpetas, la baterry en la capeta acpi espero y sepas de algo :/

    ResponderEliminar
  23. Hola Mukenio sabes tengo instalado OpenSuse 12.2 y te cuento que solo llego hasta el paso "7", osea para regenerar el grub el código (sudo update-grub2) es inválido para OpenSuse, espero me puedas ayudar. Gracias.

    ResponderEliminar
  24. Ben Paz para actualizar grub en OpenSuse el comando es:
    grub2-mkconfig -o /boot/grub2/grub.cfg como root o anteponiendo sudo

    cristyan podes utilizar el comando acpi -b para ver si te reconoce la bateria. Creo que en las versiones nuevas del kernel ese directorio ya no existe mas.

    ResponderEliminar
  25. Amigo gracias por la pronta respuesta, realicé que código indicado arriba para OpenSuse y me votó lo siguiente:

    ..#grub2-mkconfig -o /boot/grub2/grub.cfg
    Generating grub.cfg ...
    Found theme: /boot/grub2/themes/openSUSE/theme.txt
    Found background: /boot/grub2/themes/openSUSE/background.png
    /etc/grub.d/01_acpi: line 12: usr/lib/grub-mkconfig_lib: No such file or directory

    Según lo que se observa falta el archivo "grub-mkconfig_lib", cómo puedo hacer allí?.
    Espero me puedas ayudar, gracias.

    ResponderEliminar
  26. Ben, el archivo que falta esta en /usr/share/grub2. Se me ocurren 2 cosas que podes hacer.
    Una es copiar el archivo /usr/share/grub2/grub-mkconfig_lib a /usr/lib
    o
    Modificar la linea 12 del archivo que descargaste en el punto 7 y cambiar
    ${libdir}/grub/grub-mkconfig_lib
    por
    /usr/share/grub2/grub-mkconfig_lib

    Yo me inclinaria por la 2da opcion ya que si se actualiza el archivo grub-mkconfig_lib al copiarlo a /usr/lib este no se actualizaria. De la otra forma si
    Proba y contame como salio todo para actualizar el post en caso que la distro sea OpenSuse
    Saludos

    ResponderEliminar
  27. Amigo Mukenio logré hacer reconocer la batería con la segunda opción arriba que mencionaste, solo reemplazamos en la línea 12 del archivo 01_acpi:
    ${libdir}/grub/grub-mkconfig_lib
    por
    . /usr/share/grub2/grub-mkconfig_lib
    y regeneramos el grub con:
    grub2-mkconfig -o /boot/grub2/grub.cfg (usuario root: "su" no "sudo"). Hasta allí todo bien.

    Te comento que ahora surge un problema que mi batería solo carga hasta el 65% y no hasta al 100%, revisé la configuración de la Bios derrepente era el "life battery" pero nada. ¿Qué habrá pasado?. Gracias por todo.

    ResponderEliminar
  28. Mukenio,
    El link dropbox del archivo 01_acpi no funciona... podrías resubirlo por favor

    Saludos

    ResponderEliminar
  29. Ben Paz no se que modelo tendras, pero si no es la L645 tal vez los valores dentro de OperationRegion (EMEM, EmbeddedControl, 0×00, 0xFF) difieran y esto haga que si reconozca la bateria pero los valores leidos sean incorrectos.

    Tester, ya resubi el archivo.

    Saludos a ambos

    ResponderEliminar
  30. Ayúdame por favor, llevo 2 años con este problema de la batería he tenido instalado desde el Ubuntu 11.04 hasta el actual que tengo instalado 12.10, y nunca me sirvió el indicador de batería, cuando ingreso estas lineas me registra esta información: cat/proc/acpi/battery/BAT1/*: No existe el archivo o el directorio

    MI equipo es un Toshiba l645, ¿Hay alguna forma que estos archivos que me faltan sean montados?
    Gracias

    ResponderEliminar
  31. Julian, yo tengo la misma notebook y al momento de hacer el post en la version de kernel que utilizaba si existía el archivo. Al parecer en las nuevas versiones del kernel eso quedo en desuso. Como comenté mas arriba, basta con hacer un acpi -b para ver si detecta la bateria. Luego seguí los pasos y al reiniciar ya tendrás el indicador de bateria
    Saludos

    ResponderEliminar
  32. Mukenio te comento que al ejecutar este código: "dmesg | grep batt" me da este resultado:
    [ 0.678970] ACPI: Battery Slot [BAT1] (battery absent)
    [ 1.161483] ACPI: Battery Slot [BAT1] (battery present)
    Por qué la primera me vota "battery absent"?, creo que allí esta la falla para que mi batería solo cargue hasta el 68% y no hasta el 100%.
    Espero me puedas ayudar. Gracias.

    ResponderEliminar
    Respuestas
    1. Ben, la verdad que no se porque te indica primero que no esta y luego que si. Me queda la inquietud si en realidad ese 68% seria en realidad un 100% y lo que estaria fallando sea la medicion o solo carga hasta el 68% como decis vos.

      ¿No tenes windows instalado para ver que valores muestra el indicador de carga?
      ¿Que modelo de notebook tenes? Lo que publique aca lo hice en una Toshiba L645 sp4135l, si tu notebook es otro modelo/marca puede que los valores sobre los que hay que modificar sean otros y ahi estaria el problema

      Eliminar
    2. En windows 7 me marca la carga al 100%, mi notebook es una L645 SP4025L 64 bits. Tú crees que pueda ser las últimas versiones del kernel linux, porque anteriormente si me funcionaba al 100%?.
      Gracias.

      Eliminar
    3. Entonces si luego de cargar en linux (marcando al 68%) en windows marca 100% significa que no es que la bateria esta degradada. No se que version de kernel utilizas, yo en arch tengo la 3.6 (32 bits) y me indica correctamente. Lo que me comentas que antes funcionaba al 100%, significa que al momento de realizar este proceso alguna vez funciono bien o desde que aparecio el indicador de bateria nunca paso del 68%?
      No se que distribucion utilizas pero podrias probar instalar un kernel un poco mas viejo y ver que pasa

      Eliminar
  33. Muchísimas gracias por escribir este artículo, llevaba algo así como 10 meses dándole vueltas al problema y ninguna solución me funcionaba. De esta manera ahora me va perfecto.
    Mi más sincera enhorabuena por compartir de esta forma tan clara y precisa tus conocimientos.

    ¡Saludos!

    ResponderEliminar
    Respuestas
    1. Gracias Freeder, me alegro que te haya servido
      Saludos

      Eliminar
  34. Amigo mukenio por fin descubrí el motivo de que mi batería solo cargaba hasta el 68%. El motivo es que había actualizado la BIOS de mi placa, exactamente no se que pasa, pero lo solucioné regresando a su versión por defecto. Yo tenía la versión 2.3 de la Bios y al actualizarlo a la 2.7 aparecieron estos errores de carga. Así que descargué la versión 2.3 desde la página de Toshiba Support y lo des-actualicé. Bueno eso fue todo, les recomiendo no actualizar su BIOS, puede traer errores con OS Linux. Espero les sirve este comentario.

    ResponderEliminar
  35. Viejo no me funciona, intente este mismo método cuando tenia Ubuntu 11.10, pero luego tuve que reinstalar todo, esta vez la versión 12.10 y no funciono, detecta la batería pero aunque este totalmente cargada, muestra que solo tiene el 40% de carga, cuando desconecto el cable de alimentación dice que la batería tiene carga critica y que el pc se va a apagar y se apaga.

    Por favor ayuda

    ResponderEliminar
    Respuestas
    1. Tal vez te pueda ayudar, entra a (http://www.csd.toshiba.com/cgi-bin/tais/support/jsp/home.jsp?nav=download) ubica tus controladores y descarga primero la versión de la BIOS 1.9, luego descargas la versión 2.3. Lamentablemente tienes que tener Windows instalado, primero instalas el 1.9 y después la 2.3 así solucioné el mismo problema.

      Eliminar
    2. Gracias Ben por aportar tu solución. Yo también te recomiendo hacer lo que te sugirió Ben porque parece un problema de bios mas que de otra cosa

      Eliminar
  36. Muchas Gracias Heraldo, sos mi ídolo. Me sálvate !! Saludos desde Tucumán - Argentina

    ResponderEliminar
  37. Excelente!!! Gracias!!! Hace poco instalé CinnArch y me topé con el problema. Ahora voy a exponer lo que me pasó mientras seguía el tutorial por si acaso a alguien más le sirve.
    Al ejecutar el paso 5 me pasó, como a otros, que me salían 3 errores y no estaba generando el archivo DSDT.aml. Las soluciones: Dos de los errores los solucioné con los links arriba agregados.

    "I received the below two errors during this compilation

    N:B :- You can actually ignore these errors, this works even having these error unfixed. But if interested you can work out to get those fixed. Else directly goto ‘Kernel Recompilation’ section.

    ———————————-

    1
    DSDT.dsl 2656: 0x00000000, // Length
    2
    Error 4122 - ^ Invalid combination of Length and Min/Max fixed flags
    3

    4
    DSDT.dsl 2663: 0x00000000, // Length
    5
    Error 4122 - ^ Invalid combination of Length and Min/Max fixed flags
    ———————————-

    Fix : (If you didnt receive any error please skip this part )

    open DSDT.dsl file and go to the line where iasl indicated the error. In my case I go to lines 2656 and 2663.

    iasl is complaining about the “Length” line “0×00000000″. This is wrong. Look at the “Range Minimum” and “Range Maximum”. Open up your Kcalc or whatever you Gnome people use and change it to Numeral System Mode. Make sure HEX is selected and now we subtract the minimun range from the maximun range and then we add 1. Since the minimum range is 0 (And you can’t subtract 0) I will input FEAFFFFF and then add 1 which gives me FEB00000 (Don’t get confused, I’m simply omitting “0x”, the calculator doesn’t need this). I change 0×00000000 to 0xFEB00000 by Length. So now it looks like this:

    0×00000000, // Granularity
    0×00000000, // Range Minimum
    0xFEAFFFFF, // Range Maximum
    0×00000000, // Translation Offset
    0xFEB00000, // Length

    Line 2663 changed to

    0×00000000, // Granularity
    0xFED40000, // Range Minimum
    0xFED44FFF, // Range Maximum
    0×00000000, // Translation Offset
    0×00005000, // Length

    O sea solo se sustituye los valores indicados en las líneas de error.

    El tercer error que tuve fue "Name ( _HID, "ABCDEFGH") Error 4035 _HID suffix must be all hex digits (GH)". Este error lo solucioné sustituyendo en la línea del error _HID, "ABCDEFGH" por _HID, "ABCDEF11".

    Luego de todo funcionó bien hasta el paso final, donde se regenera el grub. Eso se debe, a como indicaron antes, que el archivo "grub-mkconfig_lib" no está en la dirección dada en la línea 12 del archivo descargado. Se soluciona cambiando la dirección en esa línea (12), yo encontré el archivo sustituyendo:

    ". ${usrdir}/usr/share/grub/grub-mkconfig_lib"

    Luego de esto reinicio, el corazón palpita emocionado, hay tensión mientras carga el sistema, los segundos se hacen largos, hasta que carga el escritorio y BOOM!!! la batería ha sido detectada...

    Jajajaja esa fue mi experiencia y espero que a alguien le sirva este comentario.
    Gracias por el tutorial y las respuestas... Saludos desde Costa Rica!

    ResponderEliminar
  38. Hola Muckenio, he seguido los pasos que tu recomiendas pero me arroja este error, le he cambiado los valores pero no cambia nada.

    DSDT.dsl 1723: 0x00004000, // Length
    Error 4118 - ^ Length is not equal to fixed Min/Max window

    DSDT.dsl 1730: 0x10000000, // Length
    Error 4117 - ^ Length is larger than Min/Max window

    ... y llegando al final me sale lo siguiente:

    ASL Input: DSDT.dsl - 16196 lines, 623493 bytes, 7537 keywords
    Compilation complete. 14 Errors, 4 Warnings, 28 Remarks, 21 Optimizations

    Después de eso no he realizado la actualización del grub por miedo a echarlo a perder.

    Mi equipo es un Toshiba Satellite L645D-SP4015L espero me puedas ayudar.

    Saludos desde Chile.

    ResponderEliminar
    Respuestas
    1. Hola, primero disculpa por la tardanza en la respuesta. Yendo a tu problema, veo que tu notebook tiene un procesador AMD Turion y el motherboard no es el mismo que para micros Intel como es este caso. Por esto, es que seguramente esta solucion no puede aplicarse a tu equipo.
      Saludos

      Eliminar
  39. Hola mukenio.. gracias por esta buena info---
    pero tengo problemas con el segundo paso
    cuando escribo:$sudo cat /sys/firmware/acpi/tables/DSDT > DSDT.dat

    me aparece asi:cat: /sys/firmware/acpi/tables/DSDT: Permiso denegado

    ahí para delante intento seguir los pasos pero no salen como los describes\\ supongo que por el error que arroja al principio... algun consejo para que me salga bien por favor......

    tamben lo intente con root en vez de sudo pero me arroja el mismo error... no conozco gran cosa de ubuntu pero no quiero volver a windows... porfa ayuda....

    ResponderEliminar
    Respuestas
    1. Hola David, el comando te deberia funcionar ya que para ver ese archivo necesitas permisos de root. Al ingresar ese comando te debe pedir tu contraseña y si es correcta el comando deberia ejecutarse correctamente.
      Que distribucion utilizas?

      Eliminar
    2. Hola, si , ya lo logre hacer hasta el paso 7..... utilizo ubuntu 12.04.... pero en el paso 7 me da un error en cuanto al archivo y no me deja seguir los ootros pasos... alguna sugerencia de donde guardar el archivo como tal, o no se si estoy descargando bien el archivo, no se que estoy haciendo mal, pero como tal ya pude realizar los pasos hasta el 6 mas concretamente, ya que el 7 me da error.... ayuda, no quiero volver a windows, pero me incomoda no poder ver el estado de mi bateria...

      Eliminar
    3. El paso "delicado" si se puede decir es el 5, si lo pasaste sin problemas es factible que esta solucion funcione. Cual es el error que te da en el paso 7?
      Descarga el archivo que indico (clic derecho, guardar vinculo como o similar) y guardalo por ejemplo en tu home.

      Nota: Si el navegador agrega un .txt al final del archivo elimina la extensión. El archivo te debe quedar asi:

      01_acpi

      Luego abri un terminal y ejecuta:
      chmod +x $HOME/01_acpi ; sudo cp $HOME/01_acpi /etc/grub.d
      te va a pedir tu contraseña, ingresala, dale enter y luego segui con los pasos que siguen

      Eliminar
    4. Hola mukenio, gracias por tus respuestas... ahora pasa lo siguiente, intento llegar al paso 7 nuevamente para hacer lo que me dijiste, pero al llegar al paso 6 pasa lo siguiente
      root@Deivid-pc:/home/deivid# $sudo cp DSDT.aml /boot
      cp: no se puede efectuar `stat' sobre «DSDT.aml»: No existe el archivo o el directorio

      y ahora no se qu ehacer... perdoname por la preguntadera, tal vez es algo facil y por ende una pregunta un poco "tonta" pero hasta ahora comienzo con ubuntu y no se casi que nada....
      te agradezco, y te pido perdon nuevamente

      Eliminar
    5. David, no te disculpes que nadie nacio sabiendo. Lo que hay que hacer en el punto 6 es copiar el archivo DSDT.aml al directorio o carpeta /boot
      La forma que explique en el post es mediante la consola pero se puede hacer graficamente. Si queres probar esta forma tenes que iniciar el explorador de archivos (nautilus, nemo, dolphin,etc) como root, para ello tenes que ejecutar:
      gksudo nautilus
      esto hacelo pulsando alt-f2 y te saldrá el lanzador grafico de comandos.
      Una vez abierto nautilus busca el archivo DSDT.aml y colocalo en /boot.
      Si se complica mas adelante, comentame de vuelta.
      Saludos

      Eliminar
    6. Hola.... de nuevo yo.... para comentarte, mira que hice el comando del nautilius y esto que me dices pero al abrir el lanzador grafico no encuentro por ningun lado el archivo DSDT.aml.. volvi a hacer los pasos desde el principio pero no se si en el paso 5 hay un error o debe salir asi
      deivid@Deivid-pc:~$ $sudo iasl -tc DSDT.dsl

      Intel ACPI Component Architecture
      ASL Optimizing Compiler version 20100528 [Oct 15 2010]
      Copyright (c) 2000 - 2010 Intel Corporation
      Supports ACPI Specification Revision 4.0a

      Non-ascii input file - DSDT.dsl

      .. el todo es que no encuentro el archivo para copiarlo. porfa ayudame
      gracias

      Eliminar
    7. Lo que puede suceder es que copiaste y pegaste en el archivo lo que hay que modificar. Eso no sirve, sino te indica el error que me mostraste. Tenes que buscar y reemplazar a mano la linea que indico mas arriba.
      Si se complica, al final del post yo pongo el archivo ya editado y solo hay que copiarlo a /boot (como root obvio) y seguir con los pasos 7 en adelante

      Eliminar
    8. Hola mukenio, de nuevo gracias por tus respuestas.. creo que ya estamos a punto de terminar... jejeje... mira, ya edite el archivo en el paso 4 manualmente y llegue hasta el 7 sin ningún problema (eso creo) pero descargue el archivo del paso 7 (clic derecho, guardar enlace como, y lo guarde en home), luego ejecute el código que me escribiste y apareció el siguiente error... ¿Ahora en que estoy fallando?... De nuevo muchas gracias... buenas noches...

      Eliminar
    9. No me posteaste el error :p
      Si queres hacerlo en forma grafica:
      1. Descarga el archivo y guardalo como 01_acpi (sin extension)
      2. Una vez descargado, desde nautilus clic derecho sobre el archivo y en propiedades marcar como ejecutable
      3. Alt-f2 y ejecutar: gksudo nautilus
      4. Copiar el archivo desde la sesion root de nautilus a /etc/grub.d

      Y luego continua normalmente como indico en el post.

      Lo anterior es lo mismo que indico arriba solo que de forma mas "amigable"
      Comentame como te fue, saludos

      Eliminar
  40. Puedo seguir todos los pasos bien, pero me quedo en el paso 7. En mi Fedora 15 me dice:
    [root@Pablo-Fedora pablo]# update-grub2
    bash: update-grub2: comando no encontrado...

    Todos los pasos anteriores no arrojaron error ni nada al parecer.

    Gracias de antemano.

    ResponderEliminar
    Respuestas
    1. Tengo Fedora 15 (usando el Grub aún)-

      Eliminar
    2. Hola Pablo, si aun utilizas grub el comando seria "update-grub" (sin comillas) solamente.
      Saludos y cualquier inconveniente no dudes en escribir

      Eliminar
    3. Gracias por la respuesta.

      Por supuesto intenté así, pero no actualizaba nada.

      Repitiendo los pasos, me di cuenta que en el paso 5 me arrojaba esto:



      ASL Input: DSDT.dsl - 13006 lines, 476661 bytes, 5461 keywords
      Compilation complete. 4 Errors, 3 Warnings, 32 Remarks, 6 Optimizations

      (solo es la parte final, no me deja escribir un mensaje tan largo)



      Dice que hay 4 errores, por ahí va la cosa creo yo.

      Eliminar
    4. Exactamente es como decis, los errores no deben aparecer. Asegurate de editar el archivo con nano o vi, porque si lo editas con algun editor como kate o gedit no funciona.
      ¿Que modelo de toshiba tenes?

      Eliminar
    5. Lo edité con nano escribiendo a mano (sin copiar/pegar).

      Es un Satellite l645.

      Gracias.

      Eliminar
    6. Escribí de nuevo la linea y ahora solo me da dos errores:


      ASL Input: DSDT.dsl - 13006 lines, 476660 bytes, 5461 keywords
      Compilation complete. 2 Errors, 3 Warnings, 32 Remarks, 7 Optimizations

      Eliminar
    7. Yo tengo el mismo modelo y funcionando al 100%. Descarga el archivo que pongo al final, ese corresponde al archivo que estoy utilizando con el ultimo kernel disponible en los repositorios de archlinux. Tene a mano un live cd en caso que no quiera iniciar nuevamente para que puedas revertir los cambios. Antes de modificar el grub hace una copia de seguridad por las dudas

      Eliminar

    8. Al hacer el update (yum update grub) (con update-grub no funciona) me dice:

      [root@Pablo-Fedora pablo]# yum update grub
      Complementos cargados:fastestmirror, langpacks, presto, refresh-packagekit
      Loading mirror speeds from cached hostfile
      * fedora: fedora.gtdinternet.com
      * livna: rpm.livna.org
      * rpmfusion-free: mirror.us.leaseweb.net
      * rpmfusion-free-updates: mirror.us.leaseweb.net
      * rpmfusion-nonfree: mirror.us.leaseweb.net
      * rpmfusion-nonfree-updates: mirror.us.leaseweb.net
      * updates: fedora.gtdinternet.com
      Configurando el proceso de actualización
      No se han seleccionando paquetes para ser actualizados


      Eliminar
    9. No, yum es el administrador de paquetes. No tenes que utilizarlo en este caso.
      El comando a ejecutar deberia ser
      sudo update-grub
      y luego ingresar la contraseña
      Con esto te genera un nuevo archivo de configuracion con los cambios necesarios para que detecte la bateria

      Eliminar
    10. tenía problemas con el sudo pero ya los arreglé. Al intentarlo, me insiste en que el comando no sirve.

      [pablo@Pablo-Fedora ~]$ sudo update-grub
      [sudo] password for pablo:
      sudo: update-grub: command not found

      Eliminar
    11. Es raro que no te tome el comando porque creo que para grub 1 es de esa forma. Intenta hacerlo como root escribiendo:
      sudo su -
      update-grub
      si sigue diciendote que no encuentra el comando, escribi update y a continacion la tecla tab, ahi veras todos los comandos que comienzan con update. Fijate si aparece alguno relacionado con grub

      Eliminar
    12. Nada con el grub.

      [root@Pablo-Fedora pablo]# update
      update-alternatives update-desktop-database update-mime-database
      updatedb update-gtk-immodules update-pciids

      Eliminar
    13. Proba esta vez escribiendo grub y luego tab para ver las opciones.
      Acá tiene que figurar un comando del estilo grub-update. Otra posibilidad seria actualizar a grub2

      Eliminar
    14. Al final reinstalé Fedora desde cero (Fedora 18 ahora). Sin embargo, sigo sin poder actualizar el grub.

      En internet dicen que el comando: grub2-mkconfig -o /boot/grub2/grub.cfg sirve para actualizar el grub2, pero a mi no me funciona.

      No sé qué hacer.

      Ps: gracias por la ayuda

      Eliminar
    15. En la página de Fedora Project dice esto:

      " Cómo actualizar las configuraciones del Grub

      En Fedora, editar directamente el archivo /boot/grub2/grub.cfg es un procedimiento seguro. Cuando se realice una actualización del kernel, Grubby modifica la configuración y lo hace de una manera segura. Otras distribuciones, específicamente Debian y sus derivadas, poseen una ruta predeterminada (por lo general diferente en cada una de estas distribuciones), que agregan un comando de actualización del grub. Esta forma de proceder no es ofrecida en Fedora, y tampoco es necesaria. "

      Por lo que supongo entonces que el archivo DSDT.aml no está funcionando.

      Eliminar
    16. Lo que pasa es que en el grub.cfg hay una seccion donde se especifica que se debe tomar el archivo .aml. En mi grub tengo esa seccion de la siguiente manera
      ### BEGIN /etc/grub.d/00_header ###

      ### END /etc/grub.d/00_header ###

      ### BEGIN /etc/grub.d/01_acpi ###
      insmod part_msdos
      insmod ext2
      set root='(hd0,msdos5)'
      search --no-floppy --fs-uuid --set=root 5009f499-b86a-48a5-9b09-6bda9c77f0f9
      acpi ($root)/boot/DSDT.aml
      ### END /etc/grub.d/01_acpi ###

      En la ultima linea se indica que debe cargar el .aml

      Fijate si tenes esa seccion y agregale esa ultima linea, sino pega el contenido de tu grub.cfg en http://pastebin.com/ y posteame el link, para que pueda ver como deberia quedar tu archivo

      Eliminar
    17. No encontré una sección totalmente parecida a esa, pero si dos que empezaban con:

      insmod part_msdos
      insmod ext2
      set root='(hd0,msdos5)'

      así que no supe donde pegar la última linea. Aquí va mi grub.cfg:

      http://goo.gl/JUCqO

      (gracias nuevamente)

      Eliminar
    18. Ahi te modifique el grub.cfg con las modificaciones necesarias. Te dejo el link en pastebin, solo reemplaza el contenido de tu viejo grub.cfg por este nuevo.
      Igualmente siempre hace una copia antes y tene listo un pendrive de rescate o live cd por cualquier error
      http://goo.gl/vKkqF

      Eliminar
    19. Modifiqué el grub.cfg y ningún problema. Repetí el proceso y reinicié, Pero sigo sin poder ver el indicador de bateria.

      Eliminar
    20. Ah, falta algo. Al no utilizar el metodo que explico y solo modificas el grub, tenes que copiar el archivo DSDT.aml al directorio /boot
      Te dejo una captura de mi directorio
      http://dl.dropbox.com/u/155504/imagenes/boot.png

      Eliminar
    21. El DSDT.aml ha estado ahí siempre, de todas formas, hice el proceso nuevamente, pero nada...

      https://www.dropbox.com/s/sv0p0d648904hsu/Captura%20de%20pantalla%20de%202013-03-04%2000%3A30%3A05.png?m

      Eliminar
    22. Entonces hay que ver la forma de que se regenere el grub.cfg. En estos dias descargo fedora 18, lo instalo en una maquina virtual y te digo como hace el update grub.

      Eliminar
    23. Ya, muchas gracias mukenio, estoy al tanto.

      Eliminar
    24. Pablo, ya encontre el problema. Edita el archivo 01_acpi (el del punto 7) y cambia la linea 12 por esto:
      . /usr/share/grub/grub-mkconfig_lib
      guarda el archivo y hace el grub2-mkconfig... como me dijiste que hiciste
      Con eso deberia funcionar.
      Cualquier cosa escribime de vuelta
      Saludos

      Eliminar
    25. Mukenio, eres uno de los grandes. Muchas gracias por la ayuda y paciencia.

      Saludos desde Santiago de Chile.

      Eliminar
    26. Me alegro que haya resultado bien! Saludos!

      Eliminar
  41. Hola que tal!

    Yo seguí todos los pasos y aun nada, me pasa algo parecido a lo que le ocurría a Jerry. En el ultimo comentario que hizo dijo que tuvo que copiar unos archivos y librerías para que le funcionara. Quisiera saber que archivos son para ver si eso soluciona mi problema.

    Otra cosa que también note es que no tengo la carpeta grub2

    Que debo hacer! por favor ayuda

    ResponderEliminar
    Respuestas
    1. Hola Joseanv, en que paso te quedas atascado? Puede ser que no tengas la carpeta grub2, en OpenSuse si esta esta carpeta pero en otras no es necesario que este. Lo importante es el archivo grub.cfg que puede estar en /boot/grub o /boot/grub/grub2 o /boot/grub2 dependiendo de la distribucion.

      Eliminar
  42. Saludos Heraldo, tengo una toshiba satellite L655 S5096, segui los pasos y luego de reiniciar el sistema todo funcionó a la perfección. sin embargo debi comentar las siguientes lineas del codigo porque la actualización del grub daba error. Saludos y muchas gracias por tu aporte, sin duda valorable!!

    #if [$? -eq 1]; then
    # lib=$(find /usr -name grub-mkconfig_lib)
    #$lib
    #fi;

    ResponderEliminar
    Respuestas
    1. Gracias @prof.Erith Muñoz, mi problema abajo citado lo resolvi comentando las lineas que mensionas, gracias :D, todo bien en Linux Mint 14 - Toshiba Satellite L655

      yos@yosx ~ $ sudo update-grub2
      Generando grub.cfg ...
      /etc/grub.d/01_acpi: 17: /etc/grub.d/01_acpi: Syntax error: "fi" unexpected (expecting ")")

      Eliminar
    2. Proba descargar nuevamente el archivo que le hice una modificacion. Tal vez ahora te funcione

      Eliminar
  43. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  44. Hice todo lo que me dijeron y rompi el arranque del sistema operativo.

    ResponderEliminar
    Respuestas
    1. ¿Que distribucion tenes? ¿Cual es el error que te indica el grub?

      Eliminar
  45. Gracias, eres lo máximo me funciono

    ResponderEliminar
  46. A mí me detecta la batería. Tengo Acer 5920
    alarm: unsupported
    present: yes
    design capacity: 6600 mAh
    last full capacity: 5853 mAh
    battery technology: rechargeable
    design voltage: 11100 mV
    design capacity warning: 300 mAh
    design capacity low: 234 mAh
    cycle count: 0
    capacity granularity 1: 32 mAh
    capacity granularity 2: 32 mAh
    model number: Chapala
    serial number: 100
    battery type: LION
    OEM info: SANYO
    present: yes
    capacity state: ok
    charging state: charging
    present rate: 0 mA
    remaining capacity: 0 mAh
    present voltage: 10272 mV

    pero no carga, aunque el led de carga de batería está encendido y tras unas horas se pone en verde. el indicador de carga de la batería de Ubuntu 12.04 pasa entonces de 0 a 100%. Sin embargo quito el cargador y el portátil se me apaga. Por otro lado, he realizado los primeros pasos, pero en OperationRegion no tengo esos datos, tengo los siguientes:
    OperationRegion (PRT0, SystemIO, 0x80, 0x04)
    OperationRegion (GNVS, SystemMemory, 0x7FEE0D2C, 0x0100)
    OperationRegion (NV1, SystemIO, 0x72, 0x02)
    OperationRegion (HBUS, PCI_Config, 0x40, 0xC0)
    OperationRegion (IGDP, PCI_Config, 0x40, 0xC0)
    OperationRegion (IGDM, SystemMemory, ASLB, 0x2000)
    OperationRegion (IO_T, SystemIO, 0x0800, 0x10)
    OperationRegion (PMIO, SystemIO, 0x1000, 0x80)
    OperationRegion (GPIO, SystemIO, 0x1180, 0x3C)
    OperationRegion (RCRB, SystemMemory, 0xFED1C000, 0x4000)
    OperationRegion (HDAR, PCI_Config, 0x4C, 0x10)
    OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
    OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)

    y no me atrevo a modificar ninguno porque la última vez que lo hice se jodió el SO. ¿qué puedo hacer?

    Gracias







    ResponderEliminar
    Respuestas
    1. Por lo que comentas tu problema no tiene nada que ver con lo que planteo. Yo no tocaría nada y buscaría por la web si existe una solucion para tu problema. Podes probar utilizando algun live cd, que no sea derivado de ubuntu como fedora u opensuse y ver si carga la bateria, ya que puede ser un problema de ubuntu

      Eliminar
  47. Gracias me ha funcionado de a 100 :)

    ResponderEliminar
  48. Hola Mukenio!

    Quisiera saber si me puedes ayudar, esta solución de la bateria funciona para una Toshiba L645D - s4036 con ubuntu 13.10?? Te agradezco la vida si podrias ayudarme

    Saludos
    Juan José

    ResponderEliminar
    Respuestas
    1. Hola, no deberias tener problemas al hacerlo con Ubuntu 13.10. Lo unico que deberias ver es si podes ejecutar el punto 8 porque en algunas distribuciones como fedora o opensuse el comando cambia. Pero creo que en Ubuntu ese comando funciona. Antes de comenzar el proceso te recomiendo que tengas a mano una copia en cd o usb de alguna distribucion para restaurar el grub en caso de falla. Cualquier otra consulta no dudes en comentar.
      Saludos

      Eliminar
    2. Hola mukenio!! gracias por tu pronta respuesta! lastimosamente sigo con el problema, no tengo utilizo ni fedora ni opensuse. realice la actualización del grub y tampoco funciono cuando ejecuto: cat /proc/acpi/battery/BAT1/*

      Me da como resultado
      cat: /proc/acpi/battery/BAT1/*: No existe el archivo o el directorio

      Estoy totalmente perdido

      Eliminar
    3. en lugar de utilizar el comando cat /proc/acpi/battery/BAT1/*
      ejecuta: acpi -b
      Con esto chequeas si detecta la bateria.
      De todas maneras lo mas importante del procedimiento no pasa por ese comando.
      Todos los pasos los hiciste sin problemas?

      Eliminar
    4. Pues, ahora que lo hice otra vez en la compilacion me dieron 22 errores, copie todo a mano para no tener problema. Al reiniciar ubuntu me dio un error y ya no puedo iniciar en ubuntu, te estoy escribiendo desde Windows :S............. no se que puedo hacer ahora

      Eliminar
    5. No tenes una copia del grub? Podes solucionarlo utilizando un live cd. En internet esta lleno de tutoriales para solucionarlo.
      Si la compilacion da errores no deberias seguir con los pasos porque algo seguramente va a salir mal (como te paso) Proba nuevamente y pega aqui los errores que te imprime por consola

      Eliminar
  49. Todo iba bien hasta que me encontré con esta linea $sudo iasl -tc DSDT.dsl no me genera el archivo .aml :( que puedo hacer?

    ResponderEliminar
  50. hola amigo porque cuando pongo el primer comando me sale esto "No existe el archivo o el directorio"

    ResponderEliminar
    Respuestas
    1. Jonathan puede que en versiones nuevas del kernel ese archivo no exista. Un equivalente es ejecutar "acpi -b" (sin comillas)
      Saludos

      Eliminar
    2. gracias ya pude solucionar el problema, ahora me tope con esto cuando tengo que editar esta linea "OperationRegion (EMEM, SystemMemory, 0xFF808001, 0xFF) " no aparece :/

      Eliminar
    3. El modelo de tu notebook es l645?

      Eliminar
    4. el modelo de mi lap es toshiba L745d

      Eliminar
  51. Hola, tengo una L645D trate de seguir todos los pasos pero cuando se tiene que sustituir OperationRegion (EMEM, SystemMemory, 0xFF808001, 0xFF), no encuentra esa linea hay una muy similar OperationRegion (EMEM, SystemMemory, 0xFF808001, 0x01FF) ya la sustiti por la que esta en este tuto y termine todos los pasos, cuando reinicio, no entra al sistema solo se queda pasmada la compu :( alguna idea ????

    ResponderEliminar