6.15. Gerenciamento de Energia e Recursos

Escrito por Hiten Pandya e Tom Rhodes.

É muito importante utilizar os recursos de hardware de maneira eficiente. Antes do ACPI ser introduzido, era muito difícil e inflexífel para os sistemas operacionais gerenciar o uso de energia e propriedades térmicas de um sistema. O hardware era controlado por algum tipo de interface BIOS embarcada, ou Plug and Play BIOS (PNPBIOS), ou Gerenciamento de Energia Avançado (APM) e assim por diante. Gerenciamento de Energia e Recursos é um dos componentes chave de um sistema operacional moderno. Por exemplo, você pode querer que o sistema operacional monitore os limites do sistema (e possívelmente alertar você) caso a temperatura do seu sistema aumente inesperadamente.

Nesta seção do Handbook do FreeBSD ofereceremos informações sobre ACPI. Daremos referências de leituras mais completas no final. Por favor, saiba que o ACPI está disponível no FreeBSD 5.X e superiores como um módulo padrão de kernel. Para o FreeBSD 4.9, ACPI pode ser habilitado adicionando-se a linha device acpi ao arquivo de configuração do kernel e recompilando-se o sistema.

6.15.1. O que é ACPI?

Configuração Avançada e Interface de Energia (ACPI) é um padrão escrito por um consórcio de fornecedores para oferecer um padrão de interface para recursos de hardware e gerenciamento de energia. É um elemento chave na Configuração direcionada ao Sistema e Gerenciamento de Energia, ex.: oferece mais controle e flexibilidade para o sistema operacional (SO). Sistemas modernos, ``arrebentaram'' os limites das interfaces Plug and Play atuais (tais como APM, que é usada no FreeBSD 4.X), antes da introdução do ACPI. ACPI é o sucessor direto do APM (Gerenciamento Avançado de Energia).

6.15.2. Contratempos do Gerenciamento Avançado de Energia (APM)

O Gerenciamento Avançado de Energia (APM) facilita o controle do uso de energia de um sistema baseado em sua atividade. A BIOS APM é oferecida pelo fornecedor (do sistema) e é específica à plataforma de hardware. Um driver APM no SO media o acesso ao Programa de Interface APM, que permite o gerenciamento de níveis de energia.

Existem quatro problemas principais no APM. Primeiro, o gerenciamento de energia é feito pela BIOS (específica do fornecedor), e o SO não tem nenhum conhecimento dela. Um exemplo disso é quando o usuário configura valores de tempo ocioso para discos rígidos na BIOS APM que, quando excedidos, ela (BIOS) desliga o disco sem o consentimento do SO. Segundo, a lógica do APM é embarcada na BIOS, e opera fora do escopo do SO. Isto significa que os usuários só podem consertar problemas em suas BIOS APM gravando uma nova ROM; que é um procedimento extremamente perigoso, e se falhar, pode levar o sistema à um estado irrecuperável. Terceiro, APM é uma tecnologia específica do fornecedor, o que significa que existem muitas paridades (duplicação de esforços) e falhas encontradas nas BIOS destes fornecedores que podem não ser consertadas nas de outros fornecedores. Última mas não menos importante, a BIOS APM não possui espaço suficiente para implementar uma política sofisticada de energia, ou uma que possa se adaptar bem ao propósito da máquina.

BIOS Plug and Play (PNPBIOS) era inconfiável em muitas situações. PNPBIOS é uma tecnologia de 16 bits, assim o SO tem que emular 16 bits para fazer ``interface'' com os métodos PNPBIOS.

O driver APM do FreeBSD está documentado na página de manual do apm(4).

6.15.3. Configurando ACPI

O driver acpi.ko é carregado por padrão na inicialização pelo loader(8) e não deve ser compilado no kernel. A razão por trás disso é que os módulos são mais fáceis de se trabalhar, digamos se trocar para outro acpi.ko sem que seja preciso recompilar o kernel. Isto tem a vantagem de facilitar os testes. Uma outra razão é que inicializar o ACPI depois do sistema estar no ar não é tão útil, e em alguns casos pode ser fatal. Na dúvida, apenas desabilite o ACPI. Este driver não deve e não pode ser desabilitado pois o barramento do sistema o usa para várias interações de hardware. O ACPI pode ser desabilitado com o utilitário acpiconf(8). Na verdade, a maior parte das interações com o ACPI pode ser feita através do acpiconf(8). Basicamente isto significa que se qualquer coisa a respeito do ACPI estiver na saída do dmesg(8), então provavelmente já estará rodando.

Nota: ACPI e APM não podem coexistir e devem ser usados separadamente. O último a ser carregado será finalizado se o driver tiver notícias que o outro está sendo executado.

Numa forma mais simples, o ACPI pode ser usado para colocar o sistema em modo de espera com a opção -s e 1-5 do acpiconf(8).

# halt -p

Outras opções estão disponíveis. Confira a página de manual acpiconf(8) para mais informações.

6.15.4. Depurando e Desabilitando o ACPI

Quase tudo no ACPI é transparente, até que não funcione. Você como usuário saberá quando alguma coisa não funcionar de acordo. O driver acpi(4) suporta várias opções de depuração, é até possível seletivamente desabilitar algumas partes do sistema ACPI. Para mais informações a respeito de facildades de depuração leia a página de manual do acpi(4).

Algumas vezes, por várias razões, o módulo acpi.ko deve ser descarregado. Isto só pode ser feito no momento da inicialização pelo loader(8). Você pode digitar no prompt do loader(8) o comando unset acpi_load cada vez que você inicializar o sistema, para interromper o carregamento automático do driver acpi(4) adicione a seguinte linha no arquivo /boot/loader.conf:

exec="unset acpi_load"

O FreeBSD 5.1-RELEASE e superiores vem com um menu em tempo de inicialização que controla como o FreeBSD é inicializado. Uma das opções propostas é a de desligar o ACPI. Para desabilitá-lo selecione 2. Boot FreeBSD with ACPI disabled no menu.

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.