16
Buildroot: flexible building of a custom embedded system © 2012 Essensium N.V. Parts © Thomas Petazzoni, Free Electrons This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License http://mind.be/content/Presentation_Buildroot-Open-Mobile.pdf

Buildroot: flexible building of a custom embedded system

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Buildroot: flexible building of a custom embedded system

Buildroot:flexible building

of a custom embedded system© 2012 Essensium N.V.

Parts © Thomas Petazzoni, Free ElectronsThis work is licensed under a

Creative Commons Attribution-ShareAlike 3.0 Unported License

http://mind.be/content/Presentation_Buildroot-Open-Mobile.pdf

Page 2: Buildroot: flexible building of a custom embedded system
Page 3: Buildroot: flexible building of a custom embedded system

Arnout VandecappelleBuildroot for Open Mobile

Is the device really hackable?

??

How easily can I install modified software?

Page 4: Buildroot: flexible building of a custom embedded system

Buildroot for Open Mobile

Buildroot:flexible building

of a custom embedded system© 2012 Essensium N.V.

Parts © Thomas Petazzoni, Free ElectronsThis work is licensed under a

Creative Commons Attribution-ShareAlike 3.0 Unported License

http://mind.be/content/Presentation_Buildroot-Open-Mobile.pdf

Page 5: Buildroot: flexible building of a custom embedded system

Arnout VandecappelleBuildroot for Open Mobile

Overview

1 Buildroot for the device hacker

2 Buildroot for the device “vendor”

3 What's missing

Page 6: Buildroot: flexible building of a custom embedded system

Arnout VandecappelleBuildroot for Open Mobile

Buildroot builds a complete system

Buildroot builds: Cross-compiling toolchain Packages Root filesystem image (ext2, jffs2, ubi, ...) Kernel image Bootloader (u-boot, barebox, syslinux, ...)

Configuration system (Kconfig) Simple make-based system No run-time packaging system Small & medium-sized embedded devices Stable releases published every three months Active user/developer community

Page 7: Buildroot: flexible building of a custom embedded system

Arnout VandecappelleBuildroot for Open Mobile

Workflow for Open Mobile device user (1/3)

MakefilesKconfigspatches

Neurosbuildroot

make neuros_defconfig;make xconfig

Page 8: Buildroot: flexible building of a custom embedded system

Arnout VandecappelleBuildroot for Open Mobile

Workflow for Open Mobile device user (2/3)

gccμClibclinuxbusyboxmtd-utils

gnu.orgkernel.org

sf.net

make

compilerC librarydebuggertools

boot loader

kernel

packagesskeletoninit

root fs image

Page 9: Buildroot: flexible building of a custom embedded system

Arnout VandecappelleBuildroot for Open Mobile

Workflow for Open Mobile device user (3/3)

Create upgrade image

Upload to target

Page 10: Buildroot: flexible building of a custom embedded system

Arnout VandecappelleBuildroot for Open Mobile

Workflow for Open Mobile device vendor (1/3)

MakefilesKconfigspatches

make xconfig;make

boardkernel

patchesdevice

applications

Page 11: Buildroot: flexible building of a custom embedded system

Arnout VandecappelleBuildroot for Open Mobile

Workflow for Open Mobile device vendor (2/3)

MakefilesKconfigspatchesmake linux_saveconfig;

make savedefconfig

/etc/init.d/S80startapp/etc/network/interfaces

Rootfilesystemskeleton

Neurosbuildroot

Page 12: Buildroot: flexible building of a custom embedded system

Arnout VandecappelleBuildroot for Open Mobile

Workflow for Open Mobile device vendor (3/3)

Create production image

Upload to target

Page 13: Buildroot: flexible building of a custom embedded system

Arnout VandecappelleBuildroot for Open Mobile

What is missing in buildroot

No package manager (or appstore) Doesn't generate packages to install individually

(can create a package manager, though) But can easily regenerate device firmware Actually gives you more control

No post-processing of images E.g. write images to flash using JTAG Device vendor should produce script

to prepare upgrade image Is very device-specific

No standardized upgrade system because there is no package manager Somewhat device specific See my talk in the Embedded devroom

Page 14: Buildroot: flexible building of a custom embedded system

Arnout VandecappelleBuildroot for Open Mobile

Similar projects

OpenWRT focused on routers does use package manager UCI for configuration data

PTXdist very similar in goals and results fully bash-based slightly smaller community

OpenEmbedded + derivatives very popular IMO more difficult to customize slow :-)

Page 15: Buildroot: flexible building of a custom embedded system

Arnout VandecappelleBuildroot for Open Mobile

Hacking the device is easy!

Page 16: Buildroot: flexible building of a custom embedded system

Arnout VandecappelleBuildroot for Open Mobile

www.mind.be

www.essensium.com

Essensium NVMind - Embedded Software DivisionGaston Geenslaan 9, B-3001 Leuven

Tel : +32 16-28 65 00Fax : +32 16-28 65 01

email : [email protected]