30
Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend Senior Solutions & Services Architect, MontaVista

Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6

Klaas van GendSenior Solutions & Services Architect, MontaVista

Page 2: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 2

Distribution License

• The slides of this presentation are licensed under theCreative Commons

AttributionNoncommercialShare Alike 3.0 Unported License.

• To view a copy of this license:• Visit http://creativecommons.org/licenses/by-nc-sa/3.0/• Send a letter to:

Creative Commons171 Second Street, Suite 300San Francisco, California, 94105USA

Page 3: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 3

Who is MontaVista?

• Industry veteran embedded Linux provider• Founded in 1999 by Jim Ready (Ready Systems / VRTX)

• World-wide player• Headquartered in Santa Clara, CA• Offices and engineering centers around the world, including

USA, Europe, Japan, Asia/Pacific• 75 Freescale LSPs released• 6th generation embedded Linux product announced in

May 2009

We help you get the most out of open source

Page 4: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 4

Who is Klaas van Gend?

• “Senior Solutions & Services Architect”• “Sales Realist”

EindhovenEindhovenSanta ClaraSanta Clara

Page 5: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 5

Development Life Cycle – “real life”

require-ments

design

implement

integrate

maintenance

test

deploy

Time progresses

“Development”

Page 6: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 6

But it runs Linux !!!

Linux• Is Free!• Is Free?

Where do you get it?What do you get?Where do you start?

Is Linux just a kernel?What is a “user land”?

Page 7: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 7

“metadata”

Packages: Feature selections

System Designer must map requirements to packages

Multithreading?Use “libc” with “NPTL”

SNMP?

RFC 3927/2608 ?

“Net-SNMP”

“Avahi”

You

Page 8: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 8

Packages: Versioning and Stabilization

• New features as patches

• Project maintainer has important role

• Interesting version numbering schemes• Is version 0.76 bad? • Is 2.5.43 better?

• Check your “distribution” first• Don’t re-invent the wheel !

CVS

Unstable

Beta

RC

Stable

Legacy

Page 9: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 9

Dependencies

Problems always come in pairs

Most packages depend on othersAt least two types of dependencies exist:• Build-time dependencies

e.g: cmake, glade, qt-devel, perl• Run-time dependencies

e.g: fonts, perl, PAM, libqt

Dependency resolution can be a big task• “RPM hell” anyone?

• You need to document this or automate it• Don’t surprise your successor !!!

Samba

CUPS

GhostScript

Page 10: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

Linux Target Image Builder(LTIB)

Page 11: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 11

What is LTIB?

• Automated System to configure & build:• Compilers+Build tools• U-Boot• Linux kernel• User land applications• File systems

• © Stuart Hughes, Freescale Semiconductor 2004-2009

• http://www.freescale.com/• Under “Software&Downloads” for each processor

• http://www.bitshrine.org/

Page 12: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 12

Your first build

• (Using LTIB for 8548cds)• Installation: 5 minutes• First build: 2 hours

• Most time spent in setting up host platform and downloading extra files

• No real package builds• Result is rootfs that can be used with NFS

• Second build: ./ltib --configure• “Kconfig” mechanism

• Add/remove packages• Specify build options• Remove directories

• Not fool proof• 3rd build attempt failed horribly

Page 13: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 13

How does LTIB work?

(image © Stuart Hughes, July 2008)

Page 14: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

MontaVista Linux 6(MVL6)

Page 15: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 15

How does MVL6 work?

Page 16: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 16

How does MVL6 work?

Page 17: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 17

How does MVL6 work?

Page 18: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 18

Problems solved

• Installation/Updates• Cross-compilation &

Similar package classes• Dependencies

• Compile time vs run time• tasks

