1 puntos por GN⁺ 2025-01-10 | 1 comentarios | Compartir por WhatsApp
  • Llevar SerenityOS al hardware real

    • La razón por la que decidí involucrarme más en el proyecto SerenityOS era que la base de código solo se ejecutaba en QEMU y no en hardware real. Para solucionarlo, elegí un Chromebook Dell 3100.
  • Por qué elegí el Chromebook

    • Los Chromebook son baratos y fáciles de conseguir, y cuentan con un chip de seguridad Cr50 que permite hacer depuración incluso con el firmware bloqueado. Elegí el modelo Dell 3100 porque era económico y su teclado era mejor que en modelos de mayor gama.
  • Problema con cros_ec

    • El chip Cr50 del Chromebook era útil para depurar, pero en el modelo Dell 3100 no funcionó correctamente. Probé varios hacks de hardware, pero no tuve éxito.
  • Exploración de alternativas

    • Como el chip Cr50 no funcionó, implementé una solución alternativa de depuración usando una placa Raspberry Pi Pico. Esto permitió conectar UART y una flash SPI para habilitar la depuración.
  • Enfoque de software

    • Usé CircuitPython para implementar la conexión con dispositivos USB e implementé el protocolo serprog en CircuitPython para flashear EEPROM.
  • Depuración de SerenityOS

    • Para depurar el kernel de SerenityOS, configuré Alpine Linux y preparé un entorno donde GRUB descarga y prueba automáticamente el kernel.
  • Comprensión de 16550 UART

    • 16550 UART es una interfaz estándar para comunicación serial, presente en la mayoría de las PC. Sin embargo, en el Dell 3100 se implementó usando MMIO, lo que provocó dificultades durante la depuración inicial.
  • Implementación del driver eMMC

    • Para implementar el driver eMMC, entendí la diferencia entre SD y MMC y desarrollé la secuencia de inicialización. Descubrí que la causa era una configuración incorrecta del registro de control de energía y la corregí.
  • Conclusión

    • El proyecto duró seis meses y fue un paso importante para ejecutar SerenityOS en hardware real. Se requiere continuar con más depuración y mejoras.

1 comentarios

 
GN⁺ 2025-01-10
Opinión de Hacker News
  • Adaptar los controladores de NetBSD al kernel personalizado es relativamente fácil. Los desarrolladores de SerenityOS podrían considerar este enfoque. Los controladores de dispositivos son un gran obstáculo para desarrollar un nuevo sistema operativo.
  • En unas condiciones tan desfavorables, fue necesario un nivel de hacking realmente sobresaliente para que esto funcionara. Es realmente impresionante.
  • Me pregunto cómo meterse en el área de controladores y sistemas operativos. Es muy complejo y no sé por dónde empezar.
  • Me gusta el concepto de SerenityOS y del navegador Ladybird, y me alegra el avance de este proyecto.
  • Si necesitas ayuda para hackear un Chromebook, puedes pedirla en la lista de correo chromium-os-dev. Te podrían ayudar con el funcionamiento de CCD.
  • El bootloader Depthcharge admite el arranque por red mediante TFTP. Hay que compilarlo directamente y flashearlo a SPI. Es una función útil al iterar sobre el kernel.
  • Me hubiera gustado no perder el título "Serenity Now".
  • Pensé que SerenityOS se ejecutaba en hardware real. Me pregunto si todavía solo funciona dentro de QEMU.
  • Se dieron ejemplos de código complejos. Es justo el tipo de código que esperaba.
  • Me pidieron mencionar en el resumen que el sitio sdomi.pl enaltece a Microsoft Windows y muestra aversión a Linux. Me pregunto si eso funciona de verdad o es solo una broma.