CPU bloqueada na frequência mais baixa, cpufreqd diz que não irá gerenciá-la?

4

Eu tenho um Dell Latitude D600 executando o CrunchBang Statler (baseado no Debian Squeeze) com um Pentium M. de 1.4GHz. Notei em Conky que minha CPU freq está presa em 600MHz, mesmo quando faço coisas intensivas em CPU como o Flash Video. Então eu instalei o cpufreqd, rodei o cpufreq-info e ele retornou isto:

cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to [email protected], please.
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 600 MHz - 1.40 GHz
  available frequency steps: 1.40 GHz, 1.20 GHz, 1000 MHz, 800 MHz, 600 MHz
  available cpufreq governors: powersave, userspace, conservative, ondemand, performance
  current policy: frequency should be within 600 MHz and 600 MHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 600 MHz.
  cpufreq stats: 1.40 GHz:0.00%, 1.20 GHz:0.00%, 1000 MHz:0.00%, 800 MHz:0.00%, 600 MHz:100.00%

Observe a parte sobre "CPUs que precisam ter sua frequência coordenada". Parece que o CPUFreqD é incapaz de gerenciar minha freqüência de processador, e também diz que está sendo mantido em uma faixa de 600MHz a 600MHz. Eu tenho SpeedStep, e supostamente 2.6 tem suporte total para isso (eu tenho 2.6.39 backported de Wheezy), mas eu nunca percebo SpeedStep fazendo nada. Se eu desativá-lo, o BIOS diz que eu vou ficar preso em 600MHz.

O poder não é problema, pois o laptop não tem bateria; depende exclusivamente do seu cabo de alimentação. Como posso ativar a frequência total do meu processador? O Linux está mentindo para mim sobre a frequência? Eu sou decentemente experiente com o Linux, então eu não tenho medo de tentar correções complexas.

    
por soren121 15.10.2011 / 02:58

3 respostas

4

Um mês depois, e executando o Arch Linux, descobri o problema real e sua solução.

Meu Dell D600 não tem uma bateria e está funcionando apenas com energia do adaptador de CA. Quando o BIOS detecta que não há bateria instalada, ele reduz a CPU permanentemente para evitar sobrecarregar o adaptador de CA.

Se você quiser sobrescrever este comportamento, tudo o que você precisa fazer é adicionar processor.ignore_ppc=1 ao final do comando de inicialização do kernel (normalmente encontrado em sua configuração do GRUB). Então você pode usar o driver acpi_cpufreq para habilitar a escala de frequência da CPU corretamente.

Ou você pode optar por não ser barato e comprar uma bateria. Isso também resolveria o problema.

    
por 20.11.2011 / 22:00
1

As informações "CPUs que precisam ter sua frequência coordenada por software: 0" estão perfeitamente bem. Este 0 significa não um número de CPUs a serem controladas, mas uma lista de CPUs - que no seu caso é apenas uma, e seu número é 0 .

Você leu man cpufreq-set ? Ele informa como definir a frequência da CPU min e max permitida. Além disso, o governor cpufreq recomendado é conservative . Apenas mude para isso e você não precisa de daemons de sistema adicionais em execução.

    
por 15.10.2011 / 03:18
1

Você precisa realmente carregar os módulos de energia apropriados, já que eles normalmente não são carregados automaticamente pelo Debian.

Verificando a instalação do Squeeze que eu tenho em casa, há vários módulos speedstep que podem ser carregados. Não tenho certeza quais são necessários para sua máquina específica. Você pode experimentá-los um por um.

-rw-r--r-- 1 root root  7500 Oct  3 17:07 speedstep-centrino.ko
-rw-r--r-- 1 root root  7120 Oct  3 17:07 speedstep-ich.ko
-rw-r--r-- 1 root root  6912 Oct  3 17:07 speedstep-lib.ko
-rw-r--r-- 1 root root  8152 Oct  3 17:07 speedstep-smi.ko

Verifique se eles já estão carregados usando o comando lsmod | grep speedstep .

    
por 15.10.2011 / 08:12

Tags