SlideShare a Scribd company logo
Buildroot Eclipse Bundle : A
powerful IDE for Embedded Linux
developers
Mélanie Bats
www.flickr.com/photos/playdogil/3408511286/
Who Am I ?
http://www.flickr.com/photos/anotherashia/5319361416
What is embedded Linux ?
Linux kernel
Open source
components
Specific
applications
(cc)http://www.flickr.com/photos/kafka4prez/57293210
Building an embedded Linux
system
Building tools
PTXdistOpenWRT
●
Automate system
reconstruction from source
code
●
Support many more CPU
architectures
●
High flexibility on
components configuration
●
Most used solution
Binary distributions
●
Heavyweight systems
●
Not all CPU architectures
supported
●
Not flexible to choose the
configuration for each
components
c) http://www.flickr.com/photos/rpenalozan/5431731224
What is Buildroot  ?
●
Simple build system - http://buildroot.org :
– automate the cross compilation process
– generate kernel images, file system and bootloader
●
Developped by :
– an open source community
– vendor neutral
– under GPLv2
●
Actively developped and used for many products
●
Written in make language
●
Choice of options in configuration interface
(cc)http://www.flickr.com/photos/dierkschaefer/3455423900
Demo hardware platform
●
Fairly typical ARM
evaluation platform
●
Many devices: Screen,
Network, SD card, USB ...
●
Used to develop
prototypes
●
Reference to design
specific board Atmel AT91SAM9G45 (ARMv5) processor
(cc) http://www.flickr.com/photos/zainx/5630952655
Buildroot Demo
m/photos/dierkschaefer/3454606933
Host (PC)
Buildroot
Buildroot generates
Target (ARM)
Toolchain
DirectFB
headers & lib
Openssh
headers & lib
BusyBox
source
DirectFB
source
Openssh
source
Specific
Library
source
Target File System
Kernel Image
Applications
BusyBox
DirectFB
Openssh
Specific
Library
Libc
Pre compiled Toolchain
gcc
gdb
binutils
Libc
gcc
gdb
binutils
Libc
Specific lib headers & lib
Various host
utilities : Pkg-
config...
Kernel
source
InputsOutputs
(cc)http://www.flickr.com/photos/dierkschaefer/3455423900
Why Integrating Buildroot in
Eclipse ?
System developers Application developers
http://www.flickr.com/photos/sontranphotos/6305201837
Why Integrating Buildroot in
Eclipse ?
●
Open source IDE for
Application developers
– Preconfigured with the
cross compilation
toolchain
– Easy access to the libraries
available on the target
– Transfer / Execute remote
application
– Remote Debug
http://www.flickr.com/photos/catcrispi/3095995888
Buildroot toolchain Eclipse plugin
●
Integrate the toolchains to Eclipse CDT
– Read the toolchain description file (/home/<user>/.buildroot-
eclipse.toolchains)
– Register dynamically the toolchains in CDT for :
●
Managed build projects : executable, static library, shared library
●
Autotools projects
●
Makefile projects
http://www.flickr.com/photos/anotherashia/2573601237
Integration with CDT
●
Inspired by the Eclipse Blackfin plugin and the GNU ARM
Eclipse plugin
●
Use CDT extension point : org.eclipse.cdt.managedbuilder.core.buildDefinitions
– according to the Buildroot configuration file:
●
declare toolchains
●
register ProjectTypes
(cc) http://www.flickr.com/photos/jendris/6960151583
Managed build Integration
●
Add the Buildroot toolchains available for:
– Executable project
– Static library project
– Shared library project
●
Contribute to plugin.xml :
<projectType
buildArtefactType="org.eclipse.cdt.build.core.buil
dArtefactType.exe" ...>
Buildroot Launch configurations
●
Provide Remote
configurations :
– Launch configuration :
execute the application on
target
– Remote Debug
configuration : which
point automatically on
the correct cross-
debugger (cc) http://www.flickr.com/photos/ejk/3255860779
Buildroot Eclipse plugin
demonstration
(cc) http://www.flickr.com/photos/buetts/1615300533
Pkg-config ?
●
Applications need other libraries than just the standard
C/C++ library
– Graphical, network, crypto libraries …
●
Manually adding compiler and linker flags is annoying
●
Pkg-config is a standard Linux tool to query the
compiler and linker flags for a given library
$ pkg-config --cflags directfb
-D_REENTRANT -I<...>/sysroot/usr/include/directfb
$ pkg-config --libs directfb
-ldirectfb -lfusion -ldirect -lpthread
(cc) http://www.flickr.com/photos/adamfranco/5116575890
Managed build Integration :
pkg-config plugin
●
Contribute to existing pkg-config plugin :
http://code.google.com/p/pkg-config-support-for-eclipse-cdt/
– Fix bugs on PKG_CONFIG_PATH and pkg-config binary path
– Use the pkg-config environment variables directly on
command
– Move the pkg-config configuration to project-level
– Improve the UI
– Allow a per-toolchain specified pkg-config binary
(cc) http://www.flickr.com/photos/rpenalozan/5240901575
Managed build Integration :
pkg-config plugin
●
Contribute to existing pkg-config plugin :
http://code.google.com/p/pkg-config-support-for-eclipse-cdt/
– Fix bugs on PKG_CONFIG_PATH and pkg-config binary path
– Use the pkg-config environment variables directly on
command
– Move the pkg-config configuration to project-level
– Improve the UI
– Allow a per-toolchain specified pkg-config binary
(cc) http://www.flickr.com/photos/rpenalozan/5240901575
Managed build Integration :
pkg-config plugin
●
Contribute to existing pkg-config plugin :
http://code.google.com/p/pkg-config-support-for-eclipse-cdt/
– Fix bugs on PKG_CONFIG_PATH and pkg-config binary path
– Use the pkg-config environment variables directly on
command
– Move the pkg-config configuration to project-level
– Improve the UI
– Allow a per-toolchain specified pkg-config binary
(cc) http://www.flickr.com/photos/rpenalozan/5240901575
Managed build Integration :
pkg-config plugin
●
Contribute to existing pkg-config plugin :
http://code.google.com/p/pkg-config-support-for-eclipse-cdt/
– Fix bugs on PKG_CONFIG_PATH and pkg-config binary path
– Use the pkg-config environment variables directly on
command
– Move the pkg-config configuration to project-level
– Improve the UI
– Allow a per-toolchain specified pkg-config binary
(cc) http://www.flickr.com/photos/rpenalozan/5240901575
Buildroot pkg-config plugin
demonstration
ww.flickr.com/photos/rpenalozan/5821522384
Autotools ?
●
The most common
configuration and build
system for Linux software
components
●
Composed of autoconf,
automake and libtool
●
Developers write :
– Configure.ac
– Makefile.am
●
Final makefiles generated
by those tools
(cc)http://www.flickr.com/photos/rotia/8082650255
Autotools Integration
●
Autotools plugin already exists in CDT
●
Contribute the cross compiled Buildroot toolchains to
the Autotools in CDT
– Modify autotools.ui :
●
Update the Autotools project creation wizard
●
Update the Autotools specific menus
– Modify autotools.core :
●
Provide a way for toolchains to set a default value for the --host
configure option
(cc) http://www.flickr.com/photos/nukamari/3325435178
Autotools Integration
●
Autotools plugin already exists in CDT
●
Contribute the cross compiled Buildroot toolchains to
the Autotools in CDT
– Modify autotools.ui :
●
Update the Autotools project creation wizard
●
Update the Autotools specific menus
– Modify autotools.core :
●
Provide a way for toolchains to set a default value for the --host
configure option
(cc) http://www.flickr.com/photos/nukamari/3325435178
Buildroot Autotools integration
demonstration
(cc) http://www.flickr.com/photos/dierkschaefer/3454601339
Integration with Makefile
●
Add Buildroot toolchain
to Makefile projects
– Add some environment
variables :
●
PATH
●
CC
●
CXX
Those are typically used in
standard makefiles
(cc) http://www.flickr.com/photos/22425840@N00/2648507349
Buildroot Makefile integration
demonstration
Integration with CDT : Issues
●
V1.0 uses dynamicElementProvider
– Method returning a hierarchy of objects
implementing IManagedConfigElement
– Contributing environment variables through
configurationEnvironmentSupplier requires a
DefaultManagedConfigElement
●
Consequently for V2.0 build dynamically the plugin.xml
– Use startup extension point ;(
– Missing dynamic extension points in CDT ?
●
scanner configuration discovery profile
●
launch configuration
Integration with CDT
Buildroot Eclipse Update-site
●
Update-site integrating embedded Linux tools :
– Buildroot Toolchain Eclipse Plugin
– Pkg-config
– CDT
– Linux tools
– Autotools …
●
Make a Ready-to-Use development platform for
embedded Linux
●
Use Tycho to create update-site
(cc) http://www.flickr.com/photos/kafka4prez/56978610
Availability
●
Buildroot 2013.02 :
http://buildroot.org
●
Buildroot Eclipse plugin sources (EPL licence):
https://github.com/mbats/eclipse-buildroot-toolchain-plugin
●
Buildroot Eclipse bundle sources :
https://github.com/mbats/eclipse-buildroot-bundle
●
Pkg-config Eclipse plugin :
http://code.google.com/p/pkg-config-support-for-eclipse-cdt/
●
Buildroot Eclipse bundle update-site (based on Eclipse
4.2)
(cc) http://www.flickr.com/photos/kaptainkobold/4249636579
Getting started
●
On Github :
https://github.com/mbats/eclipse-buildroot-bundle/wiki/
– Installation details 
– Tutorials
– Bug tracker
●
Give us feedback !
(cc) http://www.flickr.com/photos/emeeelea/2425295021
Future work
●
Contribute Autotools updates to CDT
●
Integrate :
– RX-TX
– LTTNG
– CMake
– Other relevant Eclipse plugins for embedded Linux
development
●
Bug fixes
●
What do you need ?
(cc) http://www.flickr.com/photos/21649179@N00/335649202
Questions ?
Contact :
melanie.bats@obeo.fr
(cc) http://www.flickr.com/photos/blanc-pluvial/5614289320

More Related Content

What's hot

Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014
Opersys inc.
 
yocto_scale_handout-with-notes
yocto_scale_handout-with-notesyocto_scale_handout-with-notes
yocto_scale_handout-with-notes
Steve Arnold
 
Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013
Opersys inc.
 

What's hot (20)

Building Emmbedded Linux with Yocto project
Building Emmbedded Linux with Yocto projectBuilding Emmbedded Linux with Yocto project
Building Emmbedded Linux with Yocto project
 
Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014
 
yocto_scale_handout-with-notes
yocto_scale_handout-with-notesyocto_scale_handout-with-notes
yocto_scale_handout-with-notes
 
Getting Started with EasyBuild - Tutorial Part 2
Getting Started with EasyBuild - Tutorial Part 2Getting Started with EasyBuild - Tutorial Part 2
Getting Started with EasyBuild - Tutorial Part 2
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
The Yocto Project
The Yocto ProjectThe Yocto Project
The Yocto Project
 
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDKYocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
 
Brillo / Weave Internals
Brillo / Weave InternalsBrillo / Weave Internals
Brillo / Weave Internals
 
Creating new Tizen profiles using the Yocto Project
Creating new Tizen profiles  using the Yocto ProjectCreating new Tizen profiles  using the Yocto Project
Creating new Tizen profiles using the Yocto Project
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Android's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALAndroid's HIDL: Treble in the HAL
Android's HIDL: Treble in the HAL
 
Pharo sources in git
Pharo sources in gitPharo sources in git
Pharo sources in git
 
Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013Working with the AOSP - Linaro Connect Asia 2013
Working with the AOSP - Linaro Connect Asia 2013
 
Android Internals at Linaro Connect Asia 2013
Android Internals at Linaro Connect Asia 2013Android Internals at Linaro Connect Asia 2013
Android Internals at Linaro Connect Asia 2013
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things Internals
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Android Variants, Hacks, Tricks and Resources
Android Variants, Hacks, Tricks and ResourcesAndroid Variants, Hacks, Tricks and Resources
Android Variants, Hacks, Tricks and Resources
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 

Viewers also liked

Mod 3 social influence and social change
Mod 3 social influence and social changeMod 3 social influence and social change
Mod 3 social influence and social change
mpape
 
Hydro80 fr-2016-hd1460620251
Hydro80 fr-2016-hd1460620251Hydro80 fr-2016-hd1460620251
Hydro80 fr-2016-hd1460620251
saxhorn2
 

Viewers also liked (20)

El arte de la convivencia
El arte de la convivenciaEl arte de la convivencia
El arte de la convivencia
 
Building Brand Love From the Inside Out
Building Brand Love From the Inside OutBuilding Brand Love From the Inside Out
Building Brand Love From the Inside Out
 
Repaso segundo
Repaso segundoRepaso segundo
Repaso segundo
 
8 concejo para ser un buen estudiante
8 concejo para ser un buen estudiante8 concejo para ser un buen estudiante
8 concejo para ser un buen estudiante
 
Feminist criticism group project
Feminist criticism group projectFeminist criticism group project
Feminist criticism group project
 
Classical and Quantum Interference
Classical and Quantum InterferenceClassical and Quantum Interference
Classical and Quantum Interference
 
Exercício 8º
Exercício 8ºExercício 8º
Exercício 8º
 
День украинского добровольца
День украинского добровольцаДень украинского добровольца
День украинского добровольца
 
Mod 3 social influence and social change
Mod 3 social influence and social changeMod 3 social influence and social change
Mod 3 social influence and social change
 
2da revision portafolio bioquimica
2da revision portafolio bioquimica2da revision portafolio bioquimica
2da revision portafolio bioquimica
 
Lesson: Designing your plan for writing
Lesson: Designing your plan for writingLesson: Designing your plan for writing
Lesson: Designing your plan for writing
 
Murray genesis claymineralsshale
Murray genesis claymineralsshaleMurray genesis claymineralsshale
Murray genesis claymineralsshale
 
C6 1 Introduction to Data Base
C6 1 Introduction to Data BaseC6 1 Introduction to Data Base
C6 1 Introduction to Data Base
 
Lanna y Gema
Lanna y Gema Lanna y Gema
Lanna y Gema
 
base de datos II
base de datos IIbase de datos II
base de datos II
 
GlobalDSL 2013 - Models, Representations, Animations : The Eclipse Sirius Pro...
GlobalDSL 2013 - Models, Representations, Animations : The Eclipse Sirius Pro...GlobalDSL 2013 - Models, Representations, Animations : The Eclipse Sirius Pro...
GlobalDSL 2013 - Models, Representations, Animations : The Eclipse Sirius Pro...
 
Production Design Basics
Production Design BasicsProduction Design Basics
Production Design Basics
 
Fundamentosemetodologiadoensinodematemtica 150329161820-conversion-gate01 (1)
Fundamentosemetodologiadoensinodematemtica 150329161820-conversion-gate01 (1)Fundamentosemetodologiadoensinodematemtica 150329161820-conversion-gate01 (1)
Fundamentosemetodologiadoensinodematemtica 150329161820-conversion-gate01 (1)
 
El Coltan
El ColtanEl Coltan
El Coltan
 
Hydro80 fr-2016-hd1460620251
Hydro80 fr-2016-hd1460620251Hydro80 fr-2016-hd1460620251
Hydro80 fr-2016-hd1460620251
 

Similar to Eclipse Con US 2013 - Buildroot Eclipse Bundle : A powerful IDE for Embedded Linux developers

EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
melbats
 

Similar to Eclipse Con US 2013 - Buildroot Eclipse Bundle : A powerful IDE for Embedded Linux developers (20)

EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems
 
Yocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux DistributionYocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux Distribution
 
Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018Embedded Linux Build Systems - Texas Linux Fest 2018
Embedded Linux Build Systems - Texas Linux Fest 2018
 
IoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSesIoT: Contrasting Yocto/Buildroot to binary OSes
IoT: Contrasting Yocto/Buildroot to binary OSes
 
New Perl module Container::Buildah - SVPerl presentation
New Perl module Container::Buildah - SVPerl presentationNew Perl module Container::Buildah - SVPerl presentation
New Perl module Container::Buildah - SVPerl presentation
 
Embedded Linux - Building toolchain
Embedded Linux - Building toolchainEmbedded Linux - Building toolchain
Embedded Linux - Building toolchain
 
Blt introduction
Blt  introductionBlt  introduction
Blt introduction
 
The Android Build System - Android Marshmallow
The Android Build System - Android MarshmallowThe Android Build System - Android Marshmallow
The Android Build System - Android Marshmallow
 
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...
 
Symfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim RomanovskySymfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim Romanovsky
 
A practical guide to buildroot
A practical guide to buildrootA practical guide to buildroot
A practical guide to buildroot
 
Making your app soar without a container manifest
Making your app soar without a container manifestMaking your app soar without a container manifest
Making your app soar without a container manifest
 
Embedded Linux primer
Embedded Linux primerEmbedded Linux primer
Embedded Linux primer
 
Buildroot easy embedded system
Buildroot easy embedded systemBuildroot easy embedded system
Buildroot easy embedded system
 
Eclipse IDE Yocto Plugin
Eclipse IDE Yocto PluginEclipse IDE Yocto Plugin
Eclipse IDE Yocto Plugin
 
Developing new zynq based instruments
Developing new zynq based instrumentsDeveloping new zynq based instruments
Developing new zynq based instruments
 
Rejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform GainRejekts 24 EU No GitOps Pain, No Platform Gain
Rejekts 24 EU No GitOps Pain, No Platform Gain
 
Build your apps everywhere with Lightning Web Components Open Source, Fabien ...
Build your apps everywhere with Lightning Web Components Open Source, Fabien ...Build your apps everywhere with Lightning Web Components Open Source, Fabien ...
Build your apps everywhere with Lightning Web Components Open Source, Fabien ...
 
BeagleBone Black with Upstream Software
BeagleBone Black with Upstream SoftwareBeagleBone Black with Upstream Software
BeagleBone Black with Upstream Software
 

More from melbats

ECMFA 2018 - Keynote : The future of modeling tools
ECMFA 2018 - Keynote : The future of modeling toolsECMFA 2018 - Keynote : The future of modeling tools
ECMFA 2018 - Keynote : The future of modeling tools
melbats
 
EclipseCon EU 2017 - All about UX in Sirius
EclipseCon EU 2017 - All about UX in SiriusEclipseCon EU 2017 - All about UX in Sirius
EclipseCon EU 2017 - All about UX in Sirius
melbats
 
EclipseCon France 2017 - All about UX in Sirius
EclipseCon France 2017 - All about UX in SiriusEclipseCon France 2017 - All about UX in Sirius
EclipseCon France 2017 - All about UX in Sirius
melbats
 
EclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbenchEclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbench
melbats
 

More from melbats (20)

SiriusCon 2020 - Sirius to the Web with Obeo Cloud Platform
SiriusCon 2020 - Sirius to the Web with Obeo Cloud PlatformSiriusCon 2020 - Sirius to the Web with Obeo Cloud Platform
SiriusCon 2020 - Sirius to the Web with Obeo Cloud Platform
 
Sirius Web, simplifier l'édition graphique de données dans le web
Sirius Web, simplifier l'édition graphique de données dans le webSirius Web, simplifier l'édition graphique de données dans le web
Sirius Web, simplifier l'édition graphique de données dans le web
 
SiriusCon 2021 - Keynote
SiriusCon 2021 - KeynoteSiriusCon 2021 - Keynote
SiriusCon 2021 - Keynote
 
EclipseCon21 - Alice's Adventures in Sirius Web Land!
EclipseCon21 - Alice's Adventures in Sirius Web Land!EclipseCon21 - Alice's Adventures in Sirius Web Land!
EclipseCon21 - Alice's Adventures in Sirius Web Land!
 
EclipseConEU 2019 - Your cloud-based modeling workbench in 15 minutes with Ec...
EclipseConEU 2019 - Your cloud-based modeling workbench in 15 minutes with Ec...EclipseConEU 2019 - Your cloud-based modeling workbench in 15 minutes with Ec...
EclipseConEU 2019 - Your cloud-based modeling workbench in 15 minutes with Ec...
 
ECMFA 2018 - Keynote : The future of modeling tools
ECMFA 2018 - Keynote : The future of modeling toolsECMFA 2018 - Keynote : The future of modeling tools
ECMFA 2018 - Keynote : The future of modeling tools
 
EclipseCon Fr 2018 - Modeling tools go up to the cloud…
EclipseCon Fr 2018 - Modeling tools go up to the cloud…EclipseCon Fr 2018 - Modeling tools go up to the cloud…
EclipseCon Fr 2018 - Modeling tools go up to the cloud…
 
EclipseCon Fr 2018 - The future of development tooling: The example of Eclips...
EclipseCon Fr 2018 - The future of development tooling: The example of Eclips...EclipseCon Fr 2018 - The future of development tooling: The example of Eclips...
EclipseCon Fr 2018 - The future of development tooling: The example of Eclips...
 
CheConf 2018 - Building Extensibility and Community for Che
CheConf 2018 - Building Extensibility and Community for CheCheConf 2018 - Building Extensibility and Community for Che
CheConf 2018 - Building Extensibility and Community for Che
 
SiriusCon 2017 - Sirius Roadmap
SiriusCon 2017 - Sirius RoadmapSiriusCon 2017 - Sirius Roadmap
SiriusCon 2017 - Sirius Roadmap
 
Devoxx Be 2017 - Let it go! or How to become a free software developer?
Devoxx Be 2017 - Let it go! or How to become a free software developer?Devoxx Be 2017 - Let it go! or How to become a free software developer?
Devoxx Be 2017 - Let it go! or How to become a free software developer?
 
EclipseCon EU 2017 - All about UX in Sirius
EclipseCon EU 2017 - All about UX in SiriusEclipseCon EU 2017 - All about UX in Sirius
EclipseCon EU 2017 - All about UX in Sirius
 
EclipseCon EU 2017 - Sirius
EclipseCon EU 2017 - SiriusEclipseCon EU 2017 - Sirius
EclipseCon EU 2017 - Sirius
 
DevFest 2017 - Libérée! Délivrée! ou Comment devenir développeuse open source ?
DevFest 2017 - Libérée! Délivrée! ou Comment devenir développeuse open source ?DevFest 2017 - Libérée! Délivrée! ou Comment devenir développeuse open source ?
DevFest 2017 - Libérée! Délivrée! ou Comment devenir développeuse open source ?
 
EclipseCon France 2017 - All about UX in Sirius
EclipseCon France 2017 - All about UX in SiriusEclipseCon France 2017 - All about UX in Sirius
EclipseCon France 2017 - All about UX in Sirius
 
Eclipse Democamp Nantes 2017 - Back to the Future: EclipseConverge & Devoxx US
Eclipse Democamp Nantes 2017 - Back to the Future: EclipseConverge & Devoxx USEclipse Democamp Nantes 2017 - Back to the Future: EclipseConverge & Devoxx US
Eclipse Democamp Nantes 2017 - Back to the Future: EclipseConverge & Devoxx US
 
ETR2013 - Obeo Designer/Sirius
ETR2013 - Obeo Designer/SiriusETR2013 - Obeo Designer/Sirius
ETR2013 - Obeo Designer/Sirius
 
EclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbenchEclipseCon Eu 2012 - Build your own System Engineering workbench
EclipseCon Eu 2012 - Build your own System Engineering workbench
 
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling SocietyEclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
 
SiriusCon2016 - Let me Sirius that for you: Properties Views
SiriusCon2016 - Let me Sirius that for you: Properties ViewsSiriusCon2016 - Let me Sirius that for you: Properties Views
SiriusCon2016 - Let me Sirius that for you: Properties Views
 

Recently uploaded

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
mbmh111980
 

Recently uploaded (20)

Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
GraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysisGraphAware - Transforming policing with graph-based intelligence analysis
GraphAware - Transforming policing with graph-based intelligence analysis
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
Benefits of Employee Monitoring Software
Benefits of  Employee Monitoring SoftwareBenefits of  Employee Monitoring Software
Benefits of Employee Monitoring Software
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 

Eclipse Con US 2013 - Buildroot Eclipse Bundle : A powerful IDE for Embedded Linux developers

  • 1. Buildroot Eclipse Bundle : A powerful IDE for Embedded Linux developers Mélanie Bats www.flickr.com/photos/playdogil/3408511286/
  • 3. What is embedded Linux ? Linux kernel Open source components Specific applications (cc)http://www.flickr.com/photos/kafka4prez/57293210
  • 4. Building an embedded Linux system Building tools PTXdistOpenWRT ● Automate system reconstruction from source code ● Support many more CPU architectures ● High flexibility on components configuration ● Most used solution Binary distributions ● Heavyweight systems ● Not all CPU architectures supported ● Not flexible to choose the configuration for each components c) http://www.flickr.com/photos/rpenalozan/5431731224
  • 5. What is Buildroot  ? ● Simple build system - http://buildroot.org : – automate the cross compilation process – generate kernel images, file system and bootloader ● Developped by : – an open source community – vendor neutral – under GPLv2 ● Actively developped and used for many products ● Written in make language ● Choice of options in configuration interface (cc)http://www.flickr.com/photos/dierkschaefer/3455423900
  • 6. Demo hardware platform ● Fairly typical ARM evaluation platform ● Many devices: Screen, Network, SD card, USB ... ● Used to develop prototypes ● Reference to design specific board Atmel AT91SAM9G45 (ARMv5) processor (cc) http://www.flickr.com/photos/zainx/5630952655
  • 8. Host (PC) Buildroot Buildroot generates Target (ARM) Toolchain DirectFB headers & lib Openssh headers & lib BusyBox source DirectFB source Openssh source Specific Library source Target File System Kernel Image Applications BusyBox DirectFB Openssh Specific Library Libc Pre compiled Toolchain gcc gdb binutils Libc gcc gdb binutils Libc Specific lib headers & lib Various host utilities : Pkg- config... Kernel source InputsOutputs (cc)http://www.flickr.com/photos/dierkschaefer/3455423900
  • 9. Why Integrating Buildroot in Eclipse ? System developers Application developers http://www.flickr.com/photos/sontranphotos/6305201837
  • 10. Why Integrating Buildroot in Eclipse ? ● Open source IDE for Application developers – Preconfigured with the cross compilation toolchain – Easy access to the libraries available on the target – Transfer / Execute remote application – Remote Debug http://www.flickr.com/photos/catcrispi/3095995888
  • 11. Buildroot toolchain Eclipse plugin ● Integrate the toolchains to Eclipse CDT – Read the toolchain description file (/home/<user>/.buildroot- eclipse.toolchains) – Register dynamically the toolchains in CDT for : ● Managed build projects : executable, static library, shared library ● Autotools projects ● Makefile projects http://www.flickr.com/photos/anotherashia/2573601237
  • 12. Integration with CDT ● Inspired by the Eclipse Blackfin plugin and the GNU ARM Eclipse plugin ● Use CDT extension point : org.eclipse.cdt.managedbuilder.core.buildDefinitions – according to the Buildroot configuration file: ● declare toolchains ● register ProjectTypes (cc) http://www.flickr.com/photos/jendris/6960151583
  • 13. Managed build Integration ● Add the Buildroot toolchains available for: – Executable project – Static library project – Shared library project ● Contribute to plugin.xml : <projectType buildArtefactType="org.eclipse.cdt.build.core.buil dArtefactType.exe" ...>
  • 14. Buildroot Launch configurations ● Provide Remote configurations : – Launch configuration : execute the application on target – Remote Debug configuration : which point automatically on the correct cross- debugger (cc) http://www.flickr.com/photos/ejk/3255860779
  • 15. Buildroot Eclipse plugin demonstration (cc) http://www.flickr.com/photos/buetts/1615300533
  • 16. Pkg-config ? ● Applications need other libraries than just the standard C/C++ library – Graphical, network, crypto libraries … ● Manually adding compiler and linker flags is annoying ● Pkg-config is a standard Linux tool to query the compiler and linker flags for a given library $ pkg-config --cflags directfb -D_REENTRANT -I<...>/sysroot/usr/include/directfb $ pkg-config --libs directfb -ldirectfb -lfusion -ldirect -lpthread (cc) http://www.flickr.com/photos/adamfranco/5116575890
  • 17. Managed build Integration : pkg-config plugin ● Contribute to existing pkg-config plugin : http://code.google.com/p/pkg-config-support-for-eclipse-cdt/ – Fix bugs on PKG_CONFIG_PATH and pkg-config binary path – Use the pkg-config environment variables directly on command – Move the pkg-config configuration to project-level – Improve the UI – Allow a per-toolchain specified pkg-config binary (cc) http://www.flickr.com/photos/rpenalozan/5240901575
  • 18. Managed build Integration : pkg-config plugin ● Contribute to existing pkg-config plugin : http://code.google.com/p/pkg-config-support-for-eclipse-cdt/ – Fix bugs on PKG_CONFIG_PATH and pkg-config binary path – Use the pkg-config environment variables directly on command – Move the pkg-config configuration to project-level – Improve the UI – Allow a per-toolchain specified pkg-config binary (cc) http://www.flickr.com/photos/rpenalozan/5240901575
  • 19. Managed build Integration : pkg-config plugin ● Contribute to existing pkg-config plugin : http://code.google.com/p/pkg-config-support-for-eclipse-cdt/ – Fix bugs on PKG_CONFIG_PATH and pkg-config binary path – Use the pkg-config environment variables directly on command – Move the pkg-config configuration to project-level – Improve the UI – Allow a per-toolchain specified pkg-config binary (cc) http://www.flickr.com/photos/rpenalozan/5240901575
  • 20. Managed build Integration : pkg-config plugin ● Contribute to existing pkg-config plugin : http://code.google.com/p/pkg-config-support-for-eclipse-cdt/ – Fix bugs on PKG_CONFIG_PATH and pkg-config binary path – Use the pkg-config environment variables directly on command – Move the pkg-config configuration to project-level – Improve the UI – Allow a per-toolchain specified pkg-config binary (cc) http://www.flickr.com/photos/rpenalozan/5240901575
  • 22. Autotools ? ● The most common configuration and build system for Linux software components ● Composed of autoconf, automake and libtool ● Developers write : – Configure.ac – Makefile.am ● Final makefiles generated by those tools (cc)http://www.flickr.com/photos/rotia/8082650255
  • 23. Autotools Integration ● Autotools plugin already exists in CDT ● Contribute the cross compiled Buildroot toolchains to the Autotools in CDT – Modify autotools.ui : ● Update the Autotools project creation wizard ● Update the Autotools specific menus – Modify autotools.core : ● Provide a way for toolchains to set a default value for the --host configure option (cc) http://www.flickr.com/photos/nukamari/3325435178
  • 24. Autotools Integration ● Autotools plugin already exists in CDT ● Contribute the cross compiled Buildroot toolchains to the Autotools in CDT – Modify autotools.ui : ● Update the Autotools project creation wizard ● Update the Autotools specific menus – Modify autotools.core : ● Provide a way for toolchains to set a default value for the --host configure option (cc) http://www.flickr.com/photos/nukamari/3325435178
  • 25. Buildroot Autotools integration demonstration (cc) http://www.flickr.com/photos/dierkschaefer/3454601339
  • 26. Integration with Makefile ● Add Buildroot toolchain to Makefile projects – Add some environment variables : ● PATH ● CC ● CXX Those are typically used in standard makefiles (cc) http://www.flickr.com/photos/22425840@N00/2648507349
  • 28. Integration with CDT : Issues ● V1.0 uses dynamicElementProvider – Method returning a hierarchy of objects implementing IManagedConfigElement – Contributing environment variables through configurationEnvironmentSupplier requires a DefaultManagedConfigElement ● Consequently for V2.0 build dynamically the plugin.xml – Use startup extension point ;( – Missing dynamic extension points in CDT ? ● scanner configuration discovery profile ● launch configuration
  • 30. Buildroot Eclipse Update-site ● Update-site integrating embedded Linux tools : – Buildroot Toolchain Eclipse Plugin – Pkg-config – CDT – Linux tools – Autotools … ● Make a Ready-to-Use development platform for embedded Linux ● Use Tycho to create update-site (cc) http://www.flickr.com/photos/kafka4prez/56978610
  • 31. Availability ● Buildroot 2013.02 : http://buildroot.org ● Buildroot Eclipse plugin sources (EPL licence): https://github.com/mbats/eclipse-buildroot-toolchain-plugin ● Buildroot Eclipse bundle sources : https://github.com/mbats/eclipse-buildroot-bundle ● Pkg-config Eclipse plugin : http://code.google.com/p/pkg-config-support-for-eclipse-cdt/ ● Buildroot Eclipse bundle update-site (based on Eclipse 4.2) (cc) http://www.flickr.com/photos/kaptainkobold/4249636579
  • 32. Getting started ● On Github : https://github.com/mbats/eclipse-buildroot-bundle/wiki/ – Installation details  – Tutorials – Bug tracker ● Give us feedback ! (cc) http://www.flickr.com/photos/emeeelea/2425295021
  • 33. Future work ● Contribute Autotools updates to CDT ● Integrate : – RX-TX – LTTNG – CMake – Other relevant Eclipse plugins for embedded Linux development ● Bug fixes ● What do you need ? (cc) http://www.flickr.com/photos/21649179@N00/335649202