CE Workgroup Shared Embedded Linux Distribution Project

Size: px
Start display at page:

Download "CE Workgroup Shared Embedded Linux Distribution Project"

Transcription

1 CE Workgroup Shared Embedded Linux Distribution Project Yoshitake Kobayashi CE Workgroup, the Linux Foundation (Toshiba Corporation) Embedded Linux Conference Europe Oct, CE Workgroup, the Linux Foundation

2 Overview Introduction of CE Workgroup Introduction of Shared Embedded Linux Distribution Project 2

3 CE Workgroup Introduction of CE Workgroup The Linux Foundation 3 Copyright 2015, CE Workgroup, the Linux Foundation

4 Role of CEWG CE Workgroup Bridge between OSS (like Linux) developer communities and embedded system industry who wish to collaborate with those communities. Building the relation of trust and co-creation is so essential to realize the value of OSS However it is so difficult achieving such ideal relationship solely by any company because of the diversified, groval and huge scale of the active OSS communities CEWG is a community of people who belong to the industry that wish to become a citizen of grater OSS communities and perform co-creation of innovative software 4 Copyright 2015, CE Workgroup, the Linux Foundation

5 Industry domain CE Workgroup (Past) CEWG worked mainly for consumer electronics industry Through more than 10 years activities many technological challenges of OSS development went well and recently OSS is commonly used in CE industry (Now) CEWG extending the industry domain not only for consumer electronics but also for industrial appliances, medical equipment, transportation/traffic control system and more wider embedded system industry domain We are aiming at the wider use and collaboration of OSS for embedded systems CEWG will bridge to the OSS community and the unique technological challenges in each industry domain 5 Copyright 2015, CE Workgroup, the Linux Foundation

6 Governance Structure of CEWG CE Workgroup Steering Committee election approve Steering Committee Decide the budget, community supporting program and more Architecture Group Members Projects participation select Architecture Group Discussion board of the OSS technologies for the embedded systems Open Project candidates are selected by this group CEWG Projects Open Projects 6 Copyright 2015, CE Workgroup, the Linux Foundation

7 Activities of CEWG (elinux Wiki) CE Workgroup You will find bunch of precious technological information in the elinux Wiki CEWG supports for the site It is the technological information portal of OSS for embedded system developers 7 Copyright 2015, CE Workgroup, the Linux Foundation

8 Activities of CEWG (Linux, Long term support) CE Workgroup An extended support program based on industry requirement (Long Term Support Initiative) is carried out together with the Linux community Generally Linux community terminate supporting Linux when the next to next version released (it is about 5 month). It had been a great headache for the industry people who require the longer term support. The initiative pick up one release of Linux annually and extend the support term to 2 years The automated test environment have also been prepared and we are aiming at more sophisticated quality 8 Copyright 2015, CE Workgroup, the Linux Foundation

9 Activities of CEWG (Open Project) CE Workgroup CEWG Open Project is a open community funding program to reinforce the OSS development which worth for embedded system developers For example, we have funded a project up-streaming development result of Android to the original OSS development communities such as Linux community Solicit the project open to everyone The Architecture Group of CEWG select the solicited projects. Based on the Steering Committee approval, the funding will be carried out Some example of past projects Device tree documentation, Linux-tiny, DirectFB enhancement, Squashfs 9 Copyright 2015, CE Workgroup, the Linux Foundation

10 Activities of CEWG (CEWG Project) CE Workgroup CEWG Project aim to study and to solve issues on embedded system Linux in Civil Infrastructure ( was called Social Infrastructure ) Goals: Solve problems with Linux for use in civil infrastructure systems Status: Project scope presented at ELC 2015 and LinuxCon Japan 2015 Shared Embedded Distribution Goals: Create an industry-supported distribution of embedded Linux and provide support for long term Status: Created an Yocto layer by using Debian source code Presented at ELC, LCJ and ELCE Device Mainlining Goals: Study obstacles to mainlining, and work to reduce obstacles Status: SIG meetings at ELCE and ELC Presentations about overcoming obstacles at ELCE 2014, ELC 2015, and LCJ 2015 White paper (published at LCJ June 2015) 10 Copyright 2015, CE Workgroup, the Linux Foundation

11 Introduction of Shared Embedded Distribution For more information about this project Shared Embedded Linux Distribution CE Workgroup Linux Foundation 13

12 Motivation Linux is running on many kind of embedded systems Including the systems in civil infrastructure Things to be considered to choose a base distribution The number of supported packages Package versions Supported hardware Stability, number of bugs were fixed The frequency of security updates and supported timespan How to compile and customize packages 14

13 In our case What we want to do Make custom embedded Linux environments What we need Wider hardware support Stability Well tested packages are required Many embedded developer are still want to use stable version Long-term support Over 15 years support required, especially for security fixes (This is what we would like to contribute something) Fully customizable build system 15

14 Our solution Yocto Project "poky" One of the most popular reference distributions for embedded Linux Fully customizable build system Supports numerous embedded boards including modern ones Can be extended by meta-layer Debian GNU/Linux Support many kind of CPUs: x86, ARM, PowerPC, MIPS (32bit/64bit) Release a stable version after two years of testing Long-term support for 5 years by Debian-LTS project meta-debian 16

15 What is meta-debian? A meta layer for the Poky build system Main feature Allows cross-building Linux images using Debian source packages Implemented as an independent "layer" Completely separated from OpenEmbedded-Core and other layers Source code: 17

16 Build system structure (poky) Upstream source code Fetch poky build system meta (OpenEmbedded-Core) Board-specific metadata A B C Build A B C 18

17 Build system structure (poky + meta-debian) Upstream source code Debian source packages poky build system meta-debian meta (OpenEmbedded-Core) Board-specific metadata A B C Fetch Build A B C 19

18 Target versions of meta-debian Upstream source code Debian source packages Debian 8.0 jessie poky build system meta-debian Yocto Project 1.6 daisy meta (OpenEmbedded-Core) Board-specific metadata A B C Fetch Build A B C 20

19 Purpose of meta-debian Create embedded Linux environments with Wide embedded CPU support Stability Long-term support Fully customizable build system Provide a common place for developers having the same needs Contribute to upstream (Debian and Yocto Project) Especially for the Debian LTS project With Debian stable release + LTS With poky build system 21

20 Quick start 1. Download the build tools 2. Setup build directory 3. Build minimal Linux image 4. Run minimal Linux image on QEMU See also meta-debian/readme 22

21 Download build tools Download poky $ git clone git://git.yoctoproject.org/poky.git $ cd poky $ git checkout daisy Download meta-debian into the poky directory $ cd poky $ git clone $ cd meta-debian $ git checkout daisy meta-debian specific step 23

22 Setup build directory Change the default configuration Enable meta-debian layer Enable "debian" distro (DISTRO = "debian") The default target machine is "qemux86" (MACHINE = "qemux86") TEMPLATECONF is used by oe-init-build-env script $ export TEMPLATECONF=meta-debian/conf Run startup script This setup a build directory and environment variables automatically (builddir): name of build directory (optional) $ source /path/to/poky/oe-init-build-env (builddir) 24

23 Build minimal Linux image Run bitbake $ bitbake core-image-minimal Built images (case of qemux86) Output directly /path/to/builddir/tmp/deploy/images/qemux86 Kernel bzimage-qemux86.bin Root filesystem core-image-minimal-qemux86.ext3 core-image-minimal-qemux86.tar.gz 25

24 Run minimal Linux image on QEMU Run built images on QEMU environment qemux86 $ runqemu qemux86 nographic bootparams="init=/init root=/dev/sda" qemux86-64 $ runqemu qemux86-64 nographic bootparams="init=/init root=/dev/sda" qemuarm $ runqemu qemuarm nographic bootparams="init=/init console=ttyama0" qemuppc $ runqemu qemuppc nographic bootparams="init=/init" 26

25 How should we create recipe files? We need to create new recipes for Debian sources How? poky build system meta (OpenEmbedded-Core) recipe A recipe B recipe C recipe D Possible solutions Method 1: Modify OE-Core recipes directly Method 2: Add recipes into a new layer 27

26 Method 1: Modify OE-Core recipes We already tried this way previously,but Not the ideal solution Original OE-Core recipes are no longer available (Modified) Just a fork It becomes hard to catch up with the newest poky versions Difficult to convince other people to join our effort poky build system Modify directly meta (OpenEmbedded-Core) recipe A recipe B recipe C recipe D 28

27 Method 2: Add recipes into a new layer our solution The best way to add new recipes for specific purposes Original OE-Core recipes are still there Can be developed independently of OE-Core Enable / disable the layer easily like a module poky build system New layer meta-debian recipe A recipe B recipe C recipe X meta (OpenEmbedded-Core) recipe A recipe B recipe C recipe D 29

