inhoud - nederlandse linux gebruikers groep...2015/05/16 · gereedschap ‘bitbake’ van de bouw...
TRANSCRIPT
![Page 1: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/1.jpg)
1
![Page 2: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/2.jpg)
Inhoud
Geschiedenis / evolutie van OpenEmbedded en Yocto
Overzicht van de architectuur en concepten
Persoonlijke ervaring
2
![Page 3: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/3.jpg)
Introductie
Leon Woestenberg
Embedded systeem architect
RTOS, Linux, hardware, FPGA
3
![Page 4: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/4.jpg)
Stukje geschiedenis
2002: Chris Larson vind de ROM van de Zaurus slecht.
Hij maakt bouwgereedschap voor een open Linux distributie.
4
![Page 5: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/5.jpg)
Stukje geschiedenis
2002: OpenZaurus project wordt voor andere apparaten gebruikt.
5
![Page 6: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/6.jpg)
Stukje geschiedenis
2003: Holger Schurig, Michael Lauer en Chris Larson bedenken een nieuw build systeem: OpenEmbedded.
6
![Page 7: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/7.jpg)
Stukje geschiedenis
2004: OpenEmbedded splitst het bouw gereedschap ‘Bitbake’ van de bouw instructies.
7
![Page 8: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/8.jpg)
Stukje geschiedenis
2005: OpenEmbedded is volwassen. (tenminste, dat vond ik toen).
8
![Page 9: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/9.jpg)
Doelen
Build-from-scratch
(versus bestaande distributie installeren en aanpassen.)
9
![Page 10: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/10.jpg)
Doelen
Cross-compileren
(versus compileren op de ‘target’ machine of architectuur zelf.)
10
![Page 11: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/11.jpg)
Doelen
Deterministisch en correct
Geen vervuiling uit host Linux
(lastig bij cross-compileren).
11
![Page 12: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/12.jpg)
Doelen
Deterministisch en correct
Geen vervuiling uit host Linux
(lastig bij cross-compileren).
12
![Page 13: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/13.jpg)
Taken
13
![Page 14: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/14.jpg)
Software bouw taken
• fetch
• unpack
• patch
• configure
• compile
• install
• package
14
‘Tasks’;
uitgevoerddoor ‘BitBake’
}
![Page 15: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/15.jpg)
Objectgeörienteerd
• basis implementatie voor elke taak (basis klasse)
• taken kunnen worden uitgebreid (prepend/append) of vervangen (override)
• eigen taken kunnen worden ingevoegd
15
![Page 16: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/16.jpg)
Objectgeörienteerd
implementaties voor gangbare standaarden:
• archiefformaten
• versiebeheersystemen
• make systemen
• distributieverpakkingen (packages)
maar zelf een klasse toevoegen kan ook.
16
![Page 17: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/17.jpg)
Recepten
17
![Page 18: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/18.jpg)
Recepten
Voor elk software pakket is een BitBake recept wat de bouwtaken beschrijft. Dit zijn shell scripts.
Veelal wordt een bestaande klasse overerfd.
Gevolg: een recept bevat doorgaans weinig scripts, maar vooral shell variabelen die de taken gebruiken tijdens uitvoeren.
18
![Page 19: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/19.jpg)
Hello World
19
![Page 20: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/20.jpg)
Configuratie
Vertelt bitbake voor welke MACHINE gebouwd gaat worden en waar het de recepten en klassen moet zoeken.
20
![Page 21: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/21.jpg)
Meerdere architecturen
host packages
target packages
cross tools
21
![Page 22: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/22.jpg)
Meerdere packages
Eén recept kan meerdere packages genereren.
Bijvoorbeeld een package voor de shared library en één voor de headers ervan.
22
![Page 23: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/23.jpg)
Afhankelijkheden
Elk recept kan afhankelijkheden aangeven; het kan pas gebouwd worden zodra een ander package beschikbaar is.
DEPENDS
23
![Page 24: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/24.jpg)
Images
Veelal wil je niet één pakket bouwen, maar juist een compleet filesysteem wat je direct kunt schrijven naar het apparaat.
24
![Page 25: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/25.jpg)
Start
Bij het uitvoeren van BitBake geef je het gewenste package of image op, en BitBake begint te bouwen.
25
![Page 26: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/26.jpg)
26
![Page 27: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/27.jpg)
Bouwen
27
![Page 28: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/28.jpg)
Run Queue
Mede gestuurd door de afhankelijkheden tussen packages, maakt BitBake eerst een afhankelijkhedenboom tussen alle uit te voeren taken.
Deze taken worden verdeeld over meerdere threads en cores.
28
![Page 29: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/29.jpg)
Bouwen op 8 cores
29
![Page 30: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/30.jpg)
30
![Page 31: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/31.jpg)
31
![Page 32: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/32.jpg)
Cache
Checksums om te zien of afhankelijkheden zijn veranderd, bijvoorbeeld door aanpassing recept.
BitBake bouwt alleen de nodige pakketten opnieuw.
32
![Page 33: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/33.jpg)
33
![Page 34: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/34.jpg)
SDK’s
OpenEmbedded kan een SDK bouwen voor een andere ontwikkelmachine.
Hiermee kunnen software ontwikkelaars hun software compileren voor het embedded target zonder dat ze een complete distributie moeten bouwen.
NATIVESDK
34
![Page 35: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/35.jpg)
Resultaat
35
![Page 36: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/36.jpg)
Deploy images
Kopieer bootloader, kernel en filesysteem (image) naar de SD kaart, Flash, disk.
En booten maar...
36
![Page 37: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/37.jpg)
Yocto
37
![Page 38: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/38.jpg)
Meer geschiedenis
2008: Intel neemt belang in OpenedHand, een Linux ontwikkel club in de UK, die verbeteringen aanbrengt in ‘Poky’, een fork.
38
![Page 39: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/39.jpg)
Meer geschiedenis
2010: Linux Foundation stelt het Yocto Project voor op de Embedded Linux conferentie in Cambridge.
39
![Page 40: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/40.jpg)
Meer geschiedenis
2010: OpenEmbedded Core is een kleine subset van OpenEmbedded (Classic), basis voor Yocto Project, in sync met Poky.
40
![Page 41: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/41.jpg)
Resultaat
Yocto Project gebruikt OpenEmbedded Core als basis voor een ontwikkelomgeving voor embedded Linux.
Yocto biedt meer high-level tools, zoals voor Eclipse en bouwen vanuit een web browser.
41
![Page 42: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/42.jpg)
Hoe verder?
Suggesties:
Kies een ontwikkel platform wat wordt ondersteund door OpenEmbedded / Yocto en volg de “Getting Started” Guide.
Of neem deel aan de Yocto Developer Days.
42
![Page 43: Inhoud - Nederlandse Linux Gebruikers Groep...2015/05/16 · gereedschap ‘Bitbake’ van de bouw instructies. 7 Stukje geschiedenis 2005: OpenEmbedded is volwassen. (tenminste,](https://reader034.vdocuments.site/reader034/viewer/2022050513/5f9d9ed9ee7f906d92291489/html5/thumbnails/43.jpg)
Yocto Developer Day 2014
43