Linux Buildsysteme im Vergleich Warum Yocto nicht alle Probleme löst Jan Altenberg <[email protected]> Linutronix GmbH Jan Altenberg <[email protected]> Linutronix GmbH 1 Agenda 1) Embedded Linux challenges Eine kurze Anforderungsliste für industrielle Linuxprojekte Jan Altenberg <[email protected]> Linutronix GmbH 2 Agenda 1) Embedded Linux challenges Eine kurze Anforderungsliste für industrielle Linuxprojekte 2) Welche Requirements deckt Yocto ab? und welcher Zusatzaufwand ist notwendig Jan Altenberg <[email protected]> Linutronix GmbH 2 Agenda 1) Embedded Linux challenges Eine kurze Anforderungsliste für industrielle Linuxprojekte 2) Welche Requirements deckt Yocto ab? und welcher Zusatzaufwand ist notwendig 3) Die häufigsten Überraschungen mit YOCTO Jan Altenberg <[email protected]> Linutronix GmbH 2 Agenda 1) Embedded Linux challenges Eine kurze Anforderungsliste für industrielle Linuxprojekte 2) Welche Requirements deckt Yocto ab? und welcher Zusatzaufwand ist notwendig 3) Die häufigsten Überraschungen mit YOCTO 4) Debian: DIE Alternative! Jan Altenberg <[email protected]> Linutronix GmbH 2 1) Embedded Linux challenges Jan Altenberg <[email protected]> Linutronix GmbH 3 Grundaufgaben Erstellen einer Distribution: Linux Kernel GNU Tools Jan Altenberg <[email protected]> Linutronix GmbH 4 Übersicht DOCH: Viele weitere Aspekte müssen betrachtet werden! Systemboot Konzept Update Konzept Security Konzept Applikationsentwicklung Continious integration Release builds Versionierung Lizenzmanagement!!! Jan Altenberg <[email protected]> Linutronix GmbH 5 Linux Kernel Vendor Modifikationen Projektspezifische Modifikationen Real-time support Kernelkonfiguration / Devicetree Jan Altenberg <[email protected]> Linutronix GmbH 6 Systemboot Konzept Fastboot Secureboot Rescueboot Initialisierung von SW Komponenten Jan Altenberg <[email protected]> Linutronix GmbH 7 Security Monitoring von Security Mailinglisten Beurteilung ob das Produkt betroffen ist Generierung von Updates Jan Altenberg <[email protected]> Linutronix GmbH 8 Bugtracking Gibt es bekannte Bugs in meinem Produkt? Im Entwicklungsprozess UND während der Produktlebenszeit Jan Altenberg <[email protected]> Linutronix GmbH 9 Applikationsentwicklung Compiler / Toolchain Libraries und Frameworks IDE Integration Debugging Testing Jan Altenberg <[email protected]> Linutronix GmbH 10 Continious integration Nightly builds Automatisierte Tests Jan Altenberg <[email protected]> Linutronix GmbH 11 Release builds Deployable Image und / oder Update Files Sowohl für Open-Source Komponenten, als auch für die eigene Applikation Jan Altenberg <[email protected]> Linutronix GmbH 12 Versionierung und Lizenzmanagement Welche Open-Source Komponenten gehören zu einem Release? Unter welcher Lizenz stehen diese? Lizenzverpflichtungen! Jan Altenberg <[email protected]> Linutronix GmbH 13 2) Welche Requirements deckt Yocto ab? Welche zusätzlichen Aufwände sind notwendig? Jan Altenberg <[email protected]> Linutronix GmbH 14 Was ist YOCTO? Ein Ecosystem (Kein einzelnes Open-Source Projekt!) Eine Sammlung von Embedded Linux Projekten und Tooling Eine Möglichkeit für die Industrie, um BSPs bereitzustellen KEINE Embedded Linux Distribution Jan Altenberg <[email protected]> Linutronix GmbH 15 Bekannte Yocto Projekte poky build-engine und Beispiel BSPs (open-embedded) toaster poky web-frontend ADT Ein Mechanismus um Toolchains zu generieren Eclipse Plugin Einfache Anbindung der Toolchains an Eclipse Jan Altenberg <[email protected]> Linutronix GmbH 16 Ein Yocto basiertes BSP.. ..ist ein zusätzlicher Layer für ein Poky basiertes BSP Ein BSP Layer beeinhaltet üblicherweise: Vendor Kernel / Kernel Patches Bootloader Rezepte für Grafiktreiber Gstreamer DSP Integration … Eine deutliche Verbesserung im Vergleich zu anderen Ansätzen in der Vergangenheit. Yocto bietet für die Industrie einen einheitlichen Weg, um BSPs zu publizieren! Jan Altenberg <[email protected]> Linutronix GmbH 17 Was kann mit Zusatzaufwand getan werden?? Integration eigener Applikationen ins BSP Hardware Evaluierung Remote-debugging Image und Toolchain Generierung Versionierung und Updates mittels Paketen Jan Altenberg <[email protected]> Linutronix GmbH 18 Was benötigt weiteren Aufwand?? Softwaretests auf verschiedenen Plattformen Integration zusätzlicher Open-Source Software Security and Bugtracking Bootkonzept Kernel maintenance Jan Altenberg <[email protected]> Linutronix GmbH 19 Softwaretests auf verschiedenen HW Plattformen Aktuelles poky release 1.8 meta-ti release für poky 1.6 meta-intel für poky 1.7 meta-fsl-[arm|ppc] für poky 1.8 meta-xilinx für poky 1.8 Also: Yocto ist nicht zwingend gleich Yocto! Jan Altenberg <[email protected]> Linutronix GmbH 20 Integration zusätzlicher Open-Source Software Verifizierung der Kompatibilität mit Yocto Release Viele fertige Rezepte sind verfügbar z.B. meta-ivi für poky 1.7 Layer Versionen können gemischt werden, dies ist allerdings mit Aufwand verbunden Jan Altenberg <[email protected]> Linutronix GmbH 21 Security Since the Yocto Project is intended to be flexible and meet the needs of many applications, we leave policy-making decisions around security to our end users. Source: https://wiki.yoctoproject.org/wiki/Security Jan Altenberg <[email protected]> Linutronix GmbH 22 Security Since the Yocto Project is intended to be flexible and meet the needs of many applications, we leave policy-making decisions around security to our end users. Source: https://wiki.yoctoproject.org/wiki/Security Debian takes security very seriously. We handle all security problems brought to our attention [...] Many advisories [...] are published the same day a vulnerability is made public Source: https://www.debian.org/security/index.en.html Jan Altenberg <[email protected]> Linutronix GmbH 22 Security YOCTO versucht: SW Versionen up-to-date zu halten Kritische Sicherheitslücken zu beheben Jan Altenberg <[email protected]> Linutronix GmbH 23 Jan Altenberg <[email protected]> Linutronix GmbH 24 Jan Altenberg <[email protected]> Linutronix GmbH 25 Dies impliziert: Ernsthaftes Security Tracking muß vom Yocto Anwender durchgeführt werden! Jan Altenberg <[email protected]> Linutronix GmbH 26 Bugtracking Der YOCTO Bugzilla deckt hauptsächlich das Buildsystem ab! Bugtracking für die Softwarekomponenten des BSP Images liegt beim Anwender! Jan Altenberg <[email protected]> Linutronix GmbH 27 Bootkonzept Muss spezifiziert und implementiert werden Angepaßte Bootloader können in Yocto integriert werden Jan Altenberg <[email protected]> Linutronix GmbH 28 Kernel maintenance Kernel Know-How notwendig Kernel Modifikationen können in Yocto integriert werden Jan Altenberg <[email protected]> Linutronix GmbH 29 3) Die häufigsten Überraschungen mit Yocto Jan Altenberg <[email protected]> Linutronix GmbH 30 Komplexität Viele Konfigurationsfiles und Optionen Kontextabhängiges Überladen und Patchen Jan Altenberg <[email protected]> Linutronix GmbH 31 Kompatibilität Alle Layer müssen für das passende poky Release verfügbar sein Ansonsten ist zusätzlicher Aufwand nötig Jan Altenberg <[email protected]> Linutronix GmbH 32 YOCTO basiertes BSP + Application != Linux-basiertes Produkt Maintenance nicht unterschätzen! Maintenance Security und Bug-tracking Der Anwender ist für die eigene Distribution verantwortlich Vergessen Sie nicht: An der Debian Distribution arbeiten 2000 Entwickler. Der Yocto Anwender ist für diese Maintenance selbst verantwortlich! Jan Altenberg <[email protected]> Linutronix GmbH 33 4) Debian: DIE Alternative! Jan Altenberg <[email protected]> Linutronix GmbH 34 Was ist Debian? Eine Linux Distribution (existiert seit über 20 Jahren!) Verfügbar für viele CPU Architekturen: x86, ARM, PowerPC, MIPS Debian basiert auf vorkompilierten Binärpaketen Jan Altenberg <[email protected]> Linutronix GmbH 35 Debian Paketverwaltung Einfaches Lizenzmanagement Kann für Updates genutzt werden Einfache Anpassung Einfaches Generieren eigener Binärpakete Jan Altenberg <[email protected]> Linutronix GmbH 36 Vorteile von Debian Langlebigkeit Paketauswahl (viele Tausende von Paketen) Kein Crosskompilieren Debian führt sehr umfangreiches Bug- und Securitytracking durch! Einfaches und reproduzierbares Bauen mit dem ELBE Buildsystem: http://elbe-rfs.org Jan Altenberg <[email protected]> Linutronix GmbH 37 Fazit Yocto hat ganz wesentlich zur Standardisierung von Embedded Linux Buildsystemen beigetragen! Yocto ist KEINE Embedded Linux Distribution Yocto wird in der Regel in Kombination mit den Layern der einzelnen Hersteller verwendet Debian als flexible Distribution ist eine Alternative Debian bietet bereits Lösungen für Problemstellungen wie Bugund Securitytracking Jan Altenberg <[email protected]> Linutronix GmbH 38 Vielen Dank für Ihre Aufmerksamkeit Jan Altenberg <[email protected]> Linutronix GmbH Auf dem Berg 3 88690 Uhldingen Germany Jan Altenberg <[email protected]> Linutronix GmbH 39
© Copyright 2024 ExpyDoc