buildroot
play

Buildroot Buildroot overview Br2-external Additional - PowerPoint PPT Presentation

Introduction Buildroot Buildroot overview Br2-external Additional infrastructure Making embedded Linux easy? Conclusion A real-life example. Yann E. MORIN <yann.morin@orange.com> Embedded Linux Conference Europe 2017


  1.  Introduction Buildroot  Buildroot overview  Br2-external  Additional infrastructure Making embedded Linux easy?  Conclusion A real-life example. Yann E. MORIN <yann.morin@orange.com> Embedded Linux Conference Europe 2017

  2.  About me Introduction  Context  Team  Build environment 2

  3. About me "Yann E. MORIN" <yann.morin@orange.com> The other "Yann E. MORIN"  Linux  Linux  Embedded  Embedded  Security  Realtime  Network  Security  FLOSS  Network  FLOSS 3

  4. Context Targets: STB, STB-like Team  Difgerent generations  Three teams, ~30 developers  Two geographical locations  Performance  R&D vs. production  Application developers  Inherit constraints  Not all Linux experts  Part of the fjrmware  Not all embedded experts  Not the main part  Aggregation of multiple third-parties  External integrator  Complete rewrite from scratch 4

  5. Choosing a development environment – Late 2013 Requirements OpenEmbedded  Generic buildsystem  Distribution generator  Very versatile, highly customisable  Target agnostic  Run-time agnostic  Steep learning curve  Easy to learn and use  No in-house knowledge  No build-time overhead  Existing solution Buildroot  Not my choice!  Firmware generator  Flexible, extendable (BR2_EXTERNAL!)  Moderate (leaning to easy) learning curve SoftCo SDK  In-house knowledge  Dedicated to the production devices  Very specifjc, very custom Others: OpenWrt, OE-lite, PTXdist...  Much smaller communities (!OpenWrt) 5  Not really investigated, no in-house knowledge

  6.  Quick introduction Buildroot  Build sequence  Package infrastructure overview  Br2-external 6

  7. Buildroot overview - Quick Introduction Buildroot # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  Is a simple, effjcient and easy-to-use tool to # l p e g # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # generate embedded Linux systems through L P E G _ V E R S I O N = 1 . 0 . 1 - 1 cross-compilation L P E G _ L I C E N S E = M I T  Is entirely community-driven $ ( e v a l $ ( l u a r o c k s - p a c k a g e ) )  Uses kconfjg-driven confjguration # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #  Uses Makefjles # f p i n g #  Has a website https://buildroot.org/ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # F P I N G _ V E R S I O N = 4 . 0  Has a manual https://buildroot.org/manual.html F P I N G _ S I T E = h t t p : / / f p i n g . o r g / d i s t F P I N G _ L I C E N S E = B S D - l i k e F P I N G _ L I C E N S E _ F I L E S = C O P Y I N G  Is fun! $ ( e v a l $ ( a u t o t o o l s - p a c k a g e ) ) 7

  8. Buildroot overview – Build sequence install toolchain (package) confjgure, build, Buildroot overall build sequence install package  Build packages, in sequence ... ...  Dependency chain  Finalise target ... ...  Cleanups: .a .la .h man...  Stripping ...  Generate the fjlesystem image(s) confjgure, build, install package  A tarball is a fjlesystem image ;-) target-fjnalize hooks cleanups, stripping Extras overlays post-build scripts  target-fjnalize hooks  post-build, fakeroot, post-image scripts fakeroot scripts generate fjlesystems post-image scripts 8

  9. Buildroot overview – Package infrastructure pre-hook download post-hook Buildroot package infrastructure pre-hook  Download extract post-hook  Extract  Patch pre-hook pre-hook patch rsync  Confjgure post-hook post-hook  Build pre-hook  [Install in staging/] confjgure post-hook  Install in target/ pre-hook build Extras post-hook  Local rsync during development pre-hook pre-hook  Pre- and post-hooks for each step staging install target install post-hook post-hook 9

  10. Buildroot overview - BR2_EXTERNAL Local extensions Extensibility  Without touching the Buildroot tree  Defconfjgs  For proprietary packages  Packages  Staging area before upstreaming  Filesystems  Access to all of Buildroot infrastructures  Bootloaders  Stackable  Board fjles  Extra logic 10

  11.  Warming-up Br2-external  Buildroot  Defconfjgs  Packages  Filesystems  Board fjles  Extra logic 11

  12. BR2_EXTERNAL - Warming-up Local customisations $ l s - h l F - r w - r w - r - - 1 y m o r i n y m o r i n 0 S e p 1 2 0 8 : 4 9 C o n f i g . i n - r w - r w - r - - 1 y m o r i n y m o r i n 0 S e p 1 2 0 8 : 4 9 e x t e r n a l . m k 12

  13. BR2_EXTERNAL - Buildroot Local customisations $ l s - h l F d r w x r w x r - x 1 3 y m o r i n y m o r i n 4 . 0 K A u g 2 9 1 5 : 5 7 b u i l d r o o t /  Buildroot as a git submodule - r w - r w - r - - 1 y m o r i n y m o r i n 0 S e p 1 2 0 8 : 4 9 C o n f i g . i n - r w - r w - r - - 1 y m o r i n y m o r i n 0 S e p 1 2 0 8 : 4 9 e x t e r n a l . m k 13

  14. BR2_EXTERNAL - Defconfjgs Local customisations $ l s - h l F d r w x r w x r - x 1 3 y m o r i n y m o r i n 4 . 0 K A u g 2 9 1 5 : 5 7 b u i l d r o o t /  Buildroot as a git submodule d r w x r w x r - x 2 y m o r i n y m o r i n 4 . 0 K S e p 1 2 0 8 : 5 2 c o n f i g s / - r w - r w - r - - 1 y m o r i n y m o r i n 0 S e p 1 2 0 8 : 4 9 C o n f i g . i n - r w - r w - r - - 1 y m o r i n y m o r i n 0 S e p 1 2 0 8 : 4 9 e x t e r n a l . m k  New confjgurations $ l s - h l F c o n f i g s / - r w - r w - r - - 1 y m o r i n y m o r i n 4 . 0 K S e p 1 2 0 8 : 5 2 b o a r d 1 _ d e v _ d e f c o n f i g - r w - r w - r - - 1 y m o r i n y m o r i n 3 . 2 K S e p 1 2 0 8 : 5 2 b o a r d 1 _ e 2 e _ d e f c o n f i g - r w - r w - r - - 1 y m o r i n y m o r i n 3 . 0 K S e p 1 2 0 8 : 5 2 b o a r d 1 _ p r o d _ d e f c o n f i g - r w - r w - r - - 1 y m o r i n y m o r i n 4 . 2 K S e p 1 2 0 8 : 5 2 b o a r d 2 _ d e v _ d e f c o n f i g - r w - r w - r - - 1 y m o r i n y m o r i n 3 . 3 K S e p 1 2 0 8 : 5 2 b o a r d 2 _ e 2 e _ d e f c o n f i g - r w - r w - r - - 1 y m o r i n y m o r i n 3 . 1 K S e p 1 2 0 8 : 5 2 b o a r d 2 _ p r o d _ d e f c o n f i g 14

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend