O problema com o firmware original
Os dispositivos AWS DeepRacer são carrinhos autônomos em escala 1/18 movidos por modelos treinados com aprendizado por reforço. Combinados com um ambiente de nuvem para treino e avaliação de redes neurais, eles formam uma plataforma educacional bastante popular para quem quer dar os primeiros passos em aprendizado de máquina (ML).
O problema é que, desde o início, o firmware seguro embarcado nesses dispositivos só permitia inicializar sistemas operacionais assinados pela própria AWS — especificamente versões do Ubuntu 16.04 e 20.04. Ambas já estão fora do ciclo de suporte oficial, o que tornava difícil continuar experimentando e pesquisando com esses hardwares. Sem a possibilidade de atualizar o sistema operacional (SO), os dispositivos iam ficando para trás tecnologicamente.
Para resolver isso sem abandonar o hardware, a AWS desenvolveu e disponibilizou um novo bootloader para desenvolvedores, que permite instalar SOs customizados nesses carrinhos e, assim, prolongar sua vida útil.
A solução: o developer shim
O bootloader lançado pela AWS é baseado no projeto open source shim. Chamado de developer shim, ele oferece acesso de autoatendimento para desenvolvedores que queiram instalar distribuições customizadas ou de terceiros nos dispositivos DeepRacer.
O público-alvo são desenvolvedores familiarizados com processos de boot Linux e gerenciamento de certificados — especialmente membros da comunidade que queiram criar e distribuir suas próprias imagens de instalação para o DeepRacer.
Com esse bootloader, passa a ser possível:
- Instalar distribuições Linux modernas;
- Adicionar drivers de hardware personalizados;
- Executar stacks de software mais atuais;
- Construir projetos educacionais inovadores;
- Desenvolver protótipos de novos algoritmos veiculares.
E caso o desenvolvedor precise retornar à configuração original, o processo é completamente reversível. Basta seguir as instruções de atualização e restauração do veículo para voltar ao estado de fábrica.
Como o developer shim funciona
O funcionamento do bootloader se apoia em três elementos principais:
1. Gerenciamento de certificados por autoatendimento
Quando a verificação de assinatura embutida falha (porque o SO não é assinado pela AWS), o developer shim procura por certificados de desenvolvedor no caminho /EFI/DEVELOPER/certs/ na partição de boot do dispositivo. O desenvolvedor pode gerenciar seus próprios certificados usando ferramentas padrão como OpenSSL e sbsign, mantendo a verificação criptográfica adequada.
2. Avisos visuais claros
Quando certificados de desenvolvedor estão em uso, o sistema sinaliza isso de forma explícita:
- Aviso na tela (via HDMI): informa que o modo desenvolvedor está ativo;
- Indicação por hardware: as luzes do dispositivo piscam “DEVELOPER MODE” em código Morse;
- Atraso no boot: dá tempo suficiente para observar a ativação do modo desenvolvedor.
A ideia é garantir transparência total: sempre que o modo desenvolvedor estiver ativo, o dispositivo deixa isso bem claro.
3. Fluxo de verificação padrão
A solução utiliza ferramentas de assinatura baseadas em certificados já conhecidas do mercado, tornando-a acessível a quem já trabalha com processos de boot seguro. O desenvolvedor fornece seus próprios certificados enquanto mantém a integridade criptográfica da cadeia de boot e do sistema operacional.
Sequência de boot esperada
Ao ligar o dispositivo, o processo segue as seguintes etapas:
- O firmware carrega o developer shim (
BOOTX64.EFI) e transfere a execução para ele; - O shim exibe um aviso na tela (se um monitor HDMI estiver conectado) e pisca “DEVELOPER MODE” em Morse nas luzes do dispositivo — essa etapa leva aproximadamente 21 segundos;
- O bootloader carrega o kernel do sistema operacional;
- O shim verifica a assinatura do kernel contra o repositório de certificados local em
/EFI/DEVELOPER/certs; - Se a assinatura bater, a execução é transferida para o kernel e o boot continua normalmente.
Impacto na comunidade open source
A comunidade open source do AWS DeepRacer, em deepracing.io, já aproveitou o developer shim para criar uma nova distribuição customizada. Ela é construída sobre Ubuntu 24.04 com o stack ROS2 Jazzy e traz uma interface de usuário baseada em Cloudscape.
Pensada para ser uma demonstração prática da abordagem do bootloader de autoatendimento, a distribuição vem pronta para uso, com um processo de instalação muito similar ao da distribuição original da AWS. A comunidade priorizou desempenho nas corridas, removendo pacotes não essenciais — incluindo o sistema gráfico X Window System. Quem precisar da experiência de desktop pode adicioná-la posteriormente. As instruções de instalação estão disponíveis no README do repositório.
A distribuição pode ser encontrada em https://github.com/aws-deepracer-community/deepracer-custom-car.
Como usar o bootloader
O bootloader pode ser utilizado de três formas diferentes, dependendo do nível de controle desejado pelo desenvolvedor:
Opção A: Instalar uma distribuição da comunidade
A forma mais simples de começar é instalando a Distribuição da Comunidade Ubuntu 24.04. Essa opção dispensa a necessidade de instalar o Linux manualmente e reconfigurar os processos de boot do zero.
Opção B: Distribuições de terceiros
Para quem quer mais controle sobre o processo de instalação, é possível usar o developer shim com uma distribuição de terceiros, como o Ubuntu padrão. Após instalar o SO, basta substituir o arquivo BOOTX64.EFI pelo developer shim e adicionar os certificados adequados. Esse passo pode precisar ser feito duas vezes: uma na mídia de instalação e outra após a instalação no dispositivo. O arquivo USAGE.md incluso no pacote do developer shim contém as orientações detalhadas.
Opção C: SO completamente customizado
Para quem está construindo um SO do zero para o DeepRacer, o processo envolve criar um volume de boot no dispositivo, posicionar o developer shim em EFI/BOOT/BOOTX64.EFI, colocar o kernel ou bootloader do SO em EFI/BOOT/GRUBX64.EFI e instalar o certificado público em DEVELOPER/certs. O arquivo USAGE.md do pacote do developer shim também cobre esse cenário.
Integração com a solução self-managed
Com o developer shim e a solução de gerenciamento próprio lançada em 26 de janeiro de 2026, os desenvolvedores passam a ter controle total tanto sobre os ambientes de treinamento em nuvem quanto sobre os dispositivos físicos. É possível customizar o stack de software embarcado, experimentar novos pacotes ROS2 e iterar sobre modelos de corrida com flexibilidade completa de ponta a ponta. Mais detalhes sobre a solução self-managed estão disponíveis na página do DeepRacer on AWS.
Como começar
Para dar os primeiros passos, a AWS recomenda explorar primeiro a Solução DeepRacer on AWS e depois baixar o developer shim em deepracer-developer-shim.zip.
Para criar ou modificar a mídia de boot do novo SO customizado:
- Coloque o arquivo shim
BOOTX64.EFIno diretórioEFI/BOOT; - Armazene o kernel do SO escolhido como
GRUBX64.EFI; - Armazene o certificado público do kernel em
EFI/DEVELOPER/CERTSno formato x509 DER.
Esse processo pode precisar ser repetido tanto na mídia de instalação quanto no próprio dispositivo após a instalação. Para documentação técnica detalhada, solução de problemas e uso avançado, o arquivo USAGE.md dentro do zip é a referência principal.
Alternativamente, é possível baixar diretamente a Distribuição da Comunidade e seguir as instruções para uma instalação limpa com o developer bootloader já incorporado.
Conclusão
Com o novo bootloader, os dispositivos AWS DeepRacer ganham uma segunda vida como ambiente de educação e desenvolvimento em aprendizado de máquina. Agora é possível rodar sistemas operacionais modernos, ferramentas atualizadas e stacks de software contemporâneos — ou até criar sua própria distribuição customizada. Para começar, basta baixar o deepracer-developer-shim.zip, seguir as instruções no arquivo USAGE.md e continuar a jornada de ML com a Solução DeepRacer on AWS.
Fonte
Custom OS installation now available on AWS DeepRacer devices (https://aws.amazon.com/blogs/machine-learning/custom-os-installation-now-available-on-aws-deepracer-devices/)
Leave a Reply