Introdução

A atualização remota de firmware e estabelecimento de uma infraestrutura confiável para distribuição dos binários de firmware são pontos bastante críticos em quaisquer soluções que envolvam sistemas embarcados.
Dada a importância destes pontos, eu desenvolvi um projeto open-source, utilizando Docker, no qual consiste em um servidor de firmwares leve, rápido de subir e que garante maior produtividade no desenvolvimento de soluções em software embarcado, facilitando a distribuição de firmwares visionados.

Contexto do projeto

Recentemente, fiz e disponibilizei gratuitamente no meu Github um projeto open-source chamado “Servidor de Firmware com Docker”. Esse projeto foi criado para facilitar o teste de atualizações remotas de firmware em microcontroladores e SoCs.

Ele fornece um servidor de arquivos simples, com propósito de APRENDIZADO e TESTES, construído com Docker. O container do servidor faz uso do Ubuntu 20.04 LTS, Apache e PHP, onde é possível organizar e disponibilizar diversas versões de firmware para diferentes projetos e dispositivos.

O servidor ajuda a estruturar firmwares de forma hierárquica, permitindo que desenvolvedores simulem cenários de atualização remota com facilidade. A hierarquia utilizada é:

  • Podem existir N diferentes projetos
  • Cada projeto pode possuir N diferentes microcontroladores
  • Cada microcontrolador pode possuir N versões diferentes de firmware
  • Cada versão de firmware possui 1 arquivo

Dessa forma, é possível rodar esse servidor na forma de um container, garantindo seu funcionamento independente da máquina host (ou seja, sem aquele papo de “na minha máquina funciona”, vai funcionar em qualquer máquina).

Tenha acesso ao projeto

Confira o projeto no meu repositório no GitHub, através do link: https://github.com/phfbertoleti/servidor_fw_docker

Leia mais sobre Docker

Docker é uma ferramenta muito interessante para transformar e modularizar soluções em containers, permitindo

  • Isolação completa do projeto
  • Fácil gerenciamento de dependências
  • Garantia do mesmo ambiente de desenvolvimento em todos os computadores
  • Fácil distribuição do projeto

Principalmente devido a estas características, Docker vem ganhando um grande espaço recentemente no mundo dos sistemas embarcados. Portanto, se você é ou almeja ser um profissional em sistemas embarcados, é importante conhecer e se familiarizar com Docker.

Para isso, recomendo fortemente a leitura do livro Docker Deep Dive: Zero to Docker in a single book, o qual explora desde o básico até o avançado do Docker. Quer saber mais sobre o livro? Clique aqui.

Leia mais


Pedro Bertoleti

Informações completas em: http://pedrobertoleti.com.br/index.php/sobre/