28 How should we create recipes in a layer? From scratch? Often takes time! Why? Need to create patches for supporting cross-build in poky We should follow the existing OE-Core recipes How? poky build system meta-debian recipe A recipe B recipe C recipe X How to follow? meta (OpenEmbedded-Core) recipe A recipe B recipe C recipe D 30

29 Method 1: "Include" OE-Core recipes Method 2: Use a part of OE-Core recipes 31

30 Method 1: "Include" OE-Core recipes We used to use this method before Unsuitable for our case Difficult to override some variables and functions Ex: already appended (_append) or prepended (_prepend) data Automatically follow "unneeded" OE-Core updates against our will Ex: Shown in the next slides poky build system 2. Override meta-debian recipe A recipe B recipe C recipe X meta (OpenEmbedded-Core) 1. Include recipe A recipe B recipe C recipe D 32

31 Method 1: "Include" OE-Core recipes binutils openssl binutils binutils CVE patches poky build system meta-debian openssl meta (OpenEmbedded-Core) openssl patches 33

32 Method 1: "Include" OE-Core recipes binutils Security patches applied twice openssl Difficult to maintain Target version was upgraded, and patches also upgraded Some upgraded patches conflict with Debian source poky build system meta-debian binutils openssl CVE conflict patches conflict meta (OpenEmbedded-Core) added Upgraded binutils openssl CVE patches patches 34

33 Method 1: "Include" OE-Core recipes binutils Security patches applied twice openssl Target version was upgraded Some upgraded patches conflict with Debian source Difficult to maintain poky build system Each recipe should create meta-debian for relative source code one binutils by one openssl CVE conflict patches conflict meta (OpenEmbedded-Core) added Upgraded binutils openssl CVE patches patches 35

34 Method 2: Use a part of OE-Core recipes Try to create recipes from scratch using Debian source packages Re-use the essential data from OE-Core patches, variables, functions for supporting cross-build our solution poky build system meta-debian recipe A recipe B recipe C recipe X meta (OpenEmbedded-Core) Partially copy recipe A recipe B recipe C patches variables functions recipe D 36

35 How should we implement recipes? LICENSE information Required files Source code initscripts, configs Patches Configure commands & options Compile commands & options How to installed files How to make the package file Package dependencies Recipe The following slide describes: Method 1: just re-use OE-Core recipes Method 2: Follow Debian s packaging 37

36 Method 1: re-use OE-Core (not a good solution) LICENSE information Required files Source code Debian initscripts, configs Patches Configure commands & options Compile commands & options Installed files and paths How to package files Dependencies between others OE-Core based Debian source Recipe files Build 38

37 Method 1: re-use OE-Core (not a good solution) LICENSE information Required files Source code Debian initscripts, configs Patches Configure commands & options Compile commands & options Installed files and paths How to package files Dependencies between others WHO IS THIS? OE-Core based Debian? poky? Debian source Recipe files Build 39

38 Method 1: re-use OE-Core (not a good solution) Bad results: conflicts of two distributions Compile fails Cause: missing configure options that Debian source requires Some programs fail to call commands or load data file Cause: installation paths differ from Debian s Cannot be used like Debian We should define some development "policy" for creating recipes 40

39 Policies for creating recipes our solution By default, follow Debian s packaging i.e. debian/rules For getting good affinity with Debian sources Customize for embedded system if necessary Disable features Remove dependencies Re-use only essential data from OE-Core for supporting cross-compile See "Method 2: Re-use OE-Core recipes" 41

40 Method 2: Follow Debian s packaging our solution LICENSE information Required files Source code initscripts, configs Patches Debian Configure commands & options Compile commands & options Installed files and paths How to package files OE-Core based Dependencies between others debian/rules Debian-based Debian source Recipe files Build Customize for embedded 42

41 How to create recipes (Sample: zlib) PR = "r0" inherit debian-package LICENSE = "Zlib" LIC_FILES_CHKSUM = "file://zlib.h;beginline=4;endline=23;md5=fde612df1e5933c428b73844a0c494fd" SRC_URI += "file://remove.ldconfig.call.patch" do_configure() {./configure --shared --prefix=${prefix} --libdir=${libdir} } do_compile () { oe_runmake } do_install() { oe_runmake DESTDIR=${D} install } do_install_append_class-target() { mkdir -p ${D}/${base_libdir} mv ${D}/${libdir}/libz.so.* ${D}/${base_libdir} tmp=`readlink ${D}/${libdir}/libz.so` ln -sf../../${base_libdir}/$tmp ${D}/${libdir}/libz.so } DEBIANNAME_${PN}-dbg = "${PN}1g-dbg" DEBIANNAME_${PN}-staticdev = "${PN}1g-staticdev" DEBIANNAME_${PN}-dev = "${PN}1g-dev" DEBIANNAME_${PN}-doc = "${PN}1g-doc" DEBIANNAME_${PN} = "${PN}1g" meta-debian/recipe-debian/zlib/zlib_debian.bb 43

42 Step1: Add recipe revision PR = "r0" inherit debian-package Define recipe revision: ${PR} LICENSE = "Zlib" LIC_FILES_CHKSUM = Increment every update "file://zlib.h;beginline=4;endline=23;md5=fde612df1e5933c428b73844a0c494fd" SRC_URI += "file://remove.ldconfig.call.patch" do_configure() {./configure --shared --prefix=${prefix} --libdir=${libdir} } do_compile () { oe_runmake } do_install() { oe_runmake DESTDIR=${D} install } do_install_append_class-target() { mkdir -p ${D}/${base_libdir} mv ${D}/${libdir}/libz.so.* ${D}/${base_libdir} tmp=`readlink ${D}/${libdir}/libz.so` ln -sf../../${base_libdir}/$tmp ${D}/${libdir}/libz.so } DEBIANNAME_${PN}-dbg = "${PN}1g-dbg" DEBIANNAME_${PN}-staticdev = "${PN}1g-staticdev" DEBIANNAME_${PN}-dev = "${PN}1g-dev" DEBIANNAME_${PN}-doc = "${PN}1g-doc" DEBIANNAME_${PN} = "${PN}1g" 44

43 Step2: Inherit debian-package.bbclass PR = "r0" inherit debian-package LICENSE = "Zlib" LIC_FILES_CHKSUM = "file://zlib.h;beginline=4;endline=23;md5=fde612df1e5933c428b73844a0c494fd" SRC_URI += "file://remove.ldconfig.call.patch" Debian based Setup Debian source package Define SRC_URI Apply Debian s patches (do_debian_patch) do_configure() {./configure --shared --prefix=${prefix} --libdir=${libdir} } do_compile () { oe_runmake } do_install() { oe_runmake DESTDIR=${D} install } do_install_append_class-target() { mkdir -p ${D}/${base_libdir} mv ${D}/${libdir}/libz.so.* ${D}/${base_libdir} tmp=`readlink ${D}/${libdir}/libz.so` ln -sf../../${base_libdir}/$tmp ${D}/${libdir}/libz.so } DEBIANNAME_${PN}-dbg = "${PN}1g-dbg" DEBIANNAME_${PN}-staticdev = "${PN}1g-staticdev" DEBIANNAME_${PN}-dev = "${PN}1g-dev" DEBIANNAME_${PN}-doc = "${PN}1g-doc" DEBIANNAME_${PN} = "${PN}1g" 45

44 Step3: Add license information PR = "r0" inherit debian-package LICENSE = "Zlib" LIC_FILES_CHKSUM = "file://zlib.h;beginline=4;endline=23;md5=fde612df1e5933c428b73844a0c494fd" SRC_URI += "file://remove.ldconfig.call.patch" do_configure() {./configure --shared --prefix=${prefix} --libdir=${libdir} } do_compile () { oe_runmake } do_install() { oe_runmake DESTDIR=${D} install } do_install_append_class-target() { mkdir -p ${D}/${base_libdir} mv ${D}/${libdir}/libz.so.* ${D}/${base_libdir} tmp=`readlink ${D}/${libdir}/libz.so` ln -sf../../${base_libdir}/$tmp ${D}/${libdir}/libz.so } LICENSE: License name Common license names are found in meta/files/common-licenses LIC_FILES_CHKSUM: Checksum of the license text Usually found in COPYING, LICENSE, or header of source files (.c,.h) DEBIANNAME_${PN}-dbg = "${PN}1g-dbg" DEBIANNAME_${PN}-staticdev = "${PN}1g-staticdev" DEBIANNAME_${PN}-dev = "${PN}1g-dev" DEBIANNAME_${PN}-doc = "${PN}1g-doc" DEBIANNAME_${PN} = "${PN}1g" 46

