Motivation
Da ich ich mich schon seit einiger Zeit mit dem Thema Openembedded Core / Yocto beschäftigen wollte dachte ich mir ich schaue mal wieviel Aufwand so ein STLinux Port wäre. Mir ist vollkommen klar, dass es bereits das TDT, OpenWRT und Seife's Buildsystem gibt. Diese haben für mich jedes seine Vorteile und Nachteile. Bis jetzt hat mir von allen Möglichkeiten das Buildsystem von Seife am Besten gefallen. Das ist klar strukturiert und bietet ein Paketmanagment out of the Box. Für mich bietet Yocto noch ein bisschen mehr als das System von Seife, da es etwas besser dokumentiert ist und eine größere Community dahinter steht. Des Weiteren ist es sobald man das System verstanden hat leichter Pakete hinzuzufügen. Für mich ist das erstellen einer Toolchain welche auch extern zur Entwicklung 3. Party Tools genutzt werden kann einfach Gold wert. Ich finde Layer Konzept mittlerweile echt super praktisch.
Aktueller Zustand
Auf meiner Golden Media 990 bootet das core-image-minimal aus dem Yocto Projekt. Die TDT Treiber werden geladen und die Tools wie fp_control und ustslave sind vorhanden. Die Funktionalität der Treiber ist noch nicht getestet, da ich noch keine GUI übersetzt habe. Es handelt sich ja im Moment auch nur um einen BSP Layer. Yocto verwendet UDEV als Hotplug Dienst aus diesem Grund mussten noch ein paar UDEV Rules für Tools wie ustslave erstellt werden. Das und die Verwendung der modutils sollte es deutlich einfacher machen W-LAN Treiber oder andere USB-Gadget Treiber vom Desktop auf die Boxen zu Portieren. Das habt mich im Falle der Compat-Wireless Treiber für das Pinky TDT fast wahnsinnig gemacht.
Die meiste Zeit hat mich die Toolchain gekostet. Insbesondere die glibc, da Yocto eigentlich die eglibc verwendet. Eine zeitlang wollte ich mit einer externen Toolchain arbeiten, was aber auch irgendwie unschön ist. Dann habe ich mich daran gewagt die glibc einzubauen. Das war dann doch einfacher als gedacht. Ich verwende die glibc direkt aus dem stlinux git. Beim GCC verwende ich den GCC welcher im denzil Branch von Yocto eingesetzt wird. Im Falle der Toolchain kann es ganz gut sein das noch der ein oder andere Patch für das Optimum an Performance fehlt. Mir war ein bootendes System erstmal wichtiger. Ob das Closed Source PTI funktioniert habe ich auch noch nicht getestet, da keine GUI vorhanden.
Lirc funktioniert bei meiner GM 990 zu mindestens mittels "irw" getestet. Die Ansteuerung des Front Panel Prozessors inkl. Erstellung des "/dev/vfd" scheint auch zu funktionieren. Ob alles Devices korrekt von UDEV erstellt wurden kann ich auch erst sagen sobald die erste GUI bzw. irgendwelche Tools wie w_scan etc. gelaufen sind.
Weitere Schritte
Neben dem weiteren Ausbau des BSP-Layers werde ich einen Applikations Layer anfangen. In diesen werden dann die GUIS wie Neutrino, VDR und enigma gepackt. Wobei der Fokus im Moment auf Neutrino liegt. Dawird noch genügend Arbeit auf mich warten bis alle Bibliotheken kompilieren und funktionieren.
Quellen
Das ganze finden interessierte hier bei github unter dem Namen project magpie und das Repository heißt meta-stlinux
- https://github.com/project-magpie/meta-stlinux -
- https://github.com/project-magpie/meta-stlinux/wiki -
Über Patches, Merge Requests, Anregungen und Hinweise freue ich mich immer.
Kommentar