Building Products with Debian and Isar

Total Page:16

File Type:pdf, Size:1020Kb

Building Products with Debian and Isar Building Products with Debian and Isar Jan Kiszka Baurzhan Ismagulov Open Source Summit Japan 2019 About us Jan Kiszka <[email protected]> Baurzhan Ismagulov <[email protected]> ● Member of embedded Linux team at Siemens ● Work for ilbers GmbH Corporate Technology ● Provide software development services ● (In-house) consultant, architect, developer for ● Focus on embedded, real-time, networking, OSS virtualization ● Focus on kernel, real-time, virtualization, ● embedded build systems Contribute to Linux and other FOSS projects ● Upstream contributor / maintainer Unrestricted © 2019 Siemens AG, ilbers GmbH Page 2 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Agenda • Motivation & Approach 4 • Isar Image Build System 8 • How Isar Works 10 • Product Building Overview 12 • Isar Users 16 • Usage Patterns 19 • Summary 26 Unrestricted © 2019 Siemens AG, ilbers GmbH Page 3 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Motivation ● Build Linux-based products ● Linux base system ● Customizations ● Product-specific applications ● We want a product build system ● Tools are distribution-specific Unrestricted © 2019 Siemens AG, ilbers GmbH Page 4 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Which Distribution? Source distributions, e.g.: Binary distributions, e.g.: Yocto, OE, buildroot Debian, Ubuntu, SUSE, Fedora ● Toolchain bootstrap, cross-build => long ● Prebuilt binary packages => keep build times upstream QA ● Highly customizable, smaller footprint ● Larger images, slower boot by default ● High maintenance costs ● Maintained releases Unrestricted © 2019 Siemens AG, ilbers GmbH Page 5 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Debian ● Mature, high-quality, mainstream Linux distribution ● Support for many new and old hardware architectures ● Suitable for small and big installations ● Security updates ● License information Unrestricted © 2019 Siemens AG, ilbers GmbH Page 6 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Embedded Debian: Wishlist ● Build all sources in the right order with one command ● Bootable image generator ● Easy package customization ● Reproducible images ● Efficient variant management Unrestricted © 2019 Siemens AG, ilbers GmbH Page 7 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Isar ● Integration System for Automated Root filesystem generation https://github.com/ilbers/isar ● Goals ● Build systems in a Debian way ● Developer-centric workflow: One-command building ● Make customizations easy and repeatable ● Efficient building ● The best of both worlds ● Debian: Tested binary packages, tools, security updates ● Yocto: bitbake, recipes, layers ● Reuse Yocto knowledge of developers Unrestricted © 2019 Siemens AG, ilbers GmbH Page 8 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Hello, Image $ git clone https://github.com/ilbers/isar # Install packages and configure sudo as described in user_manual.md $ . isar-init-build-env ../build $ bitbake multiconfig:rpi-stretch:isar-image-base $ ls tmp/deploy/images/rpi isar-image-base.rpi-sdimg Unrestricted © 2019 Siemens AG, ilbers GmbH Page 9 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Image Generation Sequence of Isar 1 debootstrap Debian for target, also for host if cross-building debootstrap 2 Create buildchroots (target and host) 3 Build custom Debian packages buildchroot • pre-debianized packages • ad-hoc debianized packages package A package B (customizations/overlays, u-boot, …) 4 Assemble rootfs package C • debootstrap output • external packages • self-built packages target rootfs 5 Run imager (typically wic) • Filesystem image generation boot imaging • Partitioning • Bootloader installation and configuration Unrestricted © 2019 Siemens AG, ilbers GmbH Page 10 2019-07-18 Jan Kiszka, Baurzhan Ismagulov BitBake dpkg.bbclass ● A tool for task description and execution do_apt_fetch() { ... } ● Recipes: – Describe tasks (python, shell) do_install_builddeps() { ... } – May depend on other recipes do_runbuild() { ... } ● Tasks: e.g., fetch, patch, build ● Dependencies define: hello.bb – Which tasks to execute – Execution order DESCRIPTION = "Hello app" DEPENDS += "libhello" ● Classes: Repetitive stuff SRC_URI = "\ ● Efficient building git://gh.com/ilbers/hello.git \ file://0001.patch" – Parallel building SRCREV = "86cc719..." – Multiple targets in one run (multiconfig) inherit dpkg Unrestricted © 2019 Siemens AG, ilbers GmbH Page 11 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Building a Product Requirements • Directly bootable images for product boards • Product-specific base system customizations • Product-specific software • Reproducible by developers Tasks • Generate rootfs • Perform customizations • Build custom software: boot loaders, kernels, https://en.wikipedia.org/wiki/Newbear_77-68 drivers, libs, apps • Generate flash images for physical boards Unrestricted © 2019 Siemens AG, ilbers GmbH Page 12 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Layers product-x ● Group by product / department / feature... ├── conf │ └── layer.conf ● Config files, recipes, classes / include files, ... └── recipes-core ● ├── customizations E.g.: │ ├── customizations.bb ● meta: Isar core │ └── files │ └── postinst ● meta-company: Company common stuff └── images └── x-image.bb ● meta-prodline: Product line common stuff ● meta-bsp: Product X COTS BSP product-x product-y ● product-x: Product X-specific stuff meta-bsp meta-codecs ● meta-codecs: Product Y COTS libs meta-prodline ● product-y: Product Y-specific stuff meta-company meta Unrestricted © 2019 Siemens AG, ilbers GmbH Page 13 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Product Lifecycle ● Deployment: Copy image to flash ● Updates: Product-specific ● Install packages via apt ● Overwrite complete images ● Security updates: Packages and alerts from Debian ● Long-term support for chosen packages by Debian and Civil Infrastructure Project ● License compliance: Product-specific ● Rely on Debian license information ● FOSSology + manual checking Unrestricted © 2019 Siemens AG, ilbers GmbH Page 14 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Is Isar Right for Me? ● Build with one command ● No infrastructure needed upfront ● Use mainstream build tools ● Reuse binary packages ● Reuse code in multiple products ● Collaborate with multiple vendors Unrestricted © 2019 Siemens AG, ilbers GmbH Page 15 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Who Uses Isar? • Jailhouse images https://github.com/siemens/jailhouse-images • Xenomai images https://gitlab.denx.de/Xenomai/xenomai-images • Civil Infrastructure Project core https://gitlab.com/cip-project/cip-core/isar-cip-core • Used at Siemens for an increasing number of embedded products https://en.wikipedia.org/wiki/Isar • Core of Mentor Embedded Linux Omni OS https://www.mentor.com/embedded-software/linux/ mel-omni-os Unrestricted © 2019 Siemens AG, ilbers GmbH Page 16 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Example: jailhouse-images jailhouse-images Isar Debian packages Unrestricted © 2019 Siemens AG, ilbers GmbH Page 17 2019-07-18 Jan Kiszka, Baurzhan Ismagulov jailhouse-images in a Nutshell • Started early 2018 with x86 QEMU/KVM setup - ./build-images.sh • By now 8 targets: #)ailable images demo images: 1: /01U/341 Intel-x87 virtual target • 2 virtual 2: /01U #$174 )irtual target • 6 physical 3: Orange Pi Zero >8?6 1B editionA 4: Intel B2% (B2%7%#C, 6 G@ R#1A • 3 architectures 5: Marvell 0F<$0FFObin >1 EB editionA • Prerequisite for building: docker (privileged) 6: Marvell 1#%%&5#G;bin 7: Le1aker &iKey >Kirin 78+ So%D 2 EB editi • git clone https://github.com/ 8: #)net UltraJ7 siemens/jailhouse-images 0: all (may ta*e hours...) • ./build-images.sh Felect images to build (space-separated • ./start-qemu.sh <ARCH> index listA: . 2 9 • dd if=target.img of=/dev/mmcblk0 … Unrestricted © 2019 Siemens AG, ilbers GmbH Page 18 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Distro or Custom Kernel? • Set 30$B0IKB#10 to select target linux-${KERNEL_NAME} • Distro kernel is Isar default (and automatically provided) • linux-my-lovely-kernel.bb • require recipes-*ernel/linux/linux- custom.inc • Usage straightforward, just needs F$%K2$5 and 30$B0IKO0P%;BP5E • meta-isar/recipes-kernel/linux contains two custom kernel examples (CIP and mainline) Unrestricted © 2019 Siemens AG, ilbers GmbH Page 19 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Adding Out-of-Tree Kernel Modules • require recipes-kernel/linux-module/module.inc • Package name = recipe name + kernel name e.g. example-module-${KERNEL_NAME} • Module Makefile according to kbuild rules, e.g. obj-m := example-module.o • #2G;I;#O: list of modules to be loaded during boot Unrestricted © 2019 Siemens AG, ilbers GmbH Page 20 2019-07-18 Jan Kiszka, Baurzhan Ismagulov U-Boot • Distro U-Boot supported, though mostly available on maker boards (Raspberry Pi & Co.) • require recipes-bsp/u-boot/u-boot- custom.inc • Trival case just needs setting 2K@;;GK%;BP5E and 2K@;;GK@5B • Complex case may require overloading debian/rules file • Examples • meta-isar: mainline 2018.09 • jailhouse-images: MACCHIATObin, Ultra96 Unrestricted © 2019 Siemens AG, ilbers GmbH Page 21 2019-07-18 Jan Kiszka, Baurzhan Ismagulov Image Partitioning and Generation • Default case: wic tool • .wks files control partition layout and content • Same core as OE, but additional source plugins • bootimg-efi-isar (EFI-based boot partition) • bootimg-pcbios-isar (legacy boot partition) • rootfs-u-boot (used with u-boot-script) • wic references • Yocto manual: https://www.yoctoproject.org/docs/latest/dev-manu al/dev-manual.html#creating-partitioned-images-u sing-wic • Example wks files • Additional image formats (more planned) • ext4.img • fit • ubifs
Recommended publications
  • RZ/G Verified Linux Package for 64Bit Kernel V1.0.5-RT Release Note For
    Release Note RZ/G Verified Linux Package for 64bit kernel Version 1.0.5-RT R01TU0311EJ0102 Rev. 1.02 Release Note for HTML5 Sep 7, 2020 Introduction This release note describes the contents, building procedures for HTML5 (Gecko) and important points of the RZ/G Verified Linux Package for 64bit kernel (hereinafter referred to as “VLP64”). In this release, Linux packages for HTML5 is preliminary and provided AS IS with no warranty. If you need information to build Linux BSPs without a GUI Framework of HTML5, please refer to “RZ/G Verified Linux Package for 64bit kernel Version 1.0.5-RT Release Note”. Contents 1. Release Items ................................................................................................................. 2 2. Build environment .......................................................................................................... 4 3. Building Instructions ...................................................................................................... 6 3.1 Setup the Linux Host PC to build images ................................................................................. 6 3.2 Building images to run on the board ........................................................................................ 8 3.3 Building SDK ............................................................................................................................. 12 4. Components ................................................................................................................. 13 5. Restrictions
    [Show full text]
  • Embedded Linux Systems with the Yocto Project™
    OPEN SOURCE SOFTWARE DEVELOPMENT SERIES Embedded Linux Systems with the Yocto Project" FREE SAMPLE CHAPTER SHARE WITH OTHERS �f, � � � � Embedded Linux Systems with the Yocto ProjectTM This page intentionally left blank Embedded Linux Systems with the Yocto ProjectTM Rudolf J. Streif Boston • Columbus • Indianapolis • New York • San Francisco • Amsterdam • Cape Town Dubai • London • Madrid • Milan • Munich • Paris • Montreal • Toronto • Delhi • Mexico City São Paulo • Sidney • Hong Kong • Seoul • Singapore • Taipei • Tokyo Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. For information about buying this title in bulk quantities, or for special sales opportunities (which may include electronic versions; custom cover designs; and content particular to your business, training goals, marketing focus, or branding interests), please contact our corporate sales depart- ment at [email protected] or (800) 382-3419. For government sales inquiries, please contact [email protected]. For questions about sales outside the U.S., please contact [email protected]. Visit us on the Web: informit.com Cataloging-in-Publication Data is on file with the Library of Congress.
    [Show full text]
  • Riscv-Software-Stack-Tutorial-Hpca2015
    Software Tools Bootcamp RISC-V ISA Tutorial — HPCA-21 08 February 2015 Albert Ou UC Berkeley [email protected] Preliminaries To follow along, download these slides at http://riscv.org/tutorial-hpca2015.html 2 Preliminaries . Shell commands are prefixed by a “$” prompt. Due to time constraints, we will not be building everything from source in real-time. - Binaries have been prepared for you in the VM image. - Detailed build steps are documented here for completeness but are not necessary if using the VM. Interactive portions of this tutorial are denoted with: $ echo 'Hello world' . Also as a reminder, these slides are marked with an icon in the upper-right corner: 3 Software Stack . Many possible combinations (and growing) . But here we will focus on the most common workflows for RISC-V software development 4 Agenda 1. riscv-tools infrastructure 2. First Steps 3. Spike + Proxy Kernel 4. QEMU + Linux 5. Advanced Cross-Compiling 6. Yocto/OpenEmbedded 5 riscv-tools — Overview “Meta-repository” with Git submodules for every stable component of the RISC-V software toolchain Submodule Contents riscv-fesvr RISC-V Frontend Server riscv-isa-sim Functional ISA simulator (“Spike”) riscv-qemu Higher-performance ISA simulator riscv-gnu-toolchain binutils, gcc, newlib, glibc, Linux UAPI headers riscv-llvm LLVM, riscv-clang submodule riscv-pk RISC-V Proxy Kernel (riscv-linux) Linux/RISC-V kernel port riscv-tests ISA assembly tests, benchmark suite All listed submodules are hosted under the riscv GitHub organization: https://github.com/riscv 6 riscv-tools — Installation . Build riscv-gnu-toolchain (riscv*-*-elf / newlib target), riscv-fesvr, riscv-isa-sim, and riscv-pk: (pre-installed in VM) $ git clone https://github.com/riscv/riscv-tools $ cd riscv-tools $ git submodule update --init --recursive $ export RISCV=<installation path> $ export PATH=${PATH}:${RISCV}/bin $ ./build.sh .
    [Show full text]
  • Continuous Integration and Testing of a Yocto Project Based Automotive Head Unit
    CONTINUOUS INTEGRATION AND TESTING OF A YOCTO PROJECT BASED AUTOMOTIVE HEAD UNIT MARIO DOMENECH GOULART MIKKO RAPELI Embedded Linux Conference Europe 2016 ABOUT BMW CAR IT GMBH Founded in 2001 as a wholly owned subsidiary of the BMW AG Strengthen BMW's software competence View vehicles as software systems Develop innovative software for future BMW Group vehicles Prototype solutions for early and reliable project decisions Participate in several open-source communities and research projects Embedded Linux Conference Europe 2016 Page 2 CARS AND HEAD UNITS Embedded Linux Conference Europe 2016 Page 3 PROJECT SETUP Development of a head unit for BMW cars A connected multimedia computer with navigation and telephony Several companies, physically distributed Hundreds of developers, on various levels Complex infrastructure Technical and political obstacles to set up technical solutions Embedded Linux Conference Europe 2016 Page 4 CI SYSTEM REQUIREMENTS Provide fast feedback for developers, integrators, project organization Automatic multi-stage CI Software components change-verification in an SDK environment Build components Execute unit tests Software integration change-verification in the system build Build the full system, for all targets, all images Quality assurance checks after build Build Acceptance Testing (BAT) on real target environments (hardware, SDK) Embedded Linux Conference Europe 2016 Page 5 QUICK OVERVIEW OF YOCTO PROJECT Linux-based cross-compilation framework Set of metadata and a task scheduler which,
    [Show full text]
  • Yocto-Slides.Pdf
    Yocto Project and OpenEmbedded Training Yocto Project and OpenEmbedded Training © Copyright 2004-2021, Bootlin. Creative Commons BY-SA 3.0 license. Latest update: October 6, 2021. Document updates and sources: https://bootlin.com/doc/training/yocto Corrections, suggestions, contributions and translations are welcome! embedded Linux and kernel engineering Send them to [email protected] - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/296 Rights to copy © Copyright 2004-2021, Bootlin License: Creative Commons Attribution - Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0/legalcode You are free: I to copy, distribute, display, and perform the work I to make derivative works I to make commercial use of the work Under the following conditions: I Attribution. You must give the original author credit. I Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. I For any reuse or distribution, you must make clear to others the license terms of this work. I Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. Document sources: https://github.com/bootlin/training-materials/ - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/296 Hyperlinks in the document There are many hyperlinks in the document I Regular hyperlinks: https://kernel.org/ I Kernel documentation links: dev-tools/kasan I Links to kernel source files and directories: drivers/input/ include/linux/fb.h I Links to the declarations, definitions and instances of kernel symbols (functions, types, data, structures): platform_get_irq() GFP_KERNEL struct file_operations - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/296 Company at a glance I Engineering company created in 2004, named ”Free Electrons” until Feb.
    [Show full text]
  • With Yocto/Openembedded
    PORTING NEW CODE TO RISC-V WITH YOCTO/OPENEMBEDDED Martin Maas ([email protected]) 1st RISC-V Workshop, January 15, 2015 Monterey, CA WHY WE NEED A LINUX DISTRIBUTION • To build an application for RISC-V, you need to: – Download and build the RISC-V toolchain + Linux – Download, patch and build application + dependencies – Create an image and run it in QEMU or on hardware • Problems with this approach: – Error-prone: Easy to corrupt FS or get a step wrong – Reproducibility: Others can’t easily reuse your work – Rigidity: If a dependency changes, need to do it all over • We need a Linux distribution! – Automatic build process with dependency tracking – Ability to distribute binary packages and SDKs 2 RISCV-POKY: A PORT OF THE YOCTO PROJECT • We ported the Yocto Project – Official Linux Foundation Workgroup, supported by a large number of industry partners – Part I: Collection of hundreds of recipes (scripts that describe how to build packages for different platforms), shared with OpenEmbedded project – Part II: Bitbake, a parallel build system that takes recipes and fetches, patches, cross-compiles and produces packages (RPM/DEB), images, SDKs, etc. • Focus on build process and customizability 3 GETTING STARTED WITH RISCV-POKY • Let’s build a full Linux system including the GCC toolchain, Linux, QEMU + a large set of packages (including bash, ssh, python, perl, apt, wget,…) • Step I: Clone riscv-poky: git clone [email protected]:ucb-bar/riscv-poky.git • Step II: Set up the build system: source oe-init-build-env • Step III: Build an image (may
    [Show full text]
  • A Smart Way to Manage OSS Compliance with Yocto+SPDX
    A Smart Way to Manage OSS Compliance with Yocto+SPDX Zheng Ruoqin, Fujitsu [email protected] Lei Maohui, Fujitsu Copyright 2017 FUJITSU COMPUTER TECHNOLOGIES LIMITED Fujitsu’s contributions to Yocto community Data comes from yocto (2015 ~) Contribution in yocto Layers Changesets commits 1 oe-core 90 meta-openembedded 258 2 258 3 meta-cloud-services 80 4 meta-virtualization 21 90 80 5 meta-cgl 11 21 11 6 2 meta-qt5 2 1 Copyright 2017 FUJITSU COMPUTER TECHNOLOGIES LIMITED Fujitsu’s contributions to Yocto community Data comes from meta-openembedded.git (2015 ~) Developers with the most changesets Top changeset contributors by Developer Changesets employer 1 Andreas Müller 440 (11.2%) commits 2 Derek Straka 421 (10.7%) 3 Martin Jansa 312 (7.9%) 1407 4 Khem Raj 300 (7.6%) 5 Jackie Huang 141 (3.1%) 6 Armin Kuster 121 (3.1%) 7 Li xin (Fujitsu) 100 (2.5%) 8 Yi Zhao 86 (2.2%) 742 9 Roy Li 85 (2.1%) 10 Kai Kang 84 (2.1%) 11 Alexander Kanavin 81 (2.1%) 258 230 12 Fabio Berton 62 (1.6%) 94 78 30 13 Andre McCurdy 60 (1.5%) 14 Chen Qi 50 (1.3%) 15 Robert Yang 46 (1.2%) 16 Pascal Bach 44 (1.1%) 17 Bian Naimeng(Fujitsu) 38 (1.0%) 2 Copyright 2017 FUJITSU COMPUTER TECHNOLOGIES LIMITED Agenda Introduction of SPDX • Background of SPDX • What is SPDX • Who are working for SPDX • The status of SPDX specification • SPDX file Yocto+SPDX • What is Yocto • Why we use SPDX in Yocto • Current state about Yocto+SPDX • What we have done for Yocto+SPDX • Future work Manage SPDX files by smart • What is smart • What we have done • How to Manage SPDX files by smart • Future work 3 Copyright 2017 FUJITSU COMPUTER TECHNOLOGIES LIMITED Introduction of SPDX Background of SPDX What is SPDX Who are working for SPDX The status of SPDX specification SPDX file 4 Copyright 2017 FUJITSU COMPUTER TECHNOLOGIES LIMITED Background of SPDX(1/2) meta-ivi meta-agl OSS B OSS C (GPLv3) OSS A No GPLv3! OSS C (GPLv3) License problem will be met in your company.
    [Show full text]
  • Yocto Project and Embedded OS
    Yocto Project and Jeffrey Osier-Mixon Embedded OS •What is the Yocto Project and why is it important? •Working with an open source collaborative project & community Kevin McGrath •Yocto Project concepts in a nutshell: environment, metadata, tools • Using Yocto cross-compiler • Running kernel via qemu th • Module installation, virtio, etc. July 28 2015 • Lessons learned, capabilities 11:00 PDT (GMT -7) 1 Yocto Project and Embedded OS Our guests Jeffrey Osier-Mixon: Jeff "Jefro" Osier-Mixon works for Intel Corporation in Intel's Open Source Technology Center, where his current role is community manager for the Yocto Project.. Jefro also works as a community architect and consultant for a number of open source projects and speaks regularly at open source conferences worldwide. He has been deeply involved with open source since the early 1990s. Kevin McGrath : Instructor at Oregon State University. I primarily teach the operating systems sequence and the senior capstone project sequence, but have taught architecture, assembly programming, introductory programming classes, and just about anything else that needs someone to teach it. While my background is in network security and high performance computing (computational physics), today I mostly live in the embedded space, leading to the “ECE wannabe” title in my department. Oleg Verge (Moderator): Technical Program Manager Intel Higher Education, System Engineer MCSE,CCNA, VCP Intel® IoT Developer Kit v1.0 Hardware components = + + Helpful Linux* tools (GCC tool chain, perf, oProfile, Software image + etc.), required drivers (Wi-Fi*, Bluetooth®, etc.), useful = API libraries, and daemons like LighttPD and Node.js. + Intel XDK Support for various IDEs = + + + For C/C++ For java, For Arduino* For Visual + node.js.,html5 sketches Programming Cloud services = Intel IoT Analytics includes capabilities for data collection, + storage, visualization, and analysis of sensor data.
    [Show full text]
  • 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 the Yocto Project history, OpenEmbedded, Poky, BitBake, and Metadata in brief, so fasten your seat belt and welcome aboard! What is the Yocto Project? The Yocto Project is a "The Yocto Project provides open source, high-quality infrastructure and tools to help developers create their own custom Linux distributions for any hardware architecture, across multiple market segments. The Yocto Project is intended to provide a helpful starting point for developers." The Yocto Project is an open source collaboration project that provides templates, tools, and methods to help us create custom Linux-based systems for embedded products regardless of the hardware architecture. Being managed by a Linux Foundation fellow, the project remains independent of its member organizations that participate in various ways and provide resources to the project. It was founded in 2010 as a collaboration of many hardware manufacturers, open source operating systems, vendors, and electronics companies in an effort to reduce their work duplication, providing resources and information catering to both new and experienced users. Among these resources is OpenEmbedded-Core, the core system component, provided by the OpenEmbedded project. Meeting the Yocto Project The Yocto Project is, therefore, a community open source project that aggregates several companies, communities, projects, and tools, gathering people with the same purpose to build a Linux-based embedded product; all these components are in the same boat, being driven by its community needs to work together.
    [Show full text]
  • Yocto Project Tricks & Hacks
    Yocto project Tricks & Hacks - MOORTHY (moorthy.baskaravenkatraman-sambamoorthy @linaro.org) Agenda ❖ Yocto project (OE-Core) and bitbake usages ❖ Things to be handled for faster build and development ❖ Extensible SDK Installer ❖ Things to be handled for yocto version migration Introduction ✓ Python based build framework system ✓ Uses bitbake for task execution Open Embedded Core (OE-Core) - is a collaborative effort of yocto project and the recognized openembedded model - Advantages: major architectures supported, distro less, one version for a recipe Bitbake ➢ Engine to execute shell and python based tasks ➢ Parses meta-data and split up tasks ➢ Includes a fetch library to download source code Meta-openembedded ● Collection of multiple layers and a supplement for OE-core with additional packages Bitbake options ● To run individual task $ bitbake <recipe> -c <task> ● Force task to run (mainly for forceful configure and compile) $ bitbake <recipe> -c <task> -f ● To continue even on error $ bitbake <image> -k ● To create dependency tree file $ bitbake <image/recipe> -g ● To run without dependency $ bitbake -b ../meta-xxx/recipes-yyy/zzz/recipe-z.bb ● To show more logs $ bitbake -D <recipe> - enables more debug prints $ bitbake -v <recipe> - verbose log Override Source Revision Why? ● Queries to fetch a desired revision to build ● Helps to test new change on HEAD of source tree if SRCREV is pinned Options ★ SRCREV_pn-xxx ⇨ Picks the mentioned revision ⇨ ${AUTOREV} gets the HEAD revision from the source control ⇨ buildhistory-collect-srcrevs
    [Show full text]
  • Mono on F&S Boards
    Mono on F&S Boards Version 0.2 (2020-06-16) © F&S Elektronik Systeme GmbH Untere Waldplätze 23 D-70569 Stuttgart Germany Phone: +49(0)711-123722-0 Fax: +49(0)711-123722-99 About This Document This document describes how to run .NET framework applications via Mono on F&S Boards. Remark The version number on the title page of this document is the version of the document. It is not related to the version number of any software release! The latest version of this document can always be found at http://www.fs-net.de. How To Print This Document This document is designed to be printed double-sided (front and back) on A4 paper. If you want to read it with a PDF reader program, you should use a two-page layout where the title page is an extra single page. The settings are correct if the page numbers are at the outside of the pages, even pages on the left and odd pages on the right side. If it is reversed, then the title page is handled wrongly and is part of the first double-page instead of a single page. Titlepage 8 9 Typographical Conventions We use different fonts and highlighting to emphasize the context of special terms: File names Menu entries Board input/output Program code PC input/output Listings Generic input/output Variables History Date V Platform A,M,R Chapter Description Au 2020-05-18 0.1 ALL A ALL Initial version PG 2020-06-09 0.2 ALL M ALL Correct typos and footer PG 2020-06-09 0.2 ALL A 2 Add System requirements chapter PG 2020-06-09 0.2 ALL M 8 Add GTK# tutorial directly into this document PG V Version A,M,R Added, Modified, Removed
    [Show full text]
  • Buildroot Vs Yocto: Differences for Your Daily Job
    Buildroot vs Yocto: Differences for Your Daily Job Luca Ceresoli — AIM Sportline [email protected] http://lucaceresoli.net ELC-E 2018 About me • Embedded Linux engineer at AIM Sportline http://www.aim-sportline.com/ • Develop products on custom hardware • Kernel, drivers, bootloader, FPGA • Integration, build system • Open source enthusiast • Contributor to Buildroot, the Linux kernel and a few other projects 1 Introduction • This is not a feature comparison, not a selection guide • If you need one: • Buildroot vs. OpenEmbedded/Yocto: A Four Hands Discussion, Belloni and Petazzoni, ELC 2016 (slides and video online) • http://www.jumpnowtek.com/linux/ Choosing-an-embedded-linux-build-system.html • https://opensource.com/article/18/6/embedded-linux-build-tools • Fact: both tools have pros and cons This is not… • This is not a tutorial 2 • If you need one: • Buildroot vs. OpenEmbedded/Yocto: A Four Hands Discussion, Belloni and Petazzoni, ELC 2016 (slides and video online) • http://www.jumpnowtek.com/linux/ Choosing-an-embedded-linux-build-system.html • https://opensource.com/article/18/6/embedded-linux-build-tools • Fact: both tools have pros and cons This is not… • This is not a tutorial • This is not a feature comparison, not a selection guide 2 • Fact: both tools have pros and cons This is not… • This is not a tutorial • This is not a feature comparison, not a selection guide • If you need one: • Buildroot vs. OpenEmbedded/Yocto: A Four Hands Discussion, Belloni and Petazzoni, ELC 2016 (slides and video online) • http://www.jumpnowtek.com/linux/ Choosing-an-embedded-linux-build-system.html • https://opensource.com/article/18/6/embedded-linux-build-tools 2 This is not… • This is not a tutorial • This is not a feature comparison, not a selection guide • If you need one: • Buildroot vs.
    [Show full text]