====== Gerenciamento de energia ======
Isso foi escrito há algum tempo, e considerando a utilização do OpenEmbedded, podem haver informações desatualizadas. Entretanto há otras que ainda são válidas para o Yocto Project
===== Configurando =====
Aparentemente o único kernel que permite de fato o gerenciamento de energia é o linux-omap-pm. Este kernel no entanto é muito instável, falhando muito frequentemente, tanto logo após iniciar, ou durante o uso. Portanto deve-se utilizá-lo com cuidado. Talvez versões posteriores sejam mais estáveis ou esses recursos sejam adicionados no kernel padrão.
Abra o diretório $OVEROTOP/user.collection/recipes/linux/linux-omap-pm-2.6.29/overo/ ou outra versão que estaja sendo usada, caso seja o caso.
Abra o defconfig com o nano ou outro editor.
O que eu fiz foi habilitar tudo na seção CPU Power Management, e também Power Management Options.
Caso você esteja bootando do MMC será necessário habilitar CONFIG_MMC_UNSAFE_RESUME, para que o modo de suspensão não corrompa o cartão.
Aparentemente para que alguns serviços possam ser desligados durante a suspensão é preciso habilitar também CONFIG_OMAP_RESET_CLOCKS.
===== Usando =====
Se tudo tiver dado certo será possível colocar em modo de suspensão:
echo mem > /sys/power/state
Para que ele entre em suspensão automaticamente:
echo 1 > /sys/power/sleep_while_idle
Para que ele volte automaticamente após X segundos:
echo X > /sys/power/wakeup_timer_seconds
Há também configurações de um certo modo desligado, mas aparentemente não funciona,
pelo menos não quando usando o MMC.
Para reduzir mais o consumo devem ser desligados os recursos que não estão sendo utilizados:
# wifi
echo 0 > /sys/class/gpio/gpio16/value
# bluetooth
echo 0 > /sys/class/gpio/gpio164/value
# usb
echo 183 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio183/direction
echo 0 > /sys/class/gpio/gpio183/value
echo 0 > /sys/class/gpio/gpio168/value
Pode-se ainda reduzir a frequência do processador, para reduzir mais um pouco o consumo:
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 125000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
Podem ser usadas as frequências de 600MHz, 500MHz, 250MHz e 125MHz.