ACPI

A ACPI (Interface de Energia e Configuração Avançada) foi projetada para habilitar o sistema operacional a configurar e controlar os componentes individuais do hardware. A ACPI substitui PnP e APM. Ela envia informações sobre a bateria, o adaptador de CA, a temperatura, o ventilador e eventos do sistema, como fechar tampa ou bateria fraca.

O BIOS fornece tabelas que contém informações sobre os componentes individuais e métodos de acesso ao hardware. O sistema operacional usa essas informações para tarefas como atribuir interrupções ou ativar e desativar componentes. Como o sistema operacional executa comandos armazenados no BIOS, a funcionalidade depende da implementação do BIOS. As tabelas que a ACPI podem detectar e carregar são reportadas em /var/log/boot.msg. Consulte a Seção 18.2.3, “Solução de problemas” para obter mais informações sobre solução de problemas da ACPI.

Controlando o desempenho da CPU

A CPU pode economizar energia de três maneiras. Dependendo do modo operacional do computador, estes métodos também podem ser combinados. Economizar energia também significa que o sistema esquenta menos e os ventiladores são ativados com menos freqüência.

Escala de freqüência e voltagem

PowerNow! e Speedstep são as designações usadas pela AMD e pela Intel para esta tecnologia. No entanto, essa tecnologia também é aplicada em processadores de outros fabricantes. A freqüência do relógio da CPU e sua voltagem básica são reduzidas ao mesmo tempo, resultando em economias de energia mais do que lineares. Isso significa que quando a freqüência for reduzida pela metade (meio desempenho), muito menos que metade da energia é consumida. Essa tecnologia é independente de ACPI. Há dois métodos principais para desempenhar a escala de freqüência da CPU: pelo próprio kernel ou por um aplicativo de espaço de usuário. Portanto, há diferentes reguladores de kernel que podem ser definidos abaixo de /sys/devices/system/cpu/cpu*/cpufreq/.

regulador de espaço de usuário

Se o regulador de espaço de usuário estiver definido, o kernel passa o controle da escala de freqüência de CPU para um aplicativo de espaço de usuário, geralmente um daemon. Em distribuições do SUSE Linux Enterprise Desktop, esse daemon é o pacote powersaved. Quando essa implementação é usada, a freqüência de CPU é ajustada em relação à carga do sistema atual. Por padrão, uma das implementações de kernel é usada. Porém, em alguns hardwares ou em relação a drivers ou processadores específicos, a implementação do espaço de usuário ainda é a única solução que funciona.

regulador em demanda

Esta é a implementação de kernel de uma política de freqüência de CPU dinâmica e deve funcionar na maioria dos sistemas. Assim que houver uma carga alta de sistema, a freqüência de CPU é imediatamente aumentada. Ela é reduzida em uma carga de sistema baixa.

regulador conservador

Esse regulador é semelhante à implementação em demanda, só que usa uma política mais conservadora. A carga do sistema deve ser alta por um tempo específico antes que a freqüência do CPU seja aumentada.

regulador de economia de energia

A freqüência de cpu é definida estaticamente para o mais baixo possível.

regulador de desempenho

A freqüência de cpu é definida estaticamente para o mais alto possível.

Throttling da freqüência do relógio

Esta tecnologia omite uma determinada porcentagem dos impulsos de sinal do relógio para a CPU. Com throttling a 25%, todo quarto impulso é omitido. A 87,5%, apenas cada oitavo impulso chega ao processador. No entanto, as economias de energia são pouco menos que lineares. Normalmente, o throttling só é usado se a escala da freqüência não estiver disponível ou para maximizar as economias de energia. Essa tecnologia deve também ser controlada por um processo especial. A interface do sistema é /proc/acpi/processor/*/throttling.

Colocando o processador em repouso

O sistema operacional coloca o processador em repouso sempre que há inatividade. Nesse caso, o sistema operacional envia um comando halt à CPU. Existem três estados: C1, C2 e C3. No estado mais econômico, C3, até a sincronização do cache do processador com a memória principal é interrompida. Portanto, esse estado só pode ser aplicado se nenhum dispositivo modificar o conteúdo da memória principal por meio de atividade do barramento mestre. Alguns drivers impedem o uso de C3. O estado atual é exibido em /proc/acpi/processor/*/power.

