-
SerenityOS auf echte Hardware bringen
- Der Grund, mich tiefer in das SerenityOS-Projekt einzubringen, war, dass die Codebasis nur in QEMU lief und auf echter Hardware nicht ausführbar war. Um das zu beheben, habe ich ein Dell 3100 Chromebook gewählt.
-
Warum ein Chromebook gewählt wurde
- Chromebooks sind günstig und leicht zu bekommen, und der Cr50-Sicherheitschip ermöglicht Debugging auch im geschlossenen Zustand. Das Dell 3100-Modell wurde wegen seines niedrigen Preises gewählt, und die Tastatur war besser als bei einem höherwertigen Modell.
-
Das cros_ec-Problem
- Der Cr50-Chip des Chromebooks ist zwar zum Debuggen nützlich, funktionierte im Dell 3100-Modell aber nicht korrekt. Mehrere Hardware-Hacks wurden versucht, doch ohne Erfolg.
-
Suche nach Alternativen
- Weil der Cr50-Chip nicht funktionierte, wurde mit einem Raspberry Pi Pico-Board eine alternative Debugging-Lösung aufgebaut. Dadurch konnte das Debuggen über UART und SPI Flash ermöglicht werden.
-
Software-seitig
- Mit CircuitPython wurde die Anbindung an USB-Geräte umgesetzt, und das serprog-Protokoll für das Flashen von EEPROM wurde in CircuitPython implementiert.
-
SerenityOS-Debugging
- Zur Fehlersuche im SerenityOS-Kernel wurde Alpine Linux eingerichtet und eine Umgebung geschaffen, die den Kernel über GRUB automatisch herunterlädt und testet.
-
Verständnis von 16550 UART
- 16550 UART ist eine Standard-Schnittstelle für serielle Kommunikation, die auf den meisten PCs vorhanden ist. Beim Dell 3100 war er jedoch als MMIO implementiert, was zu Schwierigkeiten beim anfänglichen Debugging führte.
-
Implementierung des eMMC-Treibers
- Für die Implementierung des eMMC-Treibers wurden die Unterschiede zwischen SD und MMC verstanden und die Initialisierungssequenz umgesetzt. Es stellte sich heraus, dass eine falsche Konfiguration des Power-Control-Registers Ursache war, und diese wurde behoben.
-
Fazit
- Das Projekt lief über sechs Monate und war ein wichtiger Schritt, um SerenityOS auf echter Hardware auszuführen. Weitere Debugging- und Verbesserungsarbeiten sind notwendig.
1 Kommentare
Hacker News Kommentar