SoCs für Bastelrechner: Freie Allwinner-Treiber per Crowdfunding

Der Embedded-Linux-Entwickler Bootlin finanziert per Crowdfunding die Entwicklung freier Video-Treiber für Allwinner-SoCs. Ziel ist die Unterstützung von Hardware-Video-Decoding im Mainline-Linux-Kernel.

In Pocket speichern vorlesen Druckansicht 33 Kommentare lesen
Zwei Comic-Pinguine vor weißem Hintergrund

(Bild: Bootlin)

Lesezeit: 4 Min.
Von
  • Peter Eisner
Inhaltsverzeichnis

Die in Toulouse beheimatete Firma Bootlin (vormals Free Electrons) wollte eigentlich nur ausprobieren, ob es klappt: Lässt sich die Entwicklung freier Treiber für den Linux-Kernel per Kickstarter finanzieren? Das hängt natürlich von der Nachfrage ab und in diesem Fall war die Antwort eindeutig: Das Finanzierungsziel von 17.600 Euro wurde bereits nach einem Tag erreicht.

Bei dem Embedded-Entwickler kümmern sich dafür zwei Programmierer um die Unterstützung der Video-Wiedergabe auf Allwinner Systems-on-Chip (SoC). Dabei werden Treiber für den offiziellen Linux-Kernel entwickelt. Die Hardware kann damit künftig ihre Videofähigkeiten ausspielen, ohne auf proprietäre Video-Treiber und zugleich ältere Kernel des Chip-Herstellers angewiesen zu sein. Davon profitieren Einplatinenrechner verschiedener Hersteller aus den Reihen Orange Pi, NanoPi, Banana Pi, der von massiven Lieferschwierigkeiten geplagte C.H.I.P., einige Cubieboards, der Pine64, das Tritium-Modell von Libre Computer oder verschiedene Olimex-Boards einschließlich des DIY-Laptops Teres.

Das Hauptziel der Kampagne beinhaltet das Decoding von H.264 und MPEG2 für die älteren Plattformen Allwinner A10, A13, A20, A33, R8 und R16. Das erste – bereits erreichte – Stretch Goal stellt die Unterstützung der neueren Chips H3, H5 und A64 in Aussicht. Nicht enthalten ist der erst 2017 vorgestellte Allwinner H6, der – abseits von Android-basierten Set-Top-Boxen – bisher nur auf zwei Orange-Pi-Boards Verwendung findet. Weitere Ziele sind Decoding von H.265 und Encoding für H.264.

Die Grafik der genannten SoCs lässt sich grob in drei Bereiche einteilen: Um das Decoding und Encoding von Video-Streams kümmert sich die hier im Fokus stehende Video-Engine (VE). Für 3D-Berechnungen mittels OpenGL ES kommen verschiedene Versionen der von ARM lizenzierten Mali-GPUs zum Einsatz. Beide Abteilungen sind für die Ausgabe der Grafik zusätzlich auf einen Bildschirmtreiber angewiesen. Im einfachsten Fall funktioniert das über den Minimalkonsens der Bildausgabe – den Framebuffer. Weniger CPU-lastig und hardwarenäher ist dagegen die Ausgabe per Direct Rendering Manager (DRM). Bootlin plant neben der Arbeit an der Video-Engine auch den direkten Weg auf den Bildschirm per DRM-Treiber zu ebnen.

Die Entwickler wollen das Hauptziel bis Juni 2018 umsetzen und alles Weitere bis Dezember erledigen. Sie fangen nicht bei Null an: das nötige Reverse Engineering der Video-Engine gilt als weitgehend abgeschlossen. Bei Bootlin begann die Arbeit an dem Sunxi-Cedrus genannten Treiber bereits im Jahr 2016. Die Bekanntheit der Entwickler dürfte zur schnellen Finanzierung beigetragen haben. Die bulgarische Open-Hardware-Firma Olimex spendierte gleich zu Beginn 1024 Euro.

Zwar gehört die Unterstützung der OpenGL-Hardware nicht zum Umfang des Projekts. Doch auch hier konnte Bootlin die Situation verbessern. Vor einigen Monaten erhielt die Firma von Allwinner die Erlaubnis zur Veröffentlichung aktualisierter Binärtreiberfür Mali-GPUs in Allwinner-SoCs. Damit ist es immerhin möglich, die Mali-Hardware unter aktuellen Mainline-Kerneln zu benutzen. Zuvor hatte die Community nur Zugriff auf ältere Binärtreiber, die an alte Kernelversionen zwangsgekoppelt sind.

Die quelloffene Alternative zu den ARM-Treibern für Mali-GPUs – der sogenannte Lima-Treiber – verzeichnete in den letzten Jahren keine Fortschritte und galt gemeinhin als tot. Doch gibt es auch hier vorsichtigen Optimismus, seit ein AMD-Mitarbeiter im letzten Jahr das Projekt wiederbelebt hat.

Interessant sind die Bemühungen um freie Video-Treiber zum Beispiel für Projekte wie LibreELEC, das mit einem möglichst schmalen Linux-Unterbau den Medienplayer Kodi auf eine Vielzahl von Plattformen bringen möchte. Die Fortschritte im Bereich der 3D-Unterstützung könnten ihren Weg in Retrogaming-Plattformen wie (das auf LibreELEC aufbauende) Lakka oder die auf Armbian basierende RetroPie-Adaption RetrOrangePi finden. Für die eigenen Bastelambitionen ist es jedoch ratsam, die Entwicklung erst einmal abzuwarten – auch die Entwickler von Bootlin schließen unerwartete Probleme und Verzögerungen nicht aus. (hch)