Datum : 31. August 2024
Gegenüberstellung HMI Graphics Frameworks
Sobald ein Display in einem Embedded Device zum Einsatz kommen soll, stellt sich die Frage nach dem passenden Grafik-Framework. Da es die unterschiedlichsten Frameworks gibt, haben wir hier einmal drei relevante Beispiele gegenübergestellt und die Vor- und Nachteile beleuchtet.
LVGL
✅ Lizenzkosten frei und Open Source
✅ Geringe Hardware-Anforderungen, GPU-Nutzung optional
✅ Vorhandene Yocto-Integration
❌ Nicht die gleiche grafische Performance wie Qt oder Flutter
QT
✅ Marktführer
✅ GPU ist für eine gute Performance erforderlich.
✅ Vorhandene Yocto-Integration
✅ Bestehende Benutzerbasis mit Support-Forum
❌ Lizenzkosten, um anständigen LTS-Support zu erhalten
Flutter
✅ Lizenzkosten frei und Open Source
✅ Plattformübergreifende Portabilität (Android/Linux/OSX/...)
✅ Große Benutzerbasis
✅ Nützliche Dokumentation und Beispiele, die von Google unterstützt werden
❌ Benötigt leistungsfähige Hardware (CPU und GPU)
❌ Yocto-Integration von meta-flutter ist derzeit nicht optimal
WebKit VS. Chromium
WPEWebkit ist eine Portierung der Webkit-Browser-Engine, die von Safari verwendet wird und für eingebettetes Linux spezialisiert ist. Cog ist ein leichtgewichtiger Lanucher für WPEWebkit und wird mit WPEWebkit geliefert. Chromium hingegen ist die Open-Source-Version von Google Chrome und fast alle populären Browser wie Edge, Opera und Brave nutzen Chromium als Basis.
WPEWebKit
Den entsprechenden Yocto-Layer von Webkit finden Sie hier: https://github.com/Igalia/meta-webkit
Vorteile von WPEWebKIt
✅ Optimiert für eingebettete Geräte mit schwächerer Hardware
✅ Sehr leichtgewichtig (weniger Speicherbedarf im fertigen Bild)
✅ Gute Integration in Yocto/OpenEmbedded
✅ Kompatibel mit vielen Web-Frameworks (Unterbau von Safari)
Nachteile von WPEWebKit
❌ Nur Kiosk-Modus für Cog ohne GUI zur Navigation verfügbar
❌ Mäßige Nutzung von Multicore
Chromium
Die entsprechende Yocto-Schicht von Chromium finden Sie hier: https://github.com/OSSystems/meta-browser
Vorteile von Chromium
✅ Chromium-basierte Browser dominieren den Browsermarkt
✅ Sehr gute Kompatibilität mit vielen Web-Frameworks
✅ Gute Handhabung von Multicore
Nachteile von Chromium
❌ Ressourcenhungrig:
Das bedeutet zum Beispiel, dass es kaum Optimierungen für eingebettete Geräte gibt. Außerdem dauert es 3 - 5 mal länger als WPEWebkit und benötigt viel RAM. Außerdem benötigt es viel Speicher im fertigen Image.
❌ Die Integration in Yocto/Openembedded verursacht regelmäßig Probleme:
Die Updates erfordern immer sehr neue Versionen der Compiler. Dies erfordert oft Workarounds für die LTS-Versionen von Yocto/OpenEmbedded. Der Layer hinkt oft mit den Updates hinterher, was oft zu Sicherheitslücken führt und es gibt auch regelmäßig Probleme mit der GPU-Beschleunigung nach Updates.