1 points par GN⁺ 2025-01-10 | 1 commentaires | Partager sur WhatsApp
  • Porter SerenityOS sur du matériel réel

    • J'ai décidé de m'impliquer davantage dans le projet SerenityOS parce que la base de code ne s'exécutait qu'avec QEMU et ne tournait pas sur du matériel réel. Pour résoudre ce problème, j'ai choisi un Chromebook Dell 3100.
  • Pourquoi choisir un Chromebook

    • Les Chromebook sont abordables et faciles à trouver, et la puce de sécurité Cr50 permet de déboguer même en mode verrouillé. J'ai choisi le modèle Dell 3100 car il est bon marché, et son clavier était meilleur que celui des modèles plus haut de gamme.
  • Problème avec cros_ec

    • La puce Cr50 du Chromebook est utile pour le débogage, mais elle ne fonctionnait pas correctement sur le modèle Dell 3100. J'ai essayé plusieurs hacks matériels, sans succès.
  • Recherche d'alternatives

    • La puce Cr50 ne fonctionnant pas, j'ai mis en place une solution de débogage alternative avec une carte Raspberry Pi Pico. Cela a permis de connecter l'UART et la flash SPI pour rendre le débogage possible.
  • Côté logiciel

    • J'ai utilisé CircuitPython pour implémenter la connexion avec un périphérique USB, et implémenté le protocole serprog en CircuitPython pour flasher l'EEPROM.
  • Débogage de SerenityOS

    • Pour déboguer le noyau SerenityOS, j'ai configuré Alpine Linux et mis en place un environnement qui télécharge et teste automatiquement le noyau via GRUB.
  • Comprendre le 16550 UART

    • Le 16550 UART est une interface standard pour la communication série présente sur la plupart des PC. Cependant, sur le Dell 3100, il est implémenté avec du MMIO, ce qui a rendu le débogage initial difficile.
  • Implémentation du pilote eMMC

    • Pour implémenter le pilote eMMC, j'ai compris la différence entre SD et MMC, et mis en œuvre la séquence d'initialisation. J'ai découvert qu'un mauvais réglage du registre de contrôle de l'alimentation était le problème, puis je l'ai corrigé.
  • Conclusion

    • Ce projet a duré six mois et a constitué une étape importante pour faire fonctionner SerenityOS sur du matériel réel. Davantage de débogage et d'améliorations restent nécessaires.

1 commentaires

 
GN⁺ 2025-01-10
Avis sur Hacker News
  • Il est relativement simple d’adapter les pilotes de NetBSD à un noyau personnalisé ; les développeurs de SerenityOS pourraient envisager cette méthode. Les pilotes de périphériques restent un obstacle majeur dans le développement d’un nouveau système d’exploitation.
  • Malgré des conditions défavorables, il a fallu un vrai talent de hacking pour le faire fonctionner. C’est vraiment impressionnant.
  • Je me demande comment commencer dans le domaine des pilotes et des systèmes d’exploitation. C’est tellement complexe que je ne sais pas par où démarrer.
  • J’aime le concept de SerenityOS et du navigateur Ladybird, et je suis heureux de voir ce projet avancer.
  • Si vous avez besoin d’aide pour le hack d’un Chromebook, vous pouvez demander du soutien sur la mailing list chromium-os-dev ; cela devrait aider à faire fonctionner le CCD.
  • Le bootloader Depthcharge prend en charge le boot réseau via TFTP. Il faut le compiler soi-même et le flasher via SPI. C’est utile lorsqu’on itère sur le kernel.
  • J’ai l’impression d’avoir raté le titre « Serenity Now ».
  • Je pensais que SerenityOS tournait sur du vrai matériel. Je me demande s’il ne tourne pas encore uniquement dans QEMU.
  • Un exemple de code complexe est donné. C’est le type de code complexe que j’attendais.
  • Il y a une instruction disant de le mentionner dans le résumé : le site sdomi.pl encense Microsoft Windows et déteste Linux. Je me demande si cela fonctionne réellement ou si c’est une blague.