45 Step4: Append patches PR = "r0" inherit debian-package LICENSE = "Zlib" LIC_FILES_CHKSUM = "file://zlib.h;beginline=4;endline=23;md5=fde612df1e5933c428b73844a0c494fd" SRC_URI += "file://remove.ldconfig.call.patch" do_configure() {./configure --shared --prefix=${prefix} --libdir=${libdir} } Add patches into SRC_URI do_compile () { oe_runmake } do_install() { oe_runmake DESTDIR=${D} install } do_install_append_class-target() { mkdir -p ${D}/${base_libdir} mv ${D}/${libdir}/libz.so.* ${D}/${base_libdir} tmp=`readlink ${D}/${libdir}/libz.so` ln -sf../../${base_libdir}/$tmp ${D}/${libdir}/libz.so } Necessary for being built in cross-compile environment Copied from OE-Core (or create it from scratch) DEBIANNAME_${PN}-dbg = "${PN}1g-dbg" DEBIANNAME_${PN}-staticdev = "${PN}1g-staticdev" DEBIANNAME_${PN}-dev = "${PN}1g-dev" DEBIANNAME_${PN}-doc = "${PN}1g-doc" DEBIANNAME_${PN} = "${PN}1g" OE-Core based 47

46 Step5: Define configure options PR = "r0" inherit debian-package LICENSE = "Zlib" LIC_FILES_CHKSUM = "file://zlib.h;beginline=4;endline=23;md5=fde612df1e5933c428b73844a0c494fd" SRC_URI += "file://remove.ldconfig.call.patch" do_configure() {./configure --shared --prefix=${prefix} --libdir=${libdir} } do_compile () { oe_runmake } do_install() { Define configure commands oe_runmake DESTDIR=${D} install The same options as debian/rules } do_install_append_class-target() { } Some features should be disabled for embedded mkdir -p ${D}/${base_libdir} mv ${D}/${libdir}/libz.so.* ${D}/${base_libdir} tmp=`readlink ${D}/${libdir}/libz.so` ln -sf../../${base_libdir}/$tmp ${D}/${libdir}/libz.so DEBIANNAME_${PN}-dbg = "${PN}1g-dbg" DEBIANNAME_${PN}-staticdev = "${PN}1g-staticdev" DEBIANNAME_${PN}-dev = "${PN}1g-dev" DEBIANNAME_${PN}-doc = "${PN}1g-doc" DEBIANNAME_${PN} = "${PN}1g" Debian based 48

47 Step6: Define compile and install commands PR = "r0" inherit debian-package LICENSE = "Zlib" LIC_FILES_CHKSUM = "file://zlib.h;beginline=4;endline=23;md5=fde612df1e5933c428b73844a0c494fd" SRC_URI += "file://remove.ldconfig.call.patch" do_configure() {./configure --shared --prefix=${prefix} --libdir=${libdir} } do_compile () { oe_runmake } do_install() { oe_runmake DESTDIR=${D} install } do_install_append_class-target() { mkdir -p ${D}/${base_libdir} mv ${D}/${libdir}/libz.so.* ${D}/${base_libdir} tmp=`readlink ${D}/${libdir}/libz.so` ln -sf../../${base_libdir}/$tmp ${D}/${libdir}/libz.so } Define compile & install commands autotools.bbclass often replaces them DEBIANNAME_${PN}-dbg = "${PN}1g-dbg" DEBIANNAME_${PN}-staticdev = "${PN}1g-staticdev" DEBIANNAME_${PN}-dev = "${PN}1g-dev" DEBIANNAME_${PN}-doc = "${PN}1g-doc" DEBIANNAME_${PN} = "${PN}1g" 49

48 Additional Steps: Change library paths PR = "r0" inherit debian-package LICENSE = "Zlib" LIC_FILES_CHKSUM = "file://zlib.h;beginline=4;endline=23;md5=fde612df1e5933c428b73844a0c494fd" SRC_URI += "file://remove.ldconfig.call.patch" do_configure() {./configure --shared --prefix=${prefix} --libdir=${libdir} } do_compile () { oe_runmake } do_install() { oe_runmake DESTDIR=${D} install } do_install_append_class-target() { mkdir -p ${D}/${base_libdir} mv ${D}/${libdir}/libz.so.* ${D}/${base_libdir} tmp=`readlink ${D}/${libdir}/libz.so` ln -sf../../${base_libdir}/$tmp ${D}/${libdir}/libz.so } DEBIANNAME_${PN}-dbg = "${PN}1g-dbg" DEBIANNAME_${PN}-staticdev = "${PN}1g-staticdev" DEBIANNAME_${PN}-dev = "${PN}1g-dev" DEBIANNAME_${PN}-doc = "${PN}1g-doc" DEBIANNAME_${PN} = "${PN}1g" Debian based Move run-time libraries to the same directory as Debian 50

49 Additional Steps: Change package name PR = "r0" inherit debian-package LICENSE = "Zlib" LIC_FILES_CHKSUM = "file://zlib.h;beginline=4;endline=23;md5=fde612df1e5933c428b73844a0c494fd" SRC_URI += "file://remove.ldconfig.call.patch" do_configure() {./configure --shared --prefix=${prefix} --libdir=${libdir} } do_compile () { oe_runmake } do_install() { oe_runmake DESTDIR=${D} install } do_install_append_class-target() { mkdir -p ${D}/${base_libdir} mv ${D}/${libdir}/libz.so.* ${D}/${base_libdir} tmp=`readlink "libz" ${D}/${libdir}/libz.so` => "zlib1g" ln -sf../../${base_libdir}/$tmp ${D}/${libdir}/libz.so } Change the default binary package name to Debian s DEBIANNAME_${PN}-dbg = "${PN}1g-dbg" DEBIANNAME_${PN}-staticdev = "${PN}1g-staticdev" DEBIANNAME_${PN}-dev = "${PN}1g-dev" DEBIANNAME_${PN}-doc = "${PN}1g-doc" DEBIANNAME_${PN} = "${PN}1g" Debian based 51

50 Build results (zlib packages) zlib1g /lib/i386-linux-gnu/libz.so.1 /lib/i386-linux-gnu/libz.so /usr/share/doc/zlib1g/... zlib1g-dev /usr/include/i386-linux-gnu/zconf.h /usr/include/zlib.h /usr/lib/i386-linux-gnu/libz.so /usr/lib/i386-linux-gnu/pkgconfig/zlib.pc /usr/share/doc/... /usr/share/man/... /usr/lib/i386-linux-gnu/libz.a zlib1g-dbg zlib1g-udeb Debian 8.0 jessie lib32z1* lib64z1* libn32z1* zlib1g /lib/libz.so.1 /lib/libz.so meta-debian zlib1g-dev /usr/include/zconf.h /usr/include/zlib.h /usr/lib/libz.so /usr/lib/pkgconfig/zlib.pc zlib1g-doc /usr/share/man/... zlib1g-staticdev /usr/lib/libz.a zlib1g-dbg Ignore non-essential files 52

51 Directory structure poky meta recipes-xxx pkg pkg_1.0.bb classes files conf meta-debian recipes-xxx pkg pkg_debian.bb files classes debian-package.bbclass conf layer.conf distro debian.conf 53

52 Directory structure poky meta recipes-xxx pkg pkg_1.0.bb classes conf files Partially copy meta-debian recipes-xxx pkg pkg_debian.bb Core recipes classes Data for supporting cross-compile is partially copied from original recipes debian-package.bbclass files conf layer.conf distro debian.conf 54

