1 pontos por GN⁺ 2025-01-10 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2025-01-10
Opiniões do Hacker News
  • Adaptar drivers do NetBSD para um kernel customizado é relativamente fácil. Os desenvolvedores do SerenityOS podem considerar esse caminho. Drivers de dispositivo são um grande obstáculo no desenvolvimento de um novo sistema operacional.
  • Foi necessário um nível de hacking bastante avançado para fazê-lo funcionar em condições tão desfavoráveis. Bem impressionante.
  • Fico curioso sobre como entrar na área de drivers e sistemas operacionais; é tão complexo que não sei por onde começar.
  • Gosto do conceito do SerenityOS e do navegador Ladybird, e fico feliz em ver o projeto avançar.
  • Se você precisar de ajuda para hackear um Chromebook, pode pedir no mailing list chromium-os-dev. Acho que eles podem ajudar a fazer o CCD funcionar.
  • O bootloader Depthcharge suporta inicialização via rede usando TFTP. É preciso compilar ele manualmente e fazer flash no SPI. Isso é útil para iterar no kernel.
  • Foi uma pena não ter reparado no título "Serenity Now".
  • Pensei que o SerenityOS já estivesse rodando em hardware real. Ainda fico curioso para saber se ele só funciona no QEMU.
  • Foi dado um exemplo de código complexo. Era esse tipo de complexidade que eu esperava.
  • Foi mencionado para incluir no resumo que o site sdomi.pl elogia muito o Microsoft Windows e odeia o Linux. Fiquei curioso para saber se isso é algo real ou só uma piada.