Professional Documents
Culture Documents
Prsentation P.
/tilisateur de lo,iciels libres depuis 1909 /tilisateur de Linu1 depuis 1992 2uteur des 3 ditions de l(ouvra,e 4 Linu1 embar-u 5 # "rolles%! 3'me dition parue en $uin 2012 2uteur 67/ Linu1 8a,a9ine et Open Silicium :TO Open Wide In,nierie! ensei,nant PIT2
&
:hoisir un outil commercial #Wind ;iver! 8ontavista% /tiliser un outil de ,nration & <uildroot! Open mbedded! OpenWrt! LTI< 2dapter une distribution Linu1 classique
Souvent limit au niveau matriel mpreinte mmoire et )lash importante Temps de dmarra,e 2pproche plut=t 4 pda,o,i-ue 5 >i))icile/impossible ? industrialiser @ dpendances! mise ? $our
'
Open mbedded
8oteur crit en P"thon #bitbake% Puissant mais lourd <as sur des )ichiers de con)i,uration #A% <as sur la commande make 2u dpart un dmonstrateur pour u:libc <on outil mais pas de ,estion de pa-uets /tilis par Google Fiber project >riv de <; B ,'re les pa-uets IPC Orient vers les I2> #Internet 2ccess >evice%
Yocto / OpenEmbedded sur RPi (
<uildroot
OpenWrt
O est une 4 ,nralisation 5 de l(approche utilise dans <; @ framework de compilation croise >marra,e en 200E pour OpenFaurus /tilise un moteur crit en P"thon #bitbake% et un ensemble de r',les utilisant un principe d(hrita,e @ recipe #recette G )ichier .bb) Gre la notion de paquet binaire, contrairement BR #IPC! ;P8! > <% Plusieurs milliers de pa-uets disponibles Par contre &
Peu d(inter)aces de con)i,uration #en cours% Processus de compilation plus lourd -u(avec <;
Hocto Pro$ect#s%
Le pro$et 4 chapeau 5 le plus important autour de O #PoI"! ,libc! +ob! 8atchbo1! in)rastructures de test! J2! K% :ontributions Intel! Wind ;iver! 8ontavista! 8entor 6raphics! K #20 participants officiels% 2rchitecte & ;ichard Purdie @ re$oint la Linu1 .oundation en tant -ue 4 )elloL 5 en dcembre 2010 Or,anisation similaire ? celle de l(-uipe du no"au Linu1 4 meritocrac" presided over b" a benevolent dictator 5 .orte prsence d(Intel mais lMen,a,ement de la )ondation Linu1 permet une collaboration )ructueuse NO%
/tilis par les diteurs pour leurs produits commerciau1 /tilis par les )abricants de matriel pour les BSP #Board Support Package% Pas rellement une 4 distribution 5 mais )ournit des templates et outils pour crer des distributions
Support matriel #metaOintel! meta-raspberrypi% Porta,e de composants #metaOmono% :ouches 4 mtier 5 #metaOivi% @ 6 7IPI >istributions #metaO"octo! metaOan,strom%
It's not an embedded Linux distribution it creates a custom one for !ou
8tadonnes O
Les recettes #Qbb% dcrivent la mani're de compiler un pa-uet #ou plusieurs% pour la cible &
$ bitbake ma_recette $ bitbake vim $ bitbake core-ima e-minima!
/n .bb peut dcrire /7 composant mais ,alement une distribution compl'te Les classes #c!asses"#.bbc!ass% dcrivent des r',les communes au1 recettes #autotools! cmaIe! module! QQQ% Les )ichiers de con)i,uration #.conf%! d)inissent les param'tres de la distribution cible #$oky.conf! !oca!.conf! QQQ%
Yocto / OpenEmbedded sur RPi ,
8tadonnes O ! suite
O est rarement utilis seul Il )ournit les 4 mtadonnes 5 principales #O O:ore% permettant de construire des distributions Les autres couches #la"ers% sont disponibles sur &
http&//la"ersQopenembeddedQor,/la"erinde1
O )ournit cependant des recettes pour des ima,es de test simples #J 8/%
$ c% meta"reci$es-core"ima es" $ !s -1 #.bb b&i!%-a$$!iance-ima e.bb core-ima e-base.bb core-image-minimal.bb core-ima e-minima!-%ev.bb core-ima e-minima!-initramfs.bb core-ima e-minima!-mt%&ti!s.bb
Yocto / OpenEmbedded sur RPi 1%
<itbaIe
LMoutil est -uivalent ? make dans le cas de <uildroot Il parcourt les )ichiers de con)i,uration a)in de dterminer -uels sont les composants ? construire en )onction des recettes Pour cha-ue pa-uet& fetc#! unpack! patc#! configure! compile! stage! install! package! QQQ
11
1$
/n 4 P: bon march 5 #de 22 ? EST% Processeur <:82R00 #<roadcom% ? R00 8h9 6P/ 2SU ou S12 8o de ;28 #6P/B:P/% :arte S> #pas de bootloader standard V% thernet! /S< 6PIO! SPI! I2:! K 2udio >SI/:SI #>ispla"/:amera Serial Inter)ace% Sorties vido composite et +>8I
1&
1'
Les archives des pa-uets sont stocIes dans r$ib&i!%"%o9n!oa%s lors de l(tape fetc# La couche ;Pi )ournit une ima,e de test drive de core$image$minimal
$ !s -1 meta-ras$berry$i"reci$es-core"ima es" r$i-basic-ima e.bb r$i-29&$-ima e.bb
Par d)aut! PoI" utilise le )ormat de pa-uet ;P8 #voir conf"!oca!.conf% L(ima,e de la S> est produite automati-uement nviron S0 mn sur un 1U :P/ Deon mais 12h sur un :ore2 >uoQQQ
Yocto / OpenEmbedded sur RPi 1(
;pertoires produits
Le rpertoire r$i-b&i!%"%o9n!oa%s contient les
archives tlchar,es #? parta,er V% Le rpertoire r$i-b&i!%"tm$ est utilis comme 4 sortie 5 avec les sousOrpertoires %e$!oy et 9ork $ !s -1 %e$!oy images no"au et archives #rootO)s% produits pa-uets IPC i$k $ !s -1 !in&:-ras$berry$i !icenses 5;PY78< eneric_<P)v= pa-uets ;P8 r$m
1)
$ !s -1 9ork"ras$berry$i-$oky-!in&:- n&eabi"rpibasic-image"1.0-r0" ima e-version-info bin insta!!e%_$k s.t:t boot %ev etc !o .%o_$o$&!ate_!ic ... ... !o .%o_$o$&!ate_!ic.133>3 rootfs var !o .%o_rootfs !o .%o_rootfs.13?=@ tem$
!o .%o_rootfs.1>3@A
...
Yocto / OpenEmbedded sur RPi 1*
2$ustement de la con)i,uration
8odi)ication !oca!.conf pour utiliser IPC 2$out de 4 )eatures 5 ? partir d(une liste@ 111! toolsO debu,! n)sOserver! QQQ 74*<+_C+*DER+, #dans la recette%
+FDR*_74*<+_C+*DER+, #dans !oca!.conf%
74*<+_C+*DER+, G. /ss2-server-%ro$bear s$!as2/
2$out d(un pa-uet -uelcon-ue 74*<+_78,D*)) #dans la recette% Suppression des rpertoires de construction #9ork% VV
786+R7D G. /rm_9ork/
Yocto / OpenEmbedded sur RPi 1+
La distribution ;P8 est deu1 )ois plus volumineuse -ue la version IPC V
Ci!esystem "%ev"root "%ev"root ,iLe =?0.N4 =?0.N4 Ese% 125.3M 53.5M *vai!ab!e EseM 4o&nte% on 1N0.=4 ===.04 ANM 1?M " "
1,
:ration du S>C
$%
L(e1emple est un pa-uet 4 +ello World 5 bas sur un 4akefi!e g%n%rique #ni 2utotools! ni :8aIe% Le )ichier recette 2e!!o_1.0.bb est install sur le rpertoire meta-ras$berry"reci$es-core"2e!!o Les variables ? d)inir sont &
$1
$$
$&
L(archive .tar. L est char,e sur le rpertoire %o9n!oa%s lors du fetc# La compilation s(e))ectue sur &
tm$"9ork"armv>-vf$-$oky-!in&:- n&eabi"2e!!o
$'
$(
Options utiles
1emples &
Tlchar,ement archive
$ bitbake -c +e,c) 2e!!o Idem B dpendances $ bitbake -c +e,c)all core-ima e-minima! $ bitbake -c lis,,as-s 2e!!o
TYches ? e1cuter
$)
:onclusions
Hocto/Open mbedded est un outil puissant mais comple1e La distribution produite est plus lourde -ue dans le cas de <uildroot 7iveau de comple1it #taille% sur la ;Pi
On utilise PoI" lors-ue l(on veut une distribution volue et non un firmware V Poir les dmos sur la ;Pi
$*
<iblio,raphie
http&//LLLQopenembeddedQor, https&//LLLQ"octopro$ectQor, http&//LLLQ"octopro$ectQor,/docs/1QE/poI"Ore)Omanual/poI"Ore)O manualQhtml http&//,itQ"octopro$ectQor,/c,it/c,itQc,i/poI"/tree/meta/classes/coreO ima,eQbbclass http&//LLLQlinu1)oundationQor,/neLsO media/announcements/2010/12/linu1O)oundationOappointsOneLO)elloL :hapitres 11 et 1S de l(ouvra,e Linux embarqu%& '(me %dition sur http&//LLLQeditionsOe"rollesQcom/Livre/9R022121E302R/linu1Oembar-ue >monstration O sur carte uIra sur http&//LLLQ"outubeQcom/LatchA vGSPP<0Le:lo8 http&//LLLQlinu1embeddedQ)r/2011/00/a$outerOunOpacIa,eOdansO openembeddedOenOSOminutes
$+