53 Directory structure poky meta recipes-xxx pkg pkg_1.0.bb classes files conf meta-debian recipes-xxx pkg pkg_debian.bb Inherited by each recipe files classes debian-package.bbclass Provides debian specific functions and variables Fetch a source package automatically conf Apply Debian s patches automatically distro debian/patches/* layer.conf debian.conf 55

54 Directory structure poky meta recipes-xxx pkg pkg_1.0.bb classes files conf Defines configurations of distro Distro name = "debian" Common server URIs Features System managers meta-debian recipes-xxx pkg pkg_debian.bb classes Ex: init manager = busybox Ex: device manager = udev debian-package.bbclass files Exported to recipes conf layer.conf distro debian.conf 56

55 Build flow bitbake tasks do_fetch() do_unpack() do_debian_patch() do_patch() do_configure() do_compile() do_install() do_package()... pkg.git poky localfiles localfiles localfiles Download directory: ${DL_DIR} Working directory: ${WORKDIR} 57

56 Build flow bitbake tasks do_fetch() do_unpack() do_debian_patch() do_patch() do_configure() do_compile() do_install() do_package()... git clone --bare pkg.git poky localfiles localfiles localfiles Download directory: ${DL_DIR} git2 pkg.git quilt.git.done localfiles localfiles.done Check files Working directory: ${WORKDIR} 58

57 Build flow bitbake tasks do_fetch() do_unpack() do_debian_patch() do_patch() do_configure() do_compile() do_install() do_package()... pkg.git poky Download directory: ${DL_DIR} git2 pkg.git quilt.git.done localfiles localfiles localfiles localfiles localfiles.done Copy git checkout Working directory: ${WORKDIR} git localfiles localfiles localfiles 59

58 Build flow bitbake tasks do_fetch() do_unpack() do_debian_patch() do_patch() do_configure() do_compile() do_install() do_package()... pkg.git poky Download directory: ${DL_DIR} git2 pkg.git quilt.git.done localfiles localfiles localfiles localfiles localfiles.done Working directory: ${WORKDIR} git localfiles localfiles localfiles Apply debian/patches/* 60

59 Build flow bitbake tasks do_fetch() do_unpack() do_debian_patch() do_patch() do_configure() do_compile() do_install() do_package()... pkg.git poky Download directory: ${DL_DIR} git2 pkg.git quilt.git.done localfiles localfiles localfiles localfiles localfiles.done Apply patches for supporting cross-build Working directory: ${WORKDIR} git localfiles localfiles localfiles 61

60 Build flow bitbake tasks do_fetch() do_unpack() do_debian_patch() do_patch() do_configure() do_compile() do_install() do_package()... pkg.git poky localfiles localfiles localfiles Download directory: ${DL_DIR} git2 pkg.git quilt.git.done localfiles localfiles.done Install into the same paths as Debian Working directory: ${WORKDIR} Install directory: ${D} localfiles localfiles Built files git Configure & compile with same options as Debian localfiles localfiles localfiles 62

61 Build flow bitbake tasks do_fetch() do_unpack() do_debian_patch() do_patch() do_configure() do_compile() do_install() do_package()... Package by the same way as Debian pkg.git poky Download directory: ${DL_DIR} git2 pkg.git quilt.git.done Working directory: ${WORKDIR} localfiles localfiles localfiles localfiles localfiles.done localfiles localfiles.deb Install directory: ${D} localfiles localfiles Built files git localfiles localfiles localfiles 63

62 Current status Supported CPUs x86 32bit x86 64bit ARM PowerPC Kernel LTSI User land busybox-based minimal system Number of available packages: around 200 Recipe implementation is still ongoing implementing more recipes to support other packages 64

63 Current development status Meta-debian Poky version Debian version for source code Kernel Distribution Support Status Daisy Debian 8 (Jessie) LTSI 3.10 and RT patch Debian 8 (Jessie) Under development Number of packages Approx. 200 BSPs QEMU(X86, X86_64, ARM, PowerPC) RasberryPi MinnowBoard..etc. - Recipe development is ongoing to increase packages 65

64 Conclusions What is Shared Embedded Linux distribution Share the work of maintaining long-term support for an embedded distribution, by leveraging the work of the Debian project Metadata for building embedded Linux systems using Debian source packages Implemented as an independent layer of OpenEmbedded-Core meta-debian is intended to provide Wide embedded CPU support Stability Long-term support Fully customizable Linux 66

65 Conclusions Policies for creating recipes Debian based configs & packaging + customization for embedded For getting affinity with Debian sources Re-use OE-Core data for supporting cross-build Examples How to build & run a tiny Linux image How to create recipes 67

66 Future work Support more features and packages (over 200) LTSI + RT kernel, Wayland, Qt, etc. Support more embedded boards Testing: improve the quality of the system and packages LTP, LTP-DDT, POSIX test suite, ptest, etc. Contribute to the LTSI test project (JTA) [3] Keep following updates of poky and Debian 68

67 Please give us feedback Repository 69

68 Questions? 70

69 References 1. Poky meets Debian: Understanding How to Make an Embedded Linux by Using an Existing Distribution's Source Code YOSHI-PokyDebian_0.pdf 2. LTSI Test Project 3. Yocto Project Manuals

70 Thank you

71 remove.ldconfig.call.patch When /etc/ld.so.cache is writeable by user running bitbake then it creates invalid cache (in my case libstdc++.so cannot be found after building zlib(-native) and I have to call touch */libstdc++.so && /sbin/ldconfig to fix it. So remove ldconfig call from make install-libs Upstream-Status: Inappropriate [disable feature] diff -unr zlib orig/makefile.in zlib-1.2.6/makefile.in --- zlib orig/makefile.in :48: zlib-1.2.6/makefile.in :38: ,7 rm -f $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB); ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); - ($(LDCONFIG) true) >/dev/null 2>&1; fi cp zlib.3 $(DESTDIR)$(man3dir) chmod 644 $(DESTDIR)$(man3dir)/zlib.3 73

72 recipes-extended/newt/files/cross_ar.patch... Makefile.in 3 ++configure.ac files changed, 6 insertions(+), 1 deletion(-) --- a/makefile.in ,6 CFLAGS LDFLAGS CPPFLAGS = GNU_LD +AR VERSION TAG = -95,7 whiptcl.so: $(WHIPTCLOBJS) $(LIBNEWTSH) $(CC) -shared $(SHCFLAGS) $(LDFLAGS) -o whiptcl.so $(WHIPTCLOBJS) - L. -lnewt $(LIBTCL) -lpopt $(LIBS) $(LIBNEWT): $(LIBOBJS) - ar rv $@ $^ + $(AR) rv $@ $^ newt.o $(SHAREDDIR)/newt.o: newt.c Makefile... 74

73 qt4-embedded_git.bb require qt4-libs.inc PR = "r0" QT_CONFIG_FLAGS = " -v -embedded ${QT_ARCH} -release -opensource -make libs -nomake tools -nomake examples -nomake demos... 75

Deby - Reproducible and Maintainable Embedded Linux Environment with Poky

Deby - Reproducible and Maintainable Embedded Linux Environment with Poky Deby - Reproducible and Maintainable Embedded Linux Environment with Poky Kazuhiro Hayashi CE Workgroup, The Linux Foundation (TOSHIBA Corporation) Embedded Linux Conference Europe 2016 Oct 12, 2016 About

More information

Building Debian-Based Products: Experiences in Collaboration

Building Debian-Based Products: Experiences in Collaboration Building Debian-Based Products: Experiences in Collaboration Kazuhiro Hayashi, Toshiba Corporation (Baurzhan Ismagulov, ilbers GmbH) Jun 23, 2017 Motivation Deby and Isar : Both use Debian Have common

More information

Customizing with Yocto. Dexuan Cui Intel Corporation

Customizing with Yocto. Dexuan Cui Intel Corporation Customizing with Yocto Dexuan Cui Intel Corporation Agenda Yocto Project: Build System, Workflow and Components Key concepts in Poky: Configurations files, recipe, class, layer Poky directory tree overview

More information

Yocto Overview. Dexuan Cui Intel Corporation

Yocto Overview. Dexuan Cui Intel Corporation Yocto Overview Dexuan Cui Intel Corporation Agenda Introduction to the Yocto Project Participating Organizations Yocto Project Build System Yocto Project Workflow Quick Start Guide in a Slide What is the

More information

Introduction to the Yocto Project. Developer s perspective

Introduction to the Yocto Project. Developer s perspective Introduction to the Yocto Project Developer s perspective Igor Baldachini Tiziano Cappellari http://www.nabertech.com/ What is the Yocto Project An open source project hosted at The Linux Foundation A

More information

Delivering Predictability: The Yocto Project Autobuilder, Automated Sanity Testing, License Collection, and Build Statistics Tracking

Delivering Predictability: The Yocto Project Autobuilder, Automated Sanity Testing, License Collection, and Build Statistics Tracking It s not an embedded Linux distribution It creates a custom one for you. Delivering Predictability: The Yocto Project Autobuilder, Automated Sanity Testing, License Collection, and Build Statistics Tracking

More information

Why OpenEmbedded proved a good foundation for MontaVista. Cedric Hombourger Solutions & Services Architect

Why OpenEmbedded proved a good foundation for MontaVista. Cedric Hombourger Solutions & Services Architect Why OpenEmbedded proved a good foundation for MontaVista Cedric Hombourger Solutions & Services Architect Moving away from RPM! Shortly after is 10th birthday, MontaVista unleashed MVL6: a complete revamp!

