Otimização extrema do boot do Pi
Motivação
- O projeto SolarCamPi tem como objetivo construir uma câmera WiFi solar off-grid.
- Ele usa um Raspberry Pi Zero 2 W para inicializar no Linux, tirar fotos, configurar a conexão WiFi e depois desligar, repetindo esse ciclo.
- Em um dispositivo solar, energia é um recurso precioso, então reduzir o tempo de boot é importante para minimizar o consumo.
Configuração de hardware
- Ao otimizar o processo de boot embarcado, um tempo de ciclo curto é importante.
- Há várias ferramentas úteis:
- Nordic Power Profiler Kit II
- USB-SD-Mux
- Conversor USB-UART
Configuração de medição / teste
- Na imagem Debian 12 (bookworm) arm64 Lite, o arquivo /boot/firmware/cmdline.txt foi modificado para incluir
init=/init.sh.
- O script init.sh alterna o GPIO4 e retoma o boot normal.
Redução de corrente
- Desativar o HDMI: reduz o consumo de corrente de 136.7mA para 122.6mA.
- Desativar o LED de atividade: economiza 2mA.
- Desativar o LED da câmera: evita reflexos e economiza corrente.
- Ajuste do modo turbo: desativar o modo turbo resulta em uso de 1.58As.
Redução de tempo
- Desativar a sondagem de HDMI durante o boot: fixar as informações EDID manualmente economiza tempo.
- Desativar a sondagem de HAT, PoE e LCD: reduz o tempo de espera por respostas I2C.
- Desativar a sondagem de câmera e display: carrega manualmente o sensor IMX477.
- Desativar o initramfs: reduz o tempo de boot de 5.38s para 4.47s.
Carregamento do kernel
- Carregar o kernel é uma das tarefas mais lentas.
- Overclock no núcleo do processador GPU: reduz o tempo de carregamento do kernel em 20%.
- Migração do sistema para uma distribuição Buildroot personalizada: reduz o tamanho do kernel e remove recursos desnecessários.
Resultado final
- É possível inicializar um programa de espaço de usuário Linux em menos de 3.5 segundos.
- Consumo total de energia: 0.364 As * 5.0 V = 1.82 Ws.
- Redução de 5 vezes no consumo de energia em comparação com o Debian padrão.
Resumo do GN⁺
- Este artigo aborda como otimizar o tempo de boot do Raspberry Pi para reduzir o consumo de energia.
- É muito útil em ambientes com energia limitada, como dispositivos alimentados por energia solar.
- Projetos com funcionalidades semelhantes incluem OpenWRT e Tiny Core Linux.
- Apresenta várias formas de reduzir o tempo de boot, sendo útil para quem se interessa por otimização de sistemas embarcados.
1 comentários
Comentários no Hacker News
A questão de energia da linha rpi é um ponto fraco. Há expectativa de que o novo pico 2 melhore isso
Fiquei curioso sobre o motivo de o kernel customizado ter saído tão tarde
Fico em dúvida se desativar o turbo da CPU é uma má escolha para reduzir o consumo de energia
Fico me perguntando se seria possível usar outros cores e se é mesmo necessário Linux para tirar fotos e enviá-las para a nuvem
Recomendo dois bons artigos sobre como reduzir o tempo de boot do Pi
Se você gosta do ecossistema do Rasp Pi, vale a pena experimentar o Pi Pico W
O tempo de boot de distribuições Linux costuma ser lento em geral
O ideal é manter o estado de boot e usar um microcontrolador de baixo consumo
Achei que o Circle poderia inicializar mais rápido que o kernel, mas ele não oferece suporte à câmera MIPI
Eu queria fazer uma câmera de trilha inteligente usando Pi