-
Levando o SerenityOS para hardware real
- O motivo pelo qual o projeto SerenityOS foi levado mais a sério foi que a base de código rodava apenas no QEMU e não em hardware real. Para corrigir isso, foi escolhido um Chromebook Dell 3100.
-
Motivo da escolha do Chromebook
- O Chromebook é barato e fácil de encontrar, e o chip de segurança Cr50 permite depuração mesmo com a máquina bloqueada. O motivo de escolher o modelo Dell 3100 foi o preço baixo e, além disso, um teclado melhor do que o dos modelos mais caros.
-
Problema com o cros_ec
- O chip Cr50 do Chromebook é útil para depuração, mas no modelo Dell 3100 não funcionou corretamente. Algumas tentativas de hardware hacking foram feitas, mas sem sucesso.
-
Busca por alternativa
- Como o chip Cr50 não funcionou, foi implementada uma solução de depuração alternativa com a placa Raspberry Pi Pico. Isso permitiu conectar UART e SPI flash para tornar a depuração viável.
-
Lado de software
- Foi implementada a conexão com dispositivos USB usando CircuitPython e o protocolo serprog foi implementado em CircuitPython para gravação de EEPROM.
-
Depuração do SerenityOS
- Para depurar o kernel do SerenityOS, foi configurado o Alpine Linux e criado um ambiente que faz o download e testa o kernel automaticamente via GRUB.
-
Entendendo o 16550 UART
- O 16550 UART é uma interface padrão para comunicação serial e está presente na maioria dos PCs. No entanto, no Dell 3100 foi implementado usando MMIO, o que trouxe dificuldades na depuração inicial.
-
Implementação do driver eMMC
- Para implementar o driver eMMC, foi preciso entender as diferenças entre SD e MMC e implementar a sequência de inicialização. Descobriu-se e corrigiu-se que a configuração incorreta ficava no registrador de controle de energia.
-
Conclusão
- O projeto durou seis meses e foi uma etapa importante para rodar o SerenityOS em hardware real. Ainda há necessidade de mais depuração e melhorias no futuro.
1 comentários
Opiniões do Hacker News