More information

Meeting the Yocto Project

Meeting the Yocto Project Meeting the Yocto Project In this chapter, we will be introduced to the Yocto Project. The main concepts of the project, which are constantly used throughout the book, are discussed here. We will discuss

More information

Poky Linux & OpenEmbedded based environment

Poky Linux & OpenEmbedded based environment & based environment Marcin Juszkiewicz marcin@juszkiewicz.com.pl http://marcin.juszkiewicz.com.pl ST-Ericsson Community Workshop 2009 Some information about me Bought Sharp Zaurus SL-5500 in February 2003

More information

The New Approach to Embedded Linux Development Marco Beardo FAE

The New Approach to Embedded Linux Development Marco Beardo FAE MontaVista Linux 6 for Freescale The New Approach to Embedded Linux Development Marco Beardo FAE Contents Challenges MontaVista Linux 6 Overview Definitions Market Specific Distributions Software Development

More information

Debian & Yocto: State of the Art

Debian & Yocto: State of the Art Debian & Yocto: State of the Art Kazuhiro Hayashi, Toshiba Corporation Manuel Traut, Linutronix GmbH Baurzhan Ismagulov, ilbers GmbH Oct. 23, 2018 Agenda 1. Introduction 2. Existing Projects 3. Vision

More information

Yocto Project components

Yocto Project components Lecture 3 3 Yocto Project components 25 octombrie 2016 Exam questions 1. Please write al least four of the described components of a GNU toolchain 2. List the components which define a Linux distribution

More information

Building RT image with Yocto

Building RT image with Yocto Pierre Ficheux (pierre.ficheux@smile.fr) 02/2018 1 Disclaimer Poor English speaker! But good French speaker and writer :-) Loin du français je meurs (Louis-Ferdinand Céline) 2 $ whoami Embedded Linux developer,

More information

Using the Yocto Autobuilder for Build and Release Management. Jate Sujjavanich Syntech Systems, Inc <jatedev -at- gmail.com> February 22, 2016

Using the Yocto Autobuilder for Build and Release Management. Jate Sujjavanich Syntech Systems, Inc <jatedev -at- gmail.com> February 22, 2016 Using the Yocto Autobuilder for Build and Release Management Jate Sujjavanich Syntech Systems, Inc February 22, 2016 My Experience PCB/Schematic Design Das U-boot uclinux-dist

More information

Yocto Project: A Vehicle for Embedded Qt Development

Yocto Project: A Vehicle for Embedded Qt Development Yocto Project: A Vehicle for Embedded Qt Development Nitin A Kamble & Paul Eggleton Intel Corporation Qt Developer Days 2012, Santa Clara, CA, USA 07-Dec-2012. Agenda What is the Yocto Project? Who is

More information

Isar. Build Debian-Based Products with BitBake. Baurzhan Ismagulov. Embedded Linux Conference Europe Oct 11-13, 2016 Berlin, Germany

Isar. Build Debian-Based Products with BitBake. Baurzhan Ismagulov. Embedded Linux Conference Europe Oct 11-13, 2016 Berlin, Germany Isar Build Debian-Based Products with BitBake Baurzhan Ismagulov Embedded Linux Conference Europe Oct 11-13, 2016 Berlin, Germany Copyright (C) 2016, ilbers GmbH 2016-10-03 Contents About Us Motivation

More information

KHEM RAJ YOCTO PROJECT/OPEN EMBEDDED

KHEM RAJ YOCTO PROJECT/OPEN EMBEDDED KHEM RAJ YOCTO PROJECT/OPEN EMBEDDED AGENDA Introduction to OE and Yocto Project Why Yocto Project Building Embedded Linux using Yocto Project Customizing Embedded Linux Distribution Developer workflows

More information

WORKING WITH THE LINUX KERNEL IN THE YOCTO PROJECT SEAN HUDSON EMBEDDED LINUX ARCHITECT

WORKING WITH THE LINUX KERNEL IN THE YOCTO PROJECT SEAN HUDSON EMBEDDED LINUX ARCHITECT WORKING WITH THE LINUX KERNEL IN THE YOCTO PROJECT SEAN HUDSON EMBEDDED LINUX ARCHITECT BIO Developing software for embedded devices since 1996 Started using Linux in 1999 to create a NAT router for my

More information

Agenda. Several projects are using GIT Developer(s) Junio Hamano, Linus Torvalds. Qt Stable release (January 31, 2011)

Agenda. Several projects are using GIT Developer(s) Junio Hamano, Linus Torvalds. Qt Stable release (January 31, 2011) Basic Agenda 1 Project information Who is ussing 2 14 Oct 2011 3 Basic Data Transport Work ow 4 Con gure 5 Basic Project information Who is ussing Project information Who is ussing Project information

More information

Are you Really Helped by Upstream Kernel Code?

Are you Really Helped by Upstream Kernel Code? Are you Really Helped by Upstream Kernel Code? 1 HISAO MUNAKATA RENESAS SOLUTIONS CORP hisao.munakata.vt(at)renesas.com who am I Working for Renesas (semiconductor) 2 Over 15 years real embedded Linux

More information

Introduction to GIT. Jordi Blasco 14 Oct 2011

Introduction to GIT. Jordi Blasco 14 Oct 2011 Jordi Blasco (jblasco@xrqtc.com) 14 Oct 2011 Agenda 1 Project information Who is ussing GIT 2 Branch Tag Data Transport Workow 3 Congure 4 Working with remotes 5 Project information Who is ussing GIT Project

More information

Industrial-grade Open Source Base Layer. Yoshitake Kobayashi, Toshiba Corporation Embedded Linux Conference North America, March 12-14, 2018

Industrial-grade Open Source Base Layer. Yoshitake Kobayashi, Toshiba Corporation Embedded Linux Conference North America, March 12-14, 2018 Industrial-grade Open Source Base Layer Yoshitake Kobayashi, Toshiba Corporation Embedded Linux Conference North America, March 12-14, 2018 What is CIP? 2 What is CIP? One of the most conservative open

More information

Towards Sustainable Systems with the Civil Infrastructure Platform. Jan Kiszka, Siemens AG LinuxCon North America, 24 th August 2016

Towards Sustainable Systems with the Civil Infrastructure Platform. Jan Kiszka, Siemens AG LinuxCon North America, 24 th August 2016 Towards Sustainable Systems with the Civil Infrastructure Platform Jan Kiszka, Siemens AG LinuxCon North America, 24 th August 2016 1 Linux is widely used in Industry Transport Infrastructure Energy Infrastructure

More information

Yocto Project and OpenEmbedded Training

Yocto Project and OpenEmbedded Training Yocto Project and OpenEmbedded Training Yocto Project and OpenEmbedded Training Copyright 2004-2018, Bootlin (formerly Free Electrons). Creative Commons BY-SA 3.0 license. Latest update: February 23, 2018.

More information

Dandified way to package management in Yocto Project

Dandified way to package management in Yocto Project Dandified way to package management in Yocto Project Jun 21th, 2018 Zheng Ruoqin, Fujitsu zhengrq.fnst@cn.fujitsu.com whoami Zheng Ruoqin, Fujitsu Ltd. Embedded Linux Developer In-House Embedded Linux

More information

Using Openembedded with Snapdragon Flight

Using Openembedded with Snapdragon Flight April 2016 Mark Charlebois Using Openembedded with Snapdragon Flight Background Snapdragon Flight board is available from Intrinsyc Based on Qualcomm APQ8074 Uses 3.4 kernel (Android) and Linux userspace

More information

YumaPro Yocto Linux Quickstart Guide

YumaPro Yocto Linux Quickstart Guide YumaPro Yocto Linux Quickstart Guide YANG-Based Unified Modular Automation Tools Yocto Quickstart Guide Version 17.10-12 Table of Contents 1 Preface...3 1.1 Legal Statements...3 1.2 Additional Resources...3

More information

Introducing the Civil Infrastructure Platform. Jan Kiszka and Yoshitake Kobayashi LinuxCon Japan, July, 2016

Introducing the Civil Infrastructure Platform. Jan Kiszka and Yoshitake Kobayashi LinuxCon Japan, July, 2016 Introducing the Civil Infrastructure Platform Jan Kiszka and Yoshitake Kobayashi LinuxCon Japan, 13-15 July, 2016 Definition Civil Infrastructure Systems are technical systems responsible for supervision,

More information

Time is ready for the Civil Infrastructure Platform

Time is ready for the Civil Infrastructure Platform Time is ready for the Civil Infrastructure Platform Yoshitake Kobayashi, Toshiba Urs Gleim, Siemens AG Embedded Linux Conference Europe, Berlin, October 13, 2016 1 Definition Civil Infrastructure Systems

