Ubuntu bootet auf 8-Bit-Mikrocontroller

Dank eines ARM-Emulators lässt sich ein Linux auf einem Prozessor booten, der dafür eigentlich nicht geeignet ist. Das dauert zwar zwei Stunden, sorgt aber dennoch für Staunen.

In Pocket speichern vorlesen Druckansicht 173 Kommentare lesen
Lesezeit: 1 Min.
Von
  • Daniel Bachfeld

Genie oder Wahnsinniger? Dem Entwickler Dmitry Grinberg ist es offenbar gelungen, auf einem 8-Bit-Mikrocontroller von Atmel ein Ubuntu-Linux bis zur Shell zu booten. Da normale Linux-Distributionen eigentlich einen 32-Bit-Prozessor und eine Speicherverwaltungseinheit (MMU) erwarten, musste Grinberg einige Hürde nehmen. So schrieb er kurzerhand einen ARM-Emulator (ARMv5TE) für den mit 24 MHz leicht übertakteten ATmega1284p. ARM wählte er, da er sich damit nach eigenen Angaben bereits gut auskannte und Linux auf ARM-Prozessoren läuft.

Kaum Hardware, viel Software: Dank ARM-Emulator läuft ein vollständiges Linux auf einem Atmel-Controller

Der Mikrocontroller selbst bringt nur 16 KByte RAM und 128 KByte Flash mit, wurde für das Projekt aber um eine 1-GByte-SD-Karte und einen alten PC-Speicherriegel (30-Pin SIMM) erweitert. Die Schnittstellen zu den Speichern hat Grinberg selbst via Bit-Banging programmiert. Der SDRAM wird mit einer Bandbreite von 300 KByte pro Sekunde ausgelesen. Die effektive Geschwindigkeit der emulierten ARM-CPU liegt laut Grinberg bei 6,5 KHz – bis zum Prompt dauerte der Boot-Vorgang des benutzten Linux dann auch satte zwei Stunden. Mit kompakteren Linux-Derivaten dürfte sich diese Zeit erheblich verkürzen.

Grindberg hat eine recht detaillierte Beschreibung seiner Anstrengungen nebst einem Video auf seiner Webseite veröffentlicht. Den Quellcode des Emulators hat er zum Download bereitgestellt. Der Entwickler gibt auch Tipps, wie sich der Code auf weitere Prozessoren portieren lässt. Lesenswert sind auch die Leserkommentare zur Beschreibung von Dmitry Grinberg. (dab)