Linux Buildsysteme im Vergleich

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