More information

NFV in the Embedded World: Yocto Project and OpenStack

NFV in the Embedded World: Yocto Project and OpenStack NFV in the Embedded World: Yocto Project and OpenStack August 22 nd, 2014 Jason Wessel - Product Architect for Wind River Linux - Kernel.org KDB/KGDB Maintainer 1 Cloud this, Cloud that Google, Microsoft

More information

How to Write Tests for the AGL HW Test Infra. Jan-Simon Möller AGL Release Manager

How to Write Tests for the AGL HW Test Infra. Jan-Simon Möller AGL Release Manager How to Write Tests for the AGL HW Test Infra AGL AMM Oct 2017 Jan-Simon Möller AGL Release Manager jsmoeller@linuxfoundation.org Introduction, Topics Introduction Dipl.-Ing. Jan-Simon Möller jsmoeller@linuxfoundation.org

More information

Introduction to the Yocto Project

Introduction to the Yocto Project Introduction to the Yocto Project Mark Hatle & Bruce Ashfield Yocto Project Dev Day Barcelona, Spain 08-Nov-2012. Agenda What is the Yocto Project? Who is the Yocto Project? Poky (Bitbake/OpenEmbedded-Core)

More information

Status of Embedded Linux Status of Embedded Linux October 2014

Status of Embedded Linux Status of Embedded Linux October 2014 Status of Embedded Linux Status of Embedded Linux October 2014 Tim Bird Architecture Group Chair LF CE Workgroup 1 Outline Kernel Versions Technology Areas CE Workgroup Projects Other Stuff Resources 2

More information

Building Container Images with OpenEmbedded and the Yocto Project. Scott Murray

Building Container Images with OpenEmbedded and the Yocto Project. Scott Murray Building Container Images with OpenEmbedded and the Yocto Project Scott Murray scott.murray@konsulko.com About Me Linux user/developer since 1996 Embedded Linux developer starting in 2000 Principal Software

More information

RZ/G Verified Linux Package V2.1.0-RT

RZ/G Verified Linux Package V2.1.0-RT RZ/G Verified Linux Package V2.1.0-RT R01TU0254EJ0100 Rev. 1.00 Introduction This release note describes the contents, building procedures and important points of the RZ/G Verified Linux Package V2.1.0-RT

More information

The Yocto Project. Chris Young S/W Specialist SILICA Europe. Harmonising Software Development across multiple Embedded ARM SOC targets

The Yocto Project. Chris Young S/W Specialist SILICA Europe. Harmonising Software Development across multiple Embedded ARM SOC targets The Yocto Project Harmonising Software Development across multiple Embedded ARM SOC targets Chris Young S/W Specialist SILICA Europe 11 Linux The Open Source OS When consolidation came up in the mainstream

More information

Customize your Mainline or LTSI Linux Kernel using the Yocto Project

Customize your Mainline or LTSI Linux Kernel using the Yocto Project Customize your Mainline or LTSI Linux Kernel using the Yocto Project Saul Wold Intel Maintainer of meta-intel core BSPs ELC-E Dublin 06 OCT 2015 About Saul Intel & Yocto Project for last 5 years Meta-intel

More information

Industrial-grade Open Source Base Layer Development

Industrial-grade Open Source Base Layer Development Industrial-grade Open Source Base Layer Development Yoshitake Kobayashi, Toshiba Corp. Urs Gleim, Siemens AG Embedded Linux Conference Europe, Prague, October 24, 2017 What is CIP? 2 What is CIP? One of

More information

OpenEmbedded in the Real World

OpenEmbedded in the Real World OpenEmbedded in the Real World Scott Murray Senior Staff Software Engineer Konsulko Group http://konsulko.com Who am I? Long time Linux user (over 20 years) Have done Linux software development for over

More information

February 2 nd Jean Parpaillon

February 2 nd Jean Parpaillon Using GIT with Kerrighed project Kerrighed Summit '07 February 2 nd 2007 Jean Parpaillon Table of contents Kerrighed SCM Subversion GIT GIT with Kerrighed References 2 Kerrighed

More information

D1Y - Embedded Linux with Yocto

D1Y - Embedded Linux with Yocto Training Embedded Linux with Yocto: Building embedded Linux platforms using Yocto - Operating Systems: Linux D1Y - Embedded Linux with Yocto Building embedded Linux platforms using Yocto Objectives Understanding

More information

Yocto Project internal tools

Yocto Project internal tools Lecture 5 5 Yocto Project internal tools 08 noiembrie 2016 Outline Hob Toaster Autobuilder Devtool 08.11.2016 2 Recap: ADT Application Development Toolkit Optional Eclipse Yocto plug-ins available Qemu

More information

Contribute To Linux Mainline

Contribute To Linux Mainline Contribute To Linux Mainline Wu Zhangjin / Falcon wuzhangjin@gmail.com Tiny Lab 泰晓实验室 http://tinylab.org June 3, 2013 Outline 1 About Linux Kernel Development 2 Upstream your source code 3 Reference 4

More information

Civil Infrastructure Platform : Industrial Grade SLTS Kernel and Base-Layer Development

Civil Infrastructure Platform : Industrial Grade SLTS Kernel and Base-Layer Development Civil Infrastructure Platform : Industrial Grade SLTS Kernel and Base-Layer Development Yoshitake Kobayashi Open Source Summit Japan, Tokyo, June 2, 2017 Our Civilization is Run by Linux https://www.airpano.com/360degree-virtualtour.php?3d=san-francisco-usa

More information

2013 Toshiba Corporation

2013 Toshiba Corporation 2013 Toshiba Corporation Who am I? Yoshitake Kobayashi (YOSHI) Chief Specialist at Corporate Software Engineering Center, TOSHIBA CORPORATION Work on embedded operating systems Linux RTOS TOPPERS (uitron),

More information

Industrial-grade Open Source Base Layer Development

Industrial-grade Open Source Base Layer Development Industrial-grade Open Source Base Layer Development Yoshitake Kobayashi, Toshiba Corp. Urs Gleim, Siemens AG Embedded Linux Conference Europe, Prague, October 24, 2017 More updates will be announced at

More information

D1 - Embedded Linux. Building and installing an embedded and real-time Linux platform. Objectives. Course environment.

D1 - Embedded Linux. Building and installing an embedded and real-time Linux platform. Objectives. Course environment. Training Embedded Linux: Building and installing an embedded and real-time Linux platform - Operating Systems: Linux D1 - Embedded Linux Building and installing an embedded and real-time Linux platform

More information

Long Term Support Initiative

Long Term Support Initiative Long Term Support Initiative - Project Overview - March 7, 2012 CE Workgroup The Linux Foundation Preface The CE workgroup (CEWG) in the Linux Foundation has conducted intensive discussions to identify

More information

Qt5 & Yocto: SDK and app migration. Denys Dmytriyenko LCPD, Arago Project Texas Instruments

Qt5 & Yocto: SDK and app migration. Denys Dmytriyenko LCPD, Arago Project Texas Instruments Qt5 & Yocto: SDK and app migration Denys Dmytriyenko LCPD, Arago Project Texas Instruments Agenda Qt history in OpenEmbedded Qt4/5 usage in OE/Yocto Building and packaging filesystem images Qt SDK basics

More information

How to cook the LTSI kernel with Yocto recipe

How to cook the LTSI kernel with Yocto recipe LTSI-34 release notes How to cook the LTSI kernel with Yocto recipe improve your productivity with LTSI & Yocto Hisao Munakata Linux Foundation Consumer Electronics working group February 20th 2013, ELC2013

More information

Intel Do-It-Yourself Challenge Compile C/C++ for Galileo Nicolas Vailliet

Intel Do-It-Yourself Challenge Compile C/C++ for Galileo Nicolas Vailliet Intel Do-It-Yourself Challenge Compile C/C++ for Galileo Nicolas Vailliet www.intel-software-academic-program.com paul.guermonprez@intel.com Intel Software 2014-02-01 Why? C/C++ code? Why C/C++ code? Arduino

More information

National Aeronautics and Space and Administration Space Administration. CFE CMake Build System

National Aeronautics and Space and Administration Space Administration. CFE CMake Build System National Aeronautics and Space and Administration Space Administration CFE CMake Build System 1 1 Simplify integrating apps together CFS official Recycled from other projects Custom LC... SC HK A C B Z

More information

Laboratorio di Programmazione. Prof. Marco Bertini

Laboratorio di Programmazione. Prof. Marco Bertini Laboratorio di Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Code versioning: techniques and tools Software versions All software has multiple versions: Each