• Requirement for Root• sudo doesn’t wait forever – another build lost• export LOG_DIRECTORY=“/home/kaa-ching/logs”rm –rf $LOGDIRECTORY/*

• Extensibility / Community• OpenEmbedded contains 6000+ recipes• MontaVista will ship approx 400 validated packages• Other packages can be easily added as an “collection”

Page 19: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 19

Example recipe (sqlite3, modified) - 1

DESCRIPTION = "An Embeddable SQL Database Engine"SECTION = "libs"PRIORITY = "optional"DEPENDS = "readline ncurses"LICENSE = "PD"

SRC_URI = "http://www.sqlite.org/sqlite-${PV}.tar.gz \file://libtool.patch;patch=1"

S = "${WORKDIR}/sqlite-${PV}"

inherit autotools pkgconfig

EXTRA_OECONF = "--disable-tcl --enable-shared \--enable-threadsafe“

do_compile_prepend() {oe_runmake sqlite3.hinstall -m 0644 sqlite3.h ${STAGING_INCDIR}

}

Page 20: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 20

Example recipe (sqlite3, modified) - 1

DESCRIPTION = "An Embeddable SQL Database Engine"SECTION = "libs"PRIORITY = "optional"DEPENDS = "readline ncurses"LICENSE = "PD"

SRC_URI = "http://www.sqlite.org/sqlite-${PV}.tar.gz \file://libtool.patch;patch=1"

S = "${WORKDIR}/sqlite-${PV}"

inherit autotools pkgconfig

EXTRA_OECONF = "--disable-tcl --enable-shared \--enable-threadsafe“

do_compile_prepend() {oe_runmake sqlite3.hinstall -m 0644 sqlite3.h ${STAGING_INCDIR}

}

Page 21: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 21

Example recipe (sqlite3, modified) - 1

DESCRIPTION = "An Embeddable SQL Database Engine"SECTION = "libs"PRIORITY = "optional"DEPENDS = "readline ncurses"LICENSE = "PD"

SRC_URI = "http://www.sqlite.org/sqlite-${PV}.tar.gz \file://libtool.patch;patch=1"

S = "${WORKDIR}/sqlite-${PV}"

inherit autotools pkgconfig

EXTRA_OECONF = "--disable-tcl --enable-shared \--enable-threadsafe“

do_compile_prepend() {oe_runmake sqlite3.hinstall -m 0644 sqlite3.h ${STAGING_INCDIR}

}

Page 22: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 22

Example recipe (sqlite3, modified) - 1

DESCRIPTION = "An Embeddable SQL Database Engine"SECTION = "libs"PRIORITY = "optional"DEPENDS = "readline ncurses"LICENSE = "PD"

SRC_URI = "http://www.sqlite.org/sqlite-${PV}.tar.gz \file://libtool.patch;patch=1"

S = "${WORKDIR}/sqlite-${PV}"

inherit autotools pkgconfig

EXTRA_OECONF = "--disable-tcl --enable-shared \--enable-threadsafe“

do_compile_prepend() {oe_runmake sqlite3.hinstall -m 0644 sqlite3.h ${STAGING_INCDIR}

}

Page 23: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 23

do_stage() {oe_libinstall -so libsqlite3 ${STAGING_LIBDIR}install -m 0644 sqlite3.h ${STAGING_INCDIR}

}

PACKAGES = "libsqlite libsqlite-dev libsqlite-doc sqlite3 sqlite3-dbg"

FILES_sqlite3 = "${bindir}/*"

FILES_libsqlite = "${libdir}/*.so.*"

FILES_libsqlite-dev = "${libdir}/*.a ${libdir}/*.la ${libdir}/*.so \${libdir}/pkgconfig ${includedir}"

FILES_libsqlite-doc = "${docdir} ${mandir} ${infodir}"

AUTO_LIBNAME_PKGS = "libsqlite"

Example recipe (sqlite3, modified) - 2

Page 24: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 24

do_stage() {oe_libinstall -so libsqlite3 ${STAGING_LIBDIR}install -m 0644 sqlite3.h ${STAGING_INCDIR}

}

PACKAGES = "libsqlite libsqlite-dev libsqlite-doc sqlite3 sqlite3-dbg"

FILES_sqlite3 = "${bindir}/*"

FILES_libsqlite = "${libdir}/*.so.*"

FILES_libsqlite-dev = "${libdir}/*.a ${libdir}/*.la ${libdir}/*.so \${libdir}/pkgconfig ${includedir}"

FILES_libsqlite-doc = "${docdir} ${mandir} ${infodir}"

AUTO_LIBNAME_PKGS = "libsqlite"

Example recipe (sqlite3, modified) - 2

Page 25: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 25

Preventing problems – the extra’s of MVL6

• Documentation• Quick Start• MVIP

• All use cases covered

• System Deployment• Kernel development• Power management*• Device Trees

• Support• Web/Email/(Phone/Fax)• We fix bugs !

• Graphical IDE: DevRocket• Tools!

• KGDB• Memory Usage Analysis• Memtraq• OProfile• LTT-ng• strace / ltrace

Page 26: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

LTIB & MVL6:

no enemies!

Page 27: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 27

Other options to get Linux for 8548 ?

8548 is a fairly popular platform:

• ELDK – http://www.denx.de/• GCC 4.2.2, Linux 2.6.24• RPM based, controlled & supported by Denx

• Wind River – http://www.intel.com/ ???• GCC 4.1.2, Linux 2.6.21

• Timesys – http://www.timesys.com/• GCC 4.3.3, Linux 2.6.28 “basic kernel”

• http://www.kernel.org/• Linux from scratch is not for the faint of heart!

Page 28: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 28

A side-by-side comparison

LTIB for 8548cds(late 2007)

MVL6 for 8548cds(mid 2009)

Kernel, gcc, libc Kernel: 2.6.23+pq3, Gcc: 4.1.78, C library: 2.5.78 (eglibc)

Kernel: 2.6.27+, Gcc: 4.3.3, C library: 2.8 (eglibc)

Uses Device Tree? Yes! Yes(+documentation)

NFS Yes(no instructions for host)

Yes(+documentation)

Builds user land packages?

RPM + cross compile fixes

MVL6IP(Bitbake+other tools)

Packages selectable? Yes, KConfig tool Yes, using tasks/images/recipes

Needs root? Yes No

Availability? Support? From FreeScale, AS IS, for free

From MontaVista, supported, licensed

Page 29: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 29

Target audience – why both deserve to exist

LTIB

Available for free, AS IS.• A quick start to prototype

• Acceptable Quality• No support• Initial learning curve is

remarkably low• Extending is not as simple

• SRPM magic required• Platform tuning will cost time

MVL6

Paid distribution• Feature-by-feature drop-in

replacement of LTIB• Extends LTIB by providing

• More packages• Extensive QA• Dedicated Support Team

• Adding packages is easy• Recipe mechanism is well

documented• Many packages available in

Open Embedded

Works for very experienced Linux users with more time than money

Better suited for professionals & commercial development

Page 30: Linux Build Systems - NXP Semiconductors · Linux Build Systems: Comparing the joys & pains of Freescale Linux (LTIB) and MVL6 Klaas van Gend. Senior Solutions & Services Architect,

© 2009 MontaVista Software 30

Want more?

• Live Q&A session

• Join Meld: http://meld.mvista.com/• Not just for MontaVista customers!!!

• Send an e-mail:[email protected]