Resolvendo o problema de gerenciamento de energia - ACPI

O Notebook Acer Aspire 3000, quando utilizado com o sistema Linux, apresenta algumas falhas no gerenciamento de energia. Neste artigo veremos como solucionar este problema.

[ Hits: 52.266 ]

Por: Jonas em 08/07/2006


Corrigindo a DSDT



Como a tabela do Notebook Acer Aspire 3000 - BIOS Phoenix versão 3A21 não estava no padrão ACPI, resolvi demonstrar os passos que realizei para corrigí-la, como segue abaixo:

Instalar o iasl, compilador de DSDT:

# apt-get install iasl

Este compilador precisa de pacotes complementares, o bison e flex-old:

# apt-get install bison
# apt-get install flex-old


Obter a atual DSDT:

# cat /proc/acpi/dsdt > dsdt.jca

Obter arquivo fonte da atual DSDT:

# iasl -d dsdt.jca

Verificar os erros da dsdt.dsl, compilando com o comando:

# iasl -tc dsdt.dsl

Encontrados 8 erros, sendo que 5 estariam vinculados aos mencionados abaixo:

1) Reserved method must return a value (_WAK)
2) Object does not exist (Z007)
3) Object does not exist (\_PR.CPU0._PPC)

O primeiro erro foi corrigido adicionando, após a última instrução do método WAK, a linha:

Return (Package (0x02)

O segundo foi alterando o objeto Z007 para Z001.

O último erro, acrescentando o seguinte comando abaixo da instrução Scope (_PR):

External(\_PR.CPU0.PPC)

Após corrigir os erros, compilar novamente com o comando:

# iasl -tc dsdt.dsl

Caso não haja nenhum erro e nem warning, será gerado o arquivo dsdt.aml, onde iremos adicioná-lo ao initrd, mas antes disso criamos uma cópia do atual initrd para initrd-DSDT:

# cp -f /boot/initrd-nome-da-atual /boot/initrd-DSDT

Abrir o initrd-DSDT:

# echo -n "INITRDDSDT123DSDT123" >> /boot/initrd-DSDT

Incluir a dsdt.aml ( tabela DSDT corrigida ) ao initrd-DSDT:

# cat dsdt.aml >> /boot/initrd-DSDT

Fechar o initrd-DSDT:

# echo -n "INITRDDSDT321DSDT321" >> /boot/initrd-DSDT

Pronto! A nova tabela foi incorporada ao novo initrd, que será carregado após reiniciar, mas antes devemos alterar no lilo.conf o caminho para o novo initrd:

initrd=/boot/initrd-DSDT

Adicionar mais um parâmetro para o kernel, que serviu para corrigir o problema da eth0 não estar funcionando:

acpi=noirq

Ativar o lilo para carregar as novas alterações:

# lilo

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Corrigindo a DSDT
   3. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Instalando uma Nvidia no Debian

Asterisk realtime e Trunk

AntiX: um Sistema Operacional para computadores antigos

Assistindo vídeos no XMMS

Servidor de backup Bacula 7 + Webacula 5.5 no Debian Wheezy

  
Comentários
[1] Comentário enviado por marceferreira em 09/07/2006 - 13:14h

Caro amigo, realmente o gerenciamento de energia para notebook é um grande problema. Comprei recentemente meu notebook Acer.

Após buscas na internet, por horas e horas, todos mandando recompilar o Kernel e coisa e tal. Como sou usuário do Debian a alguns anos não acreditei, busquei novamente até achar referências para uma váriavel ec_burst.

Se você utiliza o kernel 2.6, é só acrescentar o seguinte paramêtro no seu gerenciador de boot, no meu caso GRUB, no final da linha kernel, como abaixo:

kernel XXXXXXXXXXX ec_burst=1

Pronto após o boot e como eu já tinha as ferramentas de gerenciamento de energia e bateria instalados, tudo funcionou perfeitamente. Agora gerencio minha bateria sem problemas(KDE e GNOME). Parabéns aos desenvolvedores do kernel 2.6 e ao Debian.

[2] Comentário enviado por neonx em 10/07/2006 - 11:25h

Ai cara realmente esse gerenciamento de energia é um "pé no saco" para notebooks ach o que esse teu artigo vai ajudar muita gente que passa pelo mesmo problema...

parabéns...

[3] Comentário enviado por 195221 em 15/07/2006 - 11:59h

Realmente nota dez valeu.

[4] Comentário enviado por removido em 16/07/2006 - 17:43h

muito show de bola....
parabens

[5] Comentário enviado por rene em 02/08/2006 - 09:56h

Legal o artigo! O gerenciamento de energia é crucial para notebooks...

Uso o Gentoo 2005, segui todos os passos do artigo porém não funcionou, o problema estava em carregar a tabela DSDT a partir do RAMDISK (mesmo como todo suporte habilitado, etc...). Segui outros passos que encontrei na internet e nada... o jeito foi baixar o kernel mais novo e adicionar a tabela "na mão" direto no kernel, compilei tudo e pronto! Está tudo funcionando...

t+! Abraços;

[6] Comentário enviado por kjhoni em 02/08/2006 - 20:45h

Umas das coisas que me incentiva cada vez mais à estudar sobre o Linux, é que não existe somente uma maneira de corrigir determinado problema. Cada solução nos leva pra outras dimensões, e faz com que tenhamos mais prazer em sermos “livres”.
Obrigado a todos os comentários.

[7] Comentário enviado por saulobdocouto em 24/05/2007 - 00:35h

Olá tenho esse problema e é muito desestimulante usar o notebook sem saber q horas q ele vai desligar!! tendo que salvar td a todo momento! Sou usuário do Ubuntu há 6 meses, e tenho me adaptado bastante, gostaria mto de resolver esse problema..

Tentei seguir essas instruções mas não existe a pasta /proc/acpi no meu notebook, existe algum passo anterior que eu deveria ter realizado??

Obrigado

[8] Comentário enviado por removido em 18/07/2007 - 00:07h

Jonas,

Seu artigo é de excelente qualidade! Gostei dele! Também tenho um notebook Acer, o modelo é um Aspire 3690, não tive problemas com ACPI, pois, meu kernel, foi compilado por mim.

Quando built-in! Funciona sem problemas! Agora tô vendo se deixo esse recurso como módulo.

Um grande abraço!


Atenciosamente,

Slackmaster ( jlgomessouza@gmail.com )


http://dangercode.blogspot.com

[9] Comentário enviado por brunosalmito em 24/09/2007 - 11:44h

alguem ai poderia me ajudar, seguinte comprei um ote aspire 3690 e instlaei o slack 10.2 nele, so que nao estou conseguindo configurar a placa de rede nem de som, alguem poderia me ajudar ?

[10] Comentário enviado por italodiego12 em 19/03/2010 - 16:21h

Ajudou muito.

http://techlivre.blogspot.com/2010/03/bateria-de-notebooks-mitos.html


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts