Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux...
Transcript of Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux...
1Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com
Embedded Linux Conference April 2009
Embedded building toolsBOF
Thomas Petazzoni Michael OpdenackerFree Electrons
http://freeelectrons.com/
2Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com
Rights to copy
Attribution – ShareAlike 3.0You are free
to copy, distribute, display, and perform the workto make derivative worksto make commercial use of the work
Under the following conditionsAttribution. You must give the original author credit.Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one.
For any reuse or distribution, you must make clear to others the license terms of this work.Any of these conditions can be waived if you get permission from the copyright holder.
Your fair use and other rights are in no way affected by the above.License text: http://creativecommons.org/licenses/bysa/3.0/legalcode
© Copyright 20082009, Free Electronsfeedback@freeelectrons.com
Document sources available on: http://freeelectrons.com/pub/conferences/2009/elc/
Corrections, suggestions, contributionsand translations are welcome!
Latest update: Apr 29, 2009
3Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com
Which tools to build your system?
OpenEmbedded
Buildroot
Scratchbox
PTXdist
LTIB
Home made tools
Firmware Linux
Vendor tools (Eclipse)
Gentoo embedded
Crosstool (toolchain only)
Crosstoolng (toolchain only)
ELDK
Others?
4Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com
Buildroot
Pros
Supports uClibc
Simple design (kernel config interface, set of Makefiles)
Efficient
Reproducibility of the build process
Cons
Doesn't support glibc, except with external toolchain and a bit of tuning
Takes care of building the toolchain (2 in 1)
No clean way of separating productspecific changes
No packages
5Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com
Scratchbox
Pros
Transparent crosscompilation
Transparent execution
Supports both uClibc and glibc
Cons
No infrastructure for build reproducibility
Complex to add new host tools (need to compile them)
Only uses its own toolchains (can compile your own, but complicated to integrate in Scratchbox)
No recipes, no tool patches shared with the community.
6Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com
OpenEmbeddedPros
Clean separation of the build tool and the recipes
Ability to generate a root filesystem and packages
Clean separation of productspecific changes
Widely used in the community
Can generate packages
Cons
No stable releases
Steep learning curve
Very slow to run (for what reason ?)
Too generic. Huge boot times
Packages mandatory
7Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com
Firmware Linux
By Rob Landley
Not using crosscompiling,but only native compiling thanks to Qemu
Similar approach than Scratchbox, but less tricks.
How mature is it ?
8Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com
Home made tools
Pros
Meets your product needs
Cons
No free updates to mainstream software changes
High maintenance cost. Sometimes difficult to extend.Only one person understands its design.
Lot of legacy cruft in it.
Don't always meet future product needs.
9Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com
LTIB
Pros
Clean separation of build system and packages
Supports both uClibc and glibc
Easy to extend to support new boards
Accepts standard toolchains
Cons
Only used on Freescale boards?
Size of community?
10Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com
The other ones ?
PTXdist
Very similar to Buildroot
Relies on a separate tool for building the toolchain, but seems limited to glibc
Emdebian
Vendor tools
Great features
But difficult to evaluate without a subscription.
11Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com
Tools comparedLicense Small
systemsglibc (G)uClibc (U)
Reproducibility/ Leverage
Popularity Activelymaintained
Buildroot Free Yes G Good Good Yes
Scratchbox Free Yes G + U Poor Low Yes
OpenEmbedded Free No G + U Good Very good Definitely
LTIB Free Yes G + U Good Low Yes
PTXdist Free Yes G Good Low Yes
Gentoo embedded Free No? G (U?) ? Low? Yes
Firmware Linux Free Yes ? Poor Low Rob neversleeps
Vendor tools Closed ? G + U Good N/A Yes
Home made Closed ? ? ? N/A ?
12Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com
Building the toolchain
Buildroot
Mixed with root filesystem construction, not really nice
Only uClibc supported
Crosstool
Not really nice configuration through shell scripts
Only glibc supported
Crosstoolng
Much better configuration interface
Supports both uClibc and glibc
Hasn't attracted a lot of community attention (yet ?)
13Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com
Tool survey
BuildrootScratchbox
OpenEmbeddedPTXdist
LTIBFirmware Linux
Gentoo embeddedVendor tools
Home madeELDK
uClinuxdistOpenwrt
Desktop distro
0
5
10
15
20
25
30
OLS 2008
ELC 2009
Number of users per tool in the BOF
14Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com
Questions
Why is the community so fragmented ?
Because it is not possible to create a universal tool that would match the needs of everybody ?
Is it a problem ?
NIH syndrom ?
What are the missing features ?
What are your complaints about the existing tools ?
Complexity ?
Lack of flexibility ?
Don't see the need ?