A escala e o throttling da freqüência só são relevantes se o processador estiver ocupado, porque o estado C mais econômico é aplicado sempre que o processador está inativo. Se a CPU estiver ocupada, a escala da freqüência é o método recomendado para economia de energia. Em geral o processador só trabalha com carga parcial. Neste caso, pode ser executado com uma freqüência inferior. Normalmente, a escala de freqüência dinâmica controlada pelo regulador em demanda do kernel ou por um daemon, como powersaved, é o melhor método. Uma configuração estática em baixa freqüência é útil para o funcionamento com bateria ou se você desejar que o computador permaneça frio ou silencioso.

Throttling deve ser usado como última alternativa, por exemplo, para ampliar o tempo de operação da bateria, apesar de uma alta carga do sistema. Contudo, alguns sistemas não são executados suavemente quando ocorrem throttlings em excesso. Ademais, o throttling da CPU não faz sentido se a CPU tem pouco a fazer.

Ferramentas da ACPI

A gama de utilitários mais ou menos abrangentes da ACPI inclui ferramentas que apenas exibem informações, como o nível de carga e a temperatura da bateria (acpi, klaptopdaemon etc.), ferramentas que facilitam o acesso às estruturas de /proc/acpi ou que auxiliam no monitoramento das mudanças (akpi, acpiw, gtkacpiw), e ferramentas para edição das tabelas da ACPI no BIOS (pacote pmtools).

Solução de problemas

Há dois tipos de problemas. De um lado, o código ACPI do kernel pode conter erros que não foram detectados em tempo útil. Neste caso, uma solução estará disponível para download. O mais comum é que os problemas sejam causados pelo BIOS. Às vezes, desvios da especificação da ACPI são propositalmente integrados ao BIOS para contornar erros na implementação da ACPI em outros sistemas operacionais amplamente utilizados. Componentes de hardware que têm erros sérios na implementação da ACPI são gravados em uma lista negra que impede que o kernel do Linux use a ACPI para esses componentes.

A primeira ação a ser tomada quando problemas forem detectados, é atualizar o BIOS. Se o computador não inicializar de jeito nenhum, um dos seguintes parâmetros de boot poderá ser útil:

pci=noacpi

Não use ACPI para configurar os dispositivos PCI.

acpi=ht

Realize apenas uma configuração com recursos simples. Não use a ACPI para outros fins.

acpi=off

Desabilitar a ACPI.

[Warning]problemas de boot sem ACPI

Algumas máquinas mais novas (especialmente os sistemas SMP e AMD64) precisam de ACPI para configurar o hardware corretamente. Nestas máquinas, desabilitar a ACPI pode causar problemas.

Às vezes a máquina é confundida pelo hardware conectado por USB ou FireWire. Se uma máquina se recusa a inicializar, desconecte todos os itens de hardware desnecessários e tente novamente.

Monitore as mensagens de boot do sistema com o comando dmesg | grep -2i acpi (ou todas as mensagens, porque o problema pode não ser causado pela ACPI) após o boot. Se ocorrer algum erro durante a análise de uma tabela ACPI, a tabela mais importante — a DSDT (Differentiaed System Description Table - tabela de descrição diferenciada do sistema) — poderá ser substituída por uma versão aprimorada. Neste caso, a DSDT defeituosa do BIOS é ignorada. O procedimento está descrito em Seção 18.4, “Solução de problemas”.

Na configuração do kernel, há um switch para ativar as mensagens de depuração da ACPI. Se um kernel com depuração da ACPI for compilado e instalado, os técnicos que procuram o erro podem ser auxiliados com informações detalhadas.

Se você tiver problemas com BIOS ou hardware, é sempre recomendável entrar em contato com os fabricantes. Especialmente se eles nem sempre derem assistência ao Linux, devem ser indagados em caso de problemas. Os fabricantes só levarão a questão a sério se compreenderem que um número satisfatório de seus clientes usa Linux.

Para obter mais informações