Programar Raspberry “nativamente remotamente”

Em algum momento da história moderna escrevi sobre métodos de compilação. Nativa, quando localmente para a mesma arquitetura; cruzada, quando para outra plataforma; híbrido, quando nativamente em plataforma virtualizada; canadian, quando gerar na máquina 1, binários para a máquina 2, cross-compilando para a máquina 3. Nesse artigo vou praticamente “sugerir” uma nova forma, que é programar Raspberry “nativamente remotamente”.

Ponto negativo em compilar nativamente para Raspberry

Programar nativamente no Raspberry tem alguns pontos ruins; capacidade de processamento certamente é uma delas, mas tem também a questão do dispositivo de blocos, que nesse caso é primariamente o SD. Usar um HD externo pode resolver essa última parte do problema, claro. Mas tem mais um ponto a considerar; se quiser utilizar o sistema para fazer experimentos, pode ser que em algum momento seja forçado a refazer a instalação. Nesse caso, já sabe que terá de separar algumas horas para preparar o SD e, posteriormente, preparar o ambiente de desenvolvimento.

A questão de limite de armazenamento para desenvolver pode ser parcialmente resolvida utilizando um NFS, que por fim permitirá armazenar os binários resultantes fora do SD.

O que seria então programar o Raspberry “nativamente remotamente”?

Claro que isso é uma antítese, mas ironicamente faz sentido. Durante a madrugada anterior a esse artigo, terminei de implementar o boot por rede do sistema do Raspberry. Brincando com o sistema percebi que, como o sistema raiz foi carregado por NFS, qualquer modificação no sistema iria para a mídia de armazenamento remota. Ótimo! Remotamente o sistema está em um SSD com um monte de gigabytes de espaço livre, de modo que economiza-se até com cartão SD, uma vez que usamos comumente cartões de 16GB para economizar. Até então, ganhamos com velocidade, espaço para desenvolvimento e a cereja do bolo: um ambiente de fácil restauração em caso de problemas ocasionados por testes. Nada de horas perdidas preparando tudo de novo; basta ter uma cópia extra do sistema em rede e substituí-lo em caso de pane!

Outros artigos sobre o assunto

Vou aproveitar e deixar mais algumas referências, que são a cross-compilação para Raspberry usando codeblocks, ambiente de compilação virtualizada com QEmu, outra virtualização com QEmu e uma cross-compilação para Onion Omega (MIPS). Tem mais uma série de artigos só sobre sistemas embarcados, mas esses são os mais diretos com o tema.

Sugiro que acompanhe o blog, pois o artigo de boot por rede já está pronto e será publicado a qualquer momento!

Onde comprar Raspberry?

Se ainda não tem um ou precisa de mais, ficam como sugestões os parceiros do blog:

Saravati – com diversas opções de Raspberry.

CurtoCircuito – para Raspberry Pi 3.

MASUGUX – Também com diversas opções de Raspberry.

Espero que tenha gostado do artigo e até a próxima!

 

Revisão: Ricardo Amaral de Andrade

Marcações:cross-compilenfssd