Raspberry

Tunning no Raspberry Pi

como trocar o logo do kernel

Dá pra afirmar seguramente que a maioria das pessoas que usa o Raspberry não faz ajustes finos no sistema. Normalmente o foco é a configuração do sistema (seja para jogos ou IoT) e de resto, nada se mexe. Bem, se desejar controlar melhor os recursos do sistema e de quebra conhecer mais sobre configurações específicas, esse artigo vai te ajudar a fazer um tunning no Raspberry Pi para ajustar seu funcionamento como desejado, é pura diversão.

Consumo de energia

Sempre desejamos mais recursos, mais clock, mais memória, claro. Mas nem sempre o sistema está sob demanda, o que acaba gastando mais energia do que o necessário e por subsequente, gerar mais calor desnecessariamente. O oposto também acontece; você precisa de mais poder da sua Raspberry Pi, mas parece que ela chegou no limite. Boa notícia pra você; dá pra fazer o ajuste em ambas as direções.

Política de frequência da CPU

O Linux tem um driver que gerencia a frequência da CPU baseado em variáveis chamadas convencionadas como ‘política’. Sempre que o sistema iniciar, alguma delas será carregada por padrão. No Raspbian a política padrão é powersave. Isso significa que não importa o que você faça, o clock estará configurado para um valor mínimo. Estou utilizando o Raspbian baseado no Debian Stretch. A CPU atualmente está em 600MHz utilizando a política powersave:

Raspberry Pi
Raspberry Pi

O mais interessante é que podemos mudar a frequência on-the-fly.

Raspberry Pi
Raspberry Pi

Ou podemos definir que a frequência mude sob demanda:

Raspberry Pi
Raspberry Pi

Desse modo, a CPU estará sempre em modo de economia até que seja requisitada. Porém, pode ser pretendido que ela já esteja pronta para uma tarefa que demande mais processamento, por isso esse controle pode ser feito por sua aplicação, de modo que ela seja retirada imediatamente do modo de economia para o modo de demanda.

Tabela de políticas de frequência do Governor

As possíveis configurações são:

conservative muda a frequência da CPU suavemente conforme carga
ondemand muda do mínimo para o máximo sob demanda
performance ajusta a frequência para o máximo sempre
powersave ajusta a frequência para o mínimo sempre
userspace permite o controle por um serviço no userspace

Apenas para esclarecer, existe o userspace e o kernelspace. O kernelspace é uma área de manipulação de recursos do kernel que é protegida. Um bom exemplo disso é o firewall do Linux, o Netfilter, que atua no kernelspace e por isso é um dos firewall mais seguros que existem, pois não pode ser interrompido pelo user space. No userspace é onde o usuário pode interagir com recursos do kernel. Seguindo o mesmo exemplo, o firewall é configurado através do iptables, que cria uma tabela de regras e informa ao kernel que ele deve ler as novas instruções em uma determinada região da memória onde as regras foram alocadas.

Interação via sysfs

Se você reparar nas imagens acima, utilizei o comando echo para escrever uma modificação no userspace, a ser lido pelo kernel. Ainda sendo um recurso do userspace, somente o usuário root pode escrever dentro desse nível de diretório devido às hierarquias do sistema. Do mesmo modo, para saber qual a política atual em uso, basta utilizar o comando cat nesse mesmo arquivo descritor contido no diretório do sysfs.

Como ajustar o Governor on boot

Uma das opções é colocando em /etc/rc.local. Tão logo o sistema tenha finalizado sua carga, o arquivo /etc/rc.local é lido e executado. Basta escrever o comando da mesma forma que se está interagindo via sysfs.

A outra opção é definir diretamente no kernel, mas para isso você deverá recompilar o kernel. Se dejar fazê-lo, basta seguir esse tutorial.

As opções do .config a serem modificadas são:

Configurações do /boot/config.txt

Esse arquivo tem muitas configurações que são ajustadas durante o boot. Reparou que em minha modificação anterior de powersave para performance a frequência do processador ficou em 900MHz? Bem, esse parâmetro pode ser configurado para mais ou para menos, através do arquivo /boot/config.txt. O parâmetro relacionado à frequência é o arm_freq. A configuração padrão para ele é 900MHz, porém para X, onde ‘X’ depende do Raspberry. Para o Raspberry Pi 1 e 2, não exceda os 900MHz. Para o Raspberry Pi 3, você pode subir até 1.3GHz.

Como fazer overclock na Raspberry Pi

Eu não vou descrever o processo porque além de aumentar a frequência além do limite, ainda precisa fazer um over voltage na CPU. Se quiser ver essa loucura, siga esse link. Se quiser testar (por sua conta e risco), crie uma sessão #overclock e adicione esses parâmetros para a Raspberry Pi 3:

Minha sugestão é que se você quiser aumentar o desempenho, mude apenas arm_freq=1200, que é o limite, mas tenha dissipadores em sua RPi.

vcgencmd

Uma outra forma de ver os parâmetros configurados no sistema é através do comando vcgencmd, com os respectivos parâmetros:

Esse arquivo (config.txt) tem muitas sessões, como video, memória, divisão de memória, câmera, memória da GPU, rede, áudio e uma bela tabela de overclock. Sugiro que visite esse link para ver todos os parâmetros.

Corrente máxima da USB

O padrão da USB é 600mA e na Raspberry Pi 3 você pode configurar a USB para fornecer o dobro dessa corrente – 1.2A, considerando que você tem alimentação o suficiente para suprir o consumo nas portas USB. Essa corrente é para as 4 portas combinadas, ou seja, se você estiver com seu Raspberry Pi fornecendo 600mA e utilizando as 4 portas USB que, somadas ultrapassem os 600mA, certamente haverá diversas instabilidades. Sendo o caso, vem bem a calhar essa configuração. Adicione o parâmetro:

E para 600mA, apenas mude o valor da variável para 0:

Outros parâmetros

Alguns parâmetros são adicionados também se você habilitar por exemplo o SPI ou I²C através do comando raspi-config.  Para finalizar, você pode iniciar o processador em modo ARMv8, passando o parâmetro:

Depois (e antes) você pode verificar a diferença através do comando lscpu ou cat /proc/cpuinfo.

/boot/cmdline.txt

Esse arquivo não tem muitos parâmetros. No meu estou utilizando:

Tudo em uma linha só. eu quebrei as linhas aqui para caber na janela do navegador. Se quiser ler a respeito dos parâmetros, sugiro esse link.

Magic keys

As magic keys do kernel do Debian vem desabilitado por padrão. Se quiser habilitar via sysctl, edite o arquivo /etc/sysctl.conf e descomente o parâmetro kernel.sysrq=1. Se não conhece as magic keys, sugiro que leia esse outro artigo.

Por enquanto é isso, se eu me lembrar de algo novo, atualizo esse artigo ou escrevo outro.

1 Star2 Stars3 Stars4 Stars5 Stars (118 votes, average: 5,00 out of 5)
Loading...

Inscreva-se no nosso newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/

Próximo post a caminho!