Top Banner
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Embedded Linux Conference - April 2009 Embedded building tools BOF Thomas Petazzoni - Michael Opdenacker Free Electrons http://free-electrons.com/
14

Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com Building the toolchain

May 24, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com Building the toolchain

1Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free­electrons.com

Embedded Linux Conference ­ April 2009

Embedded building toolsBOF

Thomas Petazzoni ­ Michael OpdenackerFree Electrons

http://free­electrons.com/

Page 2: Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com Building the toolchain

2Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free­electrons.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/by­sa/3.0/legalcode

© Copyright 2008­2009, Free Electronsfeedback@free­electrons.com

Document sources available on: http://free­electrons.com/pub/conferences/2009/elc/

Corrections, suggestions, contributionsand translations are welcome!

Latest update: Apr 29, 2009

Page 3: Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com Building the toolchain

3Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free­electrons.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)

Crosstool­ng (toolchain only)

ELDK

Others?

Page 4: Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com Building the toolchain

4Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free­electrons.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 product­specific changes

No packages

Page 5: Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com Building the toolchain

5Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free­electrons.com

Scratchbox

Pros

Transparent cross­compilation

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.

Page 6: Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com Building the toolchain

6Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free­electrons.com

OpenEmbeddedPros

Clean separation of the build tool and the recipes

Ability to generate a root filesystem and packages

Clean separation of product­specific 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

Page 7: Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com Building the toolchain

7Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free­electrons.com

Firmware Linux

By Rob Landley

Not using cross­compiling,but only native compiling thanks to Qemu

Similar approach than Scratchbox, but less tricks.

How mature is it ?

Page 8: Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com Building the toolchain

8Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free­electrons.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.

Page 9: Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com Building the toolchain

9Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free­electrons.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?

Page 10: Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com Building the toolchain

10Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free­electrons.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.

Page 11: Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com Building the toolchain

11Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free­electrons.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 ?

Page 12: Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com Building the toolchain

12Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free­electrons.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

Crosstool­ng

Much better configuration interface

Supports both uClibc and glibc

Hasn't attracted a lot of community attention (yet ?)

Page 13: Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com Building the toolchain

13Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free­electrons.com

Tool survey

BuildrootScratchbox

OpenEmbeddedPTXdist

LTIBFirmware Linux

Gentoo embeddedVendor tools

Home madeELDK

uClinux­distOpenwrt

Desktop distro

0

5

10

15

20

25

30

OLS 2008

ELC 2009

Number of users per tool in the BOF

Page 14: Embedded building tools - eLinux.org · 2016-07-06 · Kernel, drivers and embedded Linux development, consulting, training and support. http//freeelectrons.com Building the toolchain

14Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free­electrons.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 ?