More information

Mingw-w64 and Win-builds.org - Building for Windows

Mingw-w64 and Win-builds.org - Building for Windows Mingw-w64 and Win-builds.org - Building for Windows February 2, 2014 1 Mingw-w64 2 3 Section outline Mingw-w64 History, motivations and philosophy What comes with a mingw-w64 tarball Environments to build

More information

SPDX with Yocto Project

SPDX with Yocto Project SPDX with Yocto Project June 2th, 2015 Bian Naimeng, Fujitsu LINUX 4.0 anniversary T-shirt FUJITSU supports KAWASAKI FRONTALE football club, FUJITSU supports LINUX 4.0! 1 whoami Working for Fujitsu from

More information

LTSI Project update Long Term Support Ini0a0ve. Tsugikazu SHIBATA, NEC Hisao Munakata, Renesas 20, May 2014 LinuxCon so

LTSI Project update Long Term Support Ini0a0ve. Tsugikazu SHIBATA, NEC Hisao Munakata, Renesas 20, May 2014 LinuxCon so LTSI Project update Long Term Support Ini0a0ve Tsugikazu SHIBATA, NEC Hisao Munakata, Renesas 20, May 2014 LinuxCon Japan@Chinzan so Key ac3vi3es of LTSI Long Term Support Ini3a3ve p Provide a industry

More information

Introduction to Supercomputing

Introduction to Supercomputing Introduction to Supercomputing TMA4280 Introduction to development tools 0.1 Development tools During this course, only the make tool, compilers, and the GIT tool will be used for the sake of simplicity:

More information

A Smart Way to Manage Packages in Yocto Project

A Smart Way to Manage Packages in Yocto Project A Smart Way to Manage Packages in Yocto Project Jul 14th, 2016 Fan Xin, Fujitsu Computer Technologies Limited fan.xin@jp.fujitsu.com 1378ka03 whoami Fan Xin, Fujitsu Computer Technologies Ltd. Embedded

More information

Customizing the Yocto-Based Linux Distribution for Production

Customizing the Yocto-Based Linux Distribution for Production Customizing the Yocto-Based Linux Distribution for Production Components of a Linux distribution Toolchain (gcc) Libraries (glibc, etc.) Bootloader (grub, u-boot, etc.) Kernel File system Console utilities

More information

Digi Embedded Yocto 1.6. First Steps Guide

Digi Embedded Yocto 1.6. First Steps Guide Digi Embedded Yocto 1.6 First Steps Guide Revision history 90001423 Revision Date Description E July, 2015 Updated to Digi Embedded Yocto 1.6.6 F October, 2015 Updated to Digi Embedded Yocto 1.6.7 G November,

More information

Prototyping IoT with. Pierre Ficheux 02/2017. Prototyping IoT with Yocto

Prototyping IoT with. Pierre Ficheux 02/2017. Prototyping IoT with Yocto Prototyping IoT with Pierre Ficheux (pierre.ficheux@smile.fr) 02/2017 1 $ whoami French embedded Linux developer, writer and teacher CTO @ Smile-ECS (Embedded & Connected Systems) 2 2 kinds of objects

More information

meta-raspberrypi Documentation

meta-raspberrypi Documentation meta-raspberrypi Documentation Release rocko meta-raspberrypi contributors Sep 06, 2018 Contents 1 meta-raspberrypi 3 1.1 Quick links................................................ 3 1.2 Description................................................

More information

Yocto Project & Embedded Linux

Yocto Project & Embedded Linux Lecture 2 2 Yocto Project & Embedded Linux 18 octombrie 2016 Outline Cross-compiling Bootloaders Linux kernel Linux root filesystem Yocto Project 18.10.2016 2 Recap: The Yocto Project 18.10.2016 3 GNU

More information

Poky-tiny and Beyond, or Trying to put the Yocto in Yocto Project. Scott Murray

Poky-tiny and Beyond, or Trying to put the Yocto in Yocto Project. Scott Murray Poky-tiny and Beyond, or Trying to put the Yocto in Yocto Project Scott Murray scott.murray@konsulko.com About Me Linux user/developer since 1996 Embedded Linux developer starting in 2000 Principal Software

More information

Adding hardware support to Buildroot

Adding hardware support to Buildroot Adding hardware support to Buildroot Pierre Ficheux (pierre.ficheux@openwide.fr) CTO Open Wide / OS4I 08/07/2010 1 Several ways to get a distribution Using commercial product (Wind River, MV, ) => / $$$

More information

Formatting 1. Commands starting with $ are Linux console commands on the host PC:

Formatting 1. Commands starting with $ are Linux console commands on the host PC: Custom Kernel Guide by Arrvindh Shriraman Last update: April 1, 2016 This document guides the user through: 1. Downloading and compiling the Linux kernel's source code. 2. Running a custom kernel inside

More information

CS 520: VCS and Git. Intermediate Topics Ben Kushigian

CS 520: VCS and Git. Intermediate Topics Ben Kushigian CS 520: VCS and Git Intermediate Topics Ben Kushigian https://people.cs.umass.edu/~rjust/courses/2017fall/cs520/2017_09_19.zip Our Goal Our Goal (Overture) Overview the basics of Git w/ an eye towards

More information

How we added software updates to AGL

How we added software updates to AGL How we added software updates to AGL Phil Wise 2017 ATS Advanced Telematic Systems GmbH ATS Advanced Telematic Systems. Open source and open standard for connected mobility. Page 2 AGL Automotive Grade

More information

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center IOTIVITY AND EMBEDDED LINUX SUPPORT Kishen Maloor Intel Open Source Technology Center Outline Open Interconnect Consortium and IoTivity Software development challenges in embedded Yocto Project and how

More information

Overview. during this tutorial we will examine how touse git from the command line. finally we will explore a graphical visualisation of git activity

Overview. during this tutorial we will examine how touse git from the command line. finally we will explore a graphical visualisation of git activity Overview slide 1 during this tutorial we will examine how touse git from the command line we will also browse some of the files in the linux kernel and gcc finally we will explore a graphical visualisation

More information

Testing your AGL, yocto ptest, lava and more

Testing your AGL, yocto ptest, lava and more Testing your AGL, yocto ptest, lava and more ALS 2018 Jan-Simon Möller Release Manager, AGL, The Linux Foundation jsmoeller@linuxfoundation.org, DL9PF @IRC and elsewhere Image: public domain Dipl.-Ing.

More information

Yocto Project and OpenEmbedded training 3-day session

Yocto Project and OpenEmbedded training 3-day session Yocto Project and OpenEmbedded training 3-day session Title Yocto Project and OpenEmbedded development training Overview Understanding the Yocto Project Using it to build a root filesystem and run it on

More information

Digitalization of Kernel Diversion from the Upstream

Digitalization of Kernel Diversion from the Upstream Digitalization of Kernel Diversion from the Upstream To minimize local code modifications Hisao Munakata Linux Foundation Consumer Electronics working group April 4th 2016 1 / 52 Hisao Munakata Digitalization

More information

The Yocto GENIVI Baseline Overview. Automotive Linux Summit, Fall 2013 Holger Behrens, Wind River Automotive Solutions

The Yocto GENIVI Baseline Overview. Automotive Linux Summit, Fall 2013 Holger Behrens, Wind River Automotive Solutions The Yocto GENIVI Baseline Overview Automotive Linux Summit, Fall 2013 Holger Behrens, Wind River Automotive Solutions Abstract The Yocto GENIVI Baseline, a public project of the GENIVI Alliance, based

More information

Contributing to Automotive Grade Linux and GENIVI Development Platform

Contributing to Automotive Grade Linux and GENIVI Development Platform Contributing to Automotive Grade Linux and GENIVI Development Platform Leon Anavi Konsulko Group leon.anavi@konsulko.com Embedded Linux Conference 2017 21-23 February, Portland, Oregon Agenda Automotive

More information

Zedboard Documentation

Zedboard Documentation Zedboard Documentation Release A Architech February 18, 2017 Contents 1 Notations 3 2 Chapters 5 2.1 Unboxing................................................. 5 2.2 Quick start guide.............................................

More information

OCaml: State of the Platform 2014

OCaml: State of the Platform 2014 OCaml: State of the Platform 2014 Anil Madhavapeddy (speaker) Amir Chaudhry, Jeremie Diminio, Thomas Gazagnaire, Louis Gesbert, Thomas Leonard, David Sheets, Mark Shinwell, Leo White, Jeremy Yallop with

More information

It s not an embedded Linux distribution It creates a custom one for you. David Stewart Intel Corporation April 11, 2011

It s not an embedded Linux distribution It creates a custom one for you. David Stewart Intel Corporation April 11, 2011 It s not an embedded Linux distribution It creates a custom one for you. The Yocto Project and its Application Development Toolkit (ADT) - The Answer to Effective Embedded Application Development David

More information

New Contributor Tutorial and Best Practices

New Contributor Tutorial and Best Practices New Contributor Tutorial and Best Practices Vicențiu Ciorbaru Software Engineer @ MariaDB Foundation * 2018 MariaDB Foundation * Goal of this session Most attendees here are highly experienced devs Let's

More information

2 Initialize a git repository on your machine, add a README file, commit and push

2 Initialize a git repository on your machine, add a README file, commit and push BioHPC Git Training Demo Script First, ensure that git is installed on your machine, and you have configured an ssh key. See the main slides for instructions. To follow this demo script open a terminal

More information

Git. Ľubomír Prda. IT4Innovations.

Git. Ľubomír Prda. IT4Innovations. Git Ľubomír Prda IT4Innovations lubomir.prda@vsb.cz support@it4i.cz VCS Version Control System Versioning - creation and management of multiple releases of a product, all of which have the same general

More information

Version Control with Git

Version Control with Git Version Control with Git Jon Loeliger O'REILLY Beijing Cambridge Farnham Köln Sebastopol Tokyo Table of Contents Preface... xi 1. Introduction... 1 Background 1 The Birth of Git 2 Precedents 4 Time Line

More information

AN APPROACH TO DELIVER HARDWARE - DEPENDENT PACKAGES IN ORDER TO REDUCE EFFORT OF UPDATING AGL DISTRIBUTION IMAGES

AN APPROACH TO DELIVER HARDWARE - DEPENDENT PACKAGES IN ORDER TO REDUCE EFFORT OF UPDATING AGL DISTRIBUTION IMAGES AN APPROACH TO DELIVER HARDWARE - DEPENDENT PACKAGES IN ORDER TO REDUCE EFFORT OF UPDATING AGL DISTRIBUTION IMAGES AUTOMOTIVE LINUX SUMMIT JAPAN 2018 06/21/2018, TOKYO KHIEM NGUYEN SENIOR STAFF ENGINEER

More information

MAGPIE Installation Guide (version 1.0)

MAGPIE Installation Guide (version 1.0) MAGPIE Installation Guide (version 1.0) June 2017 Authors: Sophiane Senni, Pierre-Yves Péneau, Abdoulaye Gamatié 1 Contents 1 About this guide 3 2 Framework installation 4 2.1 Dependencies...................................

More information

manifold Documentation

manifold Documentation manifold Documentation Release 0.0.1 Open Source Robotics Foundation Mar 04, 2017 Contents 1 What is Manifold? 3 2 Installation 5 2.1 Ubuntu Linux............................................... 5 2.2

More information

TDDC88 Lab 4 Software Configuration Management

TDDC88 Lab 4 Software Configuration Management TDDC88 Lab 4 Software Configuration Management Introduction "Version control is to programmers what the safety net is to a trapeze artist. Knowing the net is there to catch them if they fall, aerialists

More information

CLOSE ENCOUNTERS OF THE UPSTREAM RESOURCE

CLOSE ENCOUNTERS OF THE UPSTREAM RESOURCE CLOSE ENCOUNTERS OF THE UPSTREAM RESOURCE HISAO MUNAKATA RENESAS SOLUTIONS CORP hisao.munakata.vt(at)renesas.com who am I Work for Renesas (semiconductor provider) Over 15 years real embedded Linux business

More information

Reducing the pain of Yocto development upgrades. Michael Brown NGM Firmware Lead Technologist Dell EMC Embedded Linux Conference 2017

Reducing the pain of Yocto development upgrades. Michael Brown NGM Firmware Lead Technologist Dell EMC Embedded Linux Conference 2017 Reducing the pain of Yocto development upgrades Michael Brown NGM Firmware Lead Technologist Dell EMC Embedded Linux Conference 2017 Outline Easier Yocto upgrades in development - Introduction - Problem

More information

Team Up: Contributing to the Tizen Platform. Narasimha Swamy Sanjay NM

Team Up: Contributing to the Tizen Platform. Narasimha Swamy Sanjay NM Team Up: Contributing to the Tizen Platform Narasimha Swamy Sanjay NM YOUR Contributions MATTER to the SUCCESS of Tizen platform Agenda About Tizen OSS Ways of Contribution Tizen 3.0 Governance Model Tools,

More information

Tizen TCT User Guide

Tizen TCT User Guide Tizen 2.3.1 TCT User Guide Table of Contents 1. Environment setup... 3 1.1. Symbols and abbreviations... 3 1.2. Hardware Requirements... 3 1.3. Software Requirements... 3 2. Getting TCT-source and TCT-manager...

More information

GIT Princípy tvorby softvéru, FMFI UK Jana Kostičová,

GIT Princípy tvorby softvéru, FMFI UK Jana Kostičová, GIT Princípy tvorby softvéru, FMFI UK Jana Kostičová, 25.4.2016 Basic features Distributed version control Developed in 2005, originally for Linux kernel development Free, GNU General Public License version

More information

How to decide Linux Kernel for Embedded Products. Tsugikazu SHIBATA NEC 20, Feb Embedded Linux Conference 2013 SAN FRANCISCO

How to decide Linux Kernel for Embedded Products. Tsugikazu SHIBATA NEC 20, Feb Embedded Linux Conference 2013 SAN FRANCISCO How to decide Linux Kernel for Embedded Products Tsugikazu SHIBATA NEC 20, Feb. 2013 Embedded Linux Conference 2013 Parc55 @ SAN FRANCISCO Agenda Points to be considered to decide Linux kernel version

More information

Index. Alias syntax, 31 Author and commit attributes, 334

Index. Alias syntax, 31 Author and commit attributes, 334 Index A Alias syntax, 31 Author and commit attributes, 334 B Bare repository, 19 Binary conflict creating conflicting changes, 218 during merging, 219 during rebasing, 221 Branches backup, 140 clone-with-branches

More information

LTSI Project Update. LTSI Kernel, How We Can Help Automotive Industries. Hisao Munakata, Tsugikazu Shibata

LTSI Project Update. LTSI Kernel, How We Can Help Automotive Industries. Hisao Munakata, Tsugikazu Shibata LTSI Project Update LTSI Kernel, How We Can Help Automotive Industries Hisao Munakata, Tsugikazu Shibata Linux Foundation Consumer Electronics working group July 1st 2014 1 / 39 Hisao Munakata, Tsugikazu

More information

User Guide Yocto Linux. Board Support Package For Intel Quark

User Guide Yocto Linux. Board Support Package For Intel Quark User Guide Yocto Linux Board Support Package For Intel Quark 1 Table of Contents Table of Contents... 2 1. Getting Started... 3 1.1 Prerequisites... 4 1.1.1 To install required packages... 4 1.1.2 To install

More information

Cross-compilation with Buildroot

Cross-compilation with Buildroot Instituto Superior de Engenharia do Porto Mestrado em Engenharia Eletrotécnica e de Computadores Arquitetura de Computadores Cross-compilation with Buildroot Introduction Buildroot is a tool that can be

More information

The meta-virtualization layer of OpenEmbedded

The meta-virtualization layer of OpenEmbedded The meta-virtualization layer of OpenEmbedded Bruce Ashfield Principal Technologist Linux Products Group 2018 WIND RIVER. ALL RIGHTS RESERVED. Agenda Introduction Brief OpenEmbedded introduction / history

More information

Boot your computer into GNU/Linux. Overview. Introduction to git on the command line. Introduction to git on the command line

Boot your computer into GNU/Linux. Overview. Introduction to git on the command line. Introduction to git on the command line Overview slide 1 slide 2 Boot your computer into GNU/Linux during this tutorial we will examine how touse git from the command line we will also browse some of the files in the linux kernel and gcc if

More information

Sony s Open Devices Project. Goals Achievements. What went right? What went wrong? Lessons learned

Sony s Open Devices Project. Goals Achievements. What went right? What went wrong? Lessons learned 1 Sony s Open Devices Project Goals Achievements What went right? What went wrong? Lessons learned 2 Ambitious project to support open software on Sony Mobile s phone platforms 2 main areas: Android Open

More information

Working with Kernel Modules Lab Wind River Systems, Inc

Working with Kernel Modules Lab Wind River Systems, Inc Working with Kernel Modules Lab 2013 Wind River Systems, Inc Working with Kernel Modules Lab Objective In this lab, you will learn how to manage kernel modules in your projects, as well as how to develop

More information