Linux Kernel and Android Development Class Linux Kernel and Android Development Class

Total Page:16

File Type:pdf, Size:1020Kb

Linux Kernel and Android Development Class Linux Kernel and Android Development Class Linux Kernel and Android Development Class Linux Kernel and Android Development Class Gr´egory Cl´ement,Michael Opdenacker, Maxime Ripard, S´ebastienJan, Thomas Petazzoni, Alexandre Belloni, Gr´egory Lemercier Free Electrons, Adeneo Embedded c Copyright 2004-2012, Free Electrons, Adeneo Embedded. Creative Commons BY-SA 3.0 license. Latest update: December 5, 2012. Document updates and sources: http://adeneo-embedded.com Corrections, suggestions, contributions and translations are welcome! Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 1/742 Rights to copy c Copyright 2004-2012, Free Electrons, Adeneo Embedded License: Creative Commons Attribution - Share Alike 3.0 http://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. Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 2/742 Welcome! I Audience: embedded software students I Purpose of this course: development environment setup, drivers and kernel development, image building I Prerequisites: basic knowledge of Linux, good knowledge of C, basic knowledge of OS I Agenda Course 1 : Linux kernel - Principles and deployment on embedded platforms (2 hours) Course 2 : Android - Principles and architecture (2 hours) Course 3 : Linux - Driver development (2 hours) I Targeted hardware platform : PandaBoard ES Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 3/742 Who is Adeneo Embedded? I BSP and driver development I Hardware Design and design reviews I Systems optimization I Embedded application development I Support contract I Training and Workshop I Consulting and engineering services Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 4/742 PandaBoard ES I Core Architecture: ARM I Core Sub-Architecture: Cortex-A9 dual-core I OMAP4460 I kit: ES Board revision B1, µSD card and Adaptor I features: High-Speed USB 2.0 OTG Port, Stereo Audio Out/In, Ethernet, HDMI, DVI, Camera I/F I clock max: 1.5 GHz Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 5/742 Linux Kernel Introduction Linux Kernel Introduction Gr´egory Cl´ement,Michael Opdenacker, Maxime Ripard, S´ebastienJan, Thomas Petazzoni, Alexandre Belloni, Gr´egory Lemercier Free Electrons, Adeneo Embedded c Copyright 2004-2012, Free Electrons, Adeneo Embedded. Creative Commons BY-SA 3.0 license. Corrections, suggestions, contributions and translations are welcome! Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 6/742 Linux Kernel Introduction Linux features Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 7/742 Linux kernel in the system Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 8/742 History I The Linux kernel is one component of a system, which also requires libraries and applications to provide features to end users. I The Linux kernel was created as a hobby in 1991 by a Finnish student, Linus Torvalds. I Linux quickly started to be used as the kernel for free software operating systems I Linus Torvalds has been able to create a large and dynamic developer and user community around Linux. I Nowadays, hundreds of people contribute to each kernel release, individuals or companies big and small. Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 9/742 Linux license I The whole Linux sources are Free Software released under the GNU General Public License version 2 (GPL v2). I For the Linux kernel, this basically implies that: I When you receive or buy a device with Linux on it, you should receive the Linux sources, with the right to study, modify and redistribute them. I When you produce Linux based devices, you must release the sources to the recipient, with the same rights, with no restriction.. Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 10/742 Linux kernel key features I Portability and hardware I Security. It can't hide its support. Runs on most flaws. Its code is reviewed architectures. by many experts. I Scalability. Can run on I Stability and reliability. super computers as well as I Modularity. Can include on tiny devices (4 MB of only what a system needs RAM is enough). even at run time. I Compliance to standards I Easy to program. You can and interoperability. learn from existing code. I Exhaustive networking Many useful resources on support. the net. Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 11/742 Supported hardware architectures I See the arch/ directory in the kernel sources I Minimum: 32 bit processors, with or without MMU, and gcc support I 32 bit architectures (arch/ subdirectories) Examples: arm, avr32, blackfin, m68k, microblaze, mips, score, sparc, um I 64 bit architectures: Examples: alpha, arm64, ia64, sparc64, tile I 32/64 bit architectures Examples: powerpc, x86, sh I Find details in kernel sources: arch/<arch>/Kconfig, arch/<arch>/README, or Documentation/<arch>/ Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 12/742 System calls I The main interface between the kernel and userspace is the set of system calls I About 300 system calls that provide the main kernel services I File and device operations, networking operations, inter-process communication, process management, memory mapping, timers, threads, synchronization primitives, etc. I This interface is stable over time: only new system calls can be added by the kernel developers I This system call interface is wrapped by the C library, and userspace applications usually never make a system call directly but rather use the corresponding C library function Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 13/742 Virtual filesystems I Linux makes system and kernel information available in user-space through virtual filesystems. I Virtual filesystems allow applications to see directories and files that do not exist on any real storage: they are created on the fly by the kernel I The two most important virtual filesystems are I proc, usually mounted on /proc: Operating system related information (processes, memory management parameters...) I sysfs, usually mounted on /sys: Representation of the system as a set of devices and buses. Information about these devices. Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 14/742 Linux Kernel Introduction Linux versioning scheme and development process Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 15/742 Until 2.6 (1) I One stable major branch every 2 or 3 years I Identified by an even middle number I Examples: 1.0.x, 2.0.x, 2.2.x, 2.4.x I One development branch to integrate new functionalities and major changes I Identified by an odd middle number I Examples: 2.1.x, 2.3.x, 2.5.x I After some time, a development version becomes the new base version for the stable branch I Minor releases once in while: 2.2.23, 2.5.12, etc. Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 16/742 Until 2.6 (2) Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 17/742 Changes since Linux 2.6 (1) I Since 2.6.0, kernel developers have been able to introduce lots of new features one by one on a steady pace, without having to make major changes in existing subsystems. I So far, there was no need to create a new development branch (such as 2.7), which would massively break compatibility with the stable branch. I Thanks to this, more features are released to users at a faster pace. Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 18/742 Changes since Linux 2.6 (2) Since 2.6.14, the kernel developers agreed on the following development model: I After the release of a 2.6.x version, a two-weeks merge window opens, during which major additions are merged. I The merge window is closed by the release of test version 2.6.(x+1)-rc1 I The bug fixing period opens, for 6 to 10 weeks. I At regular intervals during the bug fixing period, 2.6.(x+1)-rcY test versions are released. I When considered sufficiently stable, kernel 2.6.(x+1) is released, and the process starts again. Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 19/742 Merge and bug fixing windows Adeneo Embedded. Consulting, Engineering, Training and Support. http://www.adeneo-embedded.com/ 20/742 More stability for the kernel source tree I Issue: bug and security fixes only released for most recent stable kernel versions. I Some people need to have a recent kernel, but with long term support for security updates. I You could get long term support from a commercial embedded Linux provider. I You could reuse sources for the kernel used in Ubuntu Long Term Support releases (5 years of free security updates). I The http://kernel.org front page shows which versions will be supported for some time (up to 2 or 3 years), and which ones won't be supported any more ("EOL: End Of Life") Adeneo Embedded.
Recommended publications
  • Atomicity and Visibility in Tiny Embedded Systems
    Atomicity and Visibility in Tiny Embedded Systems John Regehr Nathan Cooprider David Gay University of Utah, School of Computing Intel Research Berkeley {regehr, coop}@cs.utah.edu [email protected] Abstract bool flag = false; // interrupt handler Visibility is a property of a programming language’s void __vector_5 (void) memory model that determines when values stored by { one concurrent computation become visible to other atomic flag = true; computations. Our work exploits the insight that in } nesC, a C-like language with explicit atomicity, the traditional way of ensuring timely visibility—volatile void wait_for_interrupt(void) variables—can be entirely avoided. This is advan- { tageous because the volatile qualifier is a notorious bool done = false; do { source of programming errors and misunderstandings. atomic if (!flag) done = true; Furthermore, the volatile qualifier hurts performance } while (!done); by inhibiting many more optimizations than are neces- } sary to ensure visibility. In this paper we extend the semantics of nesC’s atomic statements to include a visi- bility guarantee, we show two ways that these semantics Figure 1. nesC code containing a visibility er- can be implemented, and we also show that our better ror implementation has no drawbacks in terms of resource usage. Until now, nesC has left it to programmers to en- 1. Introduction sure visibility by judicious use of C’s volatile qual- ifier. In this paper we investigate the idea of strength- ening nesC’s memory model such that the semantics of The nesC [5] language is a C dialect designed for pro- atomic are augmented with a visibility guarantee. This gramming embedded wireless sensor network nodes.
    [Show full text]
  • Operating Systems and Applications for Embedded Systems >>> Toolchains
    >>> Operating Systems And Applications For Embedded Systems >>> Toolchains Name: Mariusz Naumowicz Date: 31 sierpnia 2018 [~]$ _ [1/19] >>> Plan 1. Toolchain Toolchain Main component of GNU toolchain C library Finding a toolchain 2. crosstool-NG crosstool-NG Installing Anatomy of a toolchain Information about cross-compiler Configruation Most interesting features Sysroot Other tools POSIX functions AP [~]$ _ [2/19] >>> Toolchain A toolchain is the set of tools that compiles source code into executables that can run on your target device, and includes a compiler, a linker, and run-time libraries. [1. Toolchain]$ _ [3/19] >>> Main component of GNU toolchain * Binutils: A set of binary utilities including the assembler, and the linker, ld. It is available at http://www.gnu.org/software/binutils/. * GNU Compiler Collection (GCC): These are the compilers for C and other languages which, depending on the version of GCC, include C++, Objective-C, Objective-C++, Java, Fortran, Ada, and Go. They all use a common back-end which produces assembler code which is fed to the GNU assembler. It is available at http://gcc.gnu.org/. * C library: A standardized API based on the POSIX specification which is the principle interface to the operating system kernel from applications. There are several C libraries to consider, see the following section. [1. Toolchain]$ _ [4/19] >>> C library * glibc: Available at http://www.gnu.org/software/libc. It is the standard GNU C library. It is big and, until recently, not very configurable, but it is the most complete implementation of the POSIX API. * eglibc: Available at http://www.eglibc.org/home.
    [Show full text]
  • System Size BOF
    ELC 2009 System Size BOF Michael Opdenacker Free Electrons 1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Rights to copy © Copyright 2004-2009, Free Electrons [email protected] Document sources: http://free-electrons.com/pub/conferences/2009/elc/ Updates on size reduction techniques can be found on http://free-electrons.com/docs/optimizations/ Attribution ± ShareAlike 3.0 You are free to copy, distribute, display, and perform the work Corrections, suggestions, to make derivative works contributions and translations are welcome! to make commercial use of the work Under the following conditions Latest update: Apr 28, 2009 Attribution. You must give the original author credit. 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. For any reuse or distribution, you must make clear to others the license terms of this work. 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. License text: http://creativecommons.org/licenses/by-sa/3.0/legalcode 2 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com 24 slides... To avoid a tragic increase in the size of your system. 3 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Why system size matters Because Linux wouldn©t fit otherwise To leave more space for user data (media players) To keep things easier to maintain Lighter code is faster to boot We should stop size growth because we don©t want to force people to use old kernels and old software.
    [Show full text]
  • Training Embedded Linux with Ac6 System Workbench: Implementing Linux on Embedded Systems - Operating Systems: Linux
    Training Embedded Linux with Ac6 System Workbench: Implementing Linux on Embedded Systems - Operating Systems: Linux D1S - Embedded Linux with Ac6 System Workbench Implementing Linux on Embedded Systems Objectives Understanding the architecture of the Linux system Learn how to install Linux on your hardware and create a BSP Explore the Linux system architecture Booting Linux Initializing the system Install existing packages on the target Learn how to install Linux on flash chips Labs are conducted on target boards, that can be: Dual Cortex/A7-based "STM32MP15-DISCO" boards from STMicroelectronics. Quad Cortex/A9-based "SabreLite" boards from NXP. Quad Cortex/A53-based "imx8q-evk" boards from NXP. We use a recent (4.x) linux kernel, as supported by the chip supplier. All labs are conducted using the System Workbench for Linux IDE. Course environment Printed course material (in English) One Linux PC for two trainees. One target platform for two trainees A version of “Ac6 System Workbench for Linux – Basic Edition” is provided free of charge to each trainee Prerequisite Good C programming skills Knowledge of Linux user programming (see our D0 - Linux User Mode Programming course) Preferably knowledge of Linux kernel and driver programming (see our D3 - Linux Drivers course) D1S - Embedded Linux with Ac6 System Workbench 09/28/21 Plan First Day Introduction to Linux Linux history and Version management Linux system architecture Processes and MMU System calls Shared libraries Linux components Toolchain Bootloader Kernel Root file system Linux
    [Show full text]
  • Embedded Linux Training
    Free Electrons Embedded Linux training Gregory Clement Thomas Petazzoni Michael Opdenacker Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Rights to copy © Copyright 2004-2011, Free Electrons [email protected] Electronic version of this document available on http://free-electrons.com/doc/training/embedded-linux Updates will be available on http://free-electrons.com/doc/training/embedded-linux/ Attribution ± ShareAlike 3.0 Corrections, suggestions, You are free contributions and translations are welcome! to copy, distribute, display, and perform the work to make derivative works Latest update: Feb 14, 2011 to make commercial use of the work Under the following conditions Attribution. You must give the original author credit. 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. For any reuse or distribution, you must make clear to others the license terms of this work. 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. License text: http://creativecommons.org/licenses/by-sa/3.0/legalcode Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Linux kernel Linux device drivers Free Electrons Board support code Our services Mainstreaming kernel code Kernel debugging Custom Development System integration
    [Show full text]
  • Implantación De Linux Sobre Microcontroladores
    Embedded Linux system development Embedded Linux system development DSI Embedded Linux Free Electrons Developers © Copyright 2004-2018, Free Electrons. Creative Commons BY-SA 3.0 license. Latest update: March 14, 2018. Document updates and sources: http://free-electrons.com/doc/training/embedded-linux Corrections, suggestions, contributions and translations are welcome! DSI - FCEIA http://dsi.fceia.unr.edu.ar 1/263 Derechos de copia © Copyright 2018, Luciano Diamand Licencia: Creative Commons Attribution - Share Alike 3.0 http://creativecommons.org/licenses/by-sa/3.0/legalcode Ud es libre de: I copiar, distribuir, mostrar y realizar el trabajo I hacer trabajos derivados I hacer uso comercial del trabajo Bajo las siguientes condiciones: I Atribuci´on. Debes darle el cr´editoal autor original. I Compartir por igual. Si altera, transforma o construye sobre este trabajo, usted puede distribuir el trabajo resultante solamente bajo una licencia id´enticaa ´esta. I Para cualquier reutilizaci´ono distribuci´on,debe dejar claro a otros los t´erminos de la licencia de este trabajo. I Se puede renunciar a cualquiera de estas condiciones si usted consigue el permiso del titular de los derechos de autor. El uso justo y otros derechos no se ven afectados por lo anterior. DSI - FCEIA http://dsi.fceia.unr.edu.ar 2/263 Hiperv´ınculosen el documento Hay muchos hiperv´ınculosen el documento I Hiperv´ıncluosregulares: http://kernel.org/ I Enlaces a la documentaci´ondel Kernel: Documentation/kmemcheck.txt I Enlaces a los archivos fuente y directorios del kernel: drivers/input include/linux/fb.h I Enlaces a declaraciones, definiciones e instancias de los simbolos del kernel (funciones, tipos, datos, estructuras): platform_get_irq() GFP_KERNEL struct file_operations DSI - FCEIA http://dsi.fceia.unr.edu.ar 3/263 Introducci´ona Linux Embebido Introducci´ona DSI Linux Embebido Embedded Linux Developers Free Electrons © Copyright 2004-2018, Free Electrons.
    [Show full text]
  • Linux Embebido Workshop Linux Embebido
    Linux embebido Workshop Linux Embebido Lucas Chiesa Joaquín de Andrés Germán Bassi Laboratorio Sistemas embebidos FIUBA Creative Commons BY-SA 3.0 license Basado en : http://free-electrons.com/docs/embedded-linux-intro ¿Sistema embebido? Un sistema embebido o empotrado es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas frecuentemente en un sistema de computación en tiempo real. Los sistemas embebidos se utilizan para usos muy diferentes a los usos generales a los que se suelen someter a las computadoras personales. Wikipedia, http://es.wikipedia.org/wiki/Sistema_embebido SASE 2011 - Workshop Linux embebido 2 Muchos sistemas diferentes Es una definición muy genérica: Cubre muchos tipos diferentes de sistemas Linea borrosa con sistemas tradicionales Productos ªConsumer electronics (CE)º: Routers hogareños, reproductores de DVD, Televisores, cámaras digitales, GPS, celulares ... Productos industriales: Controladores de máquinas, alarmas, equipos de vigilancia, autos, satélites... SASE 2011 - Workshop Linux embebido 3 Muchos productos diferentes SASE 2011 - Workshop Linux embebido 4 Linux Embebido El Software Libre y Abierto ofrece una rango muy amplio de herramientas para desarrollar sistemas embebidos. Ventajas Reutilizar componentes existentes para el sistema base. Permite concentrarse en el valor agregado del producto. Componentes de alta calidad y muy probados. (Kernel Linux , librerías de C ...) Control completo sobre la elección de componentes. Modificaciones posibles ilimitadas. Soporte por la comunidades: tutoriales, listas de correo... Bajo costo, sin licencias por unidad. Acceso más simple al software y a las herramientas. SASE 2011 - Workshop Linux embebido 5 Ejemplos de dispositivos GPS: TomTom y Garmin Routers hogareños: Linksys, Netgear PDA: Zaurus, Nokia N8x0 TVs, DVDs: Sony, Philips, ..
    [Show full text]
  • Starting with the Yocto Project
    FOSDEM 2015 Starting with the Yocto Project Alexandre Belloni Free Electrons [email protected] Put your business card in the box to participate in the raffle! Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 1/74 Alexandre Belloni I Embedded Linux engineer at Free Electrons I Embedded Linux expertise Free Electrons I Development, consulting and training I Strong open-source focus Embedded Linux Developers I Open-source contributor I Contributing the kernel support for Atmel ARM processors I Contributing the kernel support for Marvell ARM (Berlin) processors I Maintainer of the Crystalfontz boards in the meta-fsl-arm layer Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 2/74 What is the Yocto Project ? I Umbrella project, including: I pseudo I cross-prelink I matchbox I opkg I psplash I ... I The core components of the Yocto Project are: I BitBake, the build engine. It is a task scheduler, like make. It interprets configuration files and recipes (also called metadata) to perform a set of tasks, to download, configure and build specified packages and filesystem images. I OpenEmbedded-Core, a set of base layers. It is a set of recipes, layers and classes which are shared between all OpenEmbedded based systems. I Poky, the reference system. It is a collection of projects and tools, used to bootstrap a new distribution based on the Yocto Project. Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 3/74 The Yocto Project lexicon Free Electrons.
    [Show full text]
  • Embedded Real-Time Linux from Bootloader to Real-Time System (Linux RTOS) - Face-To-Face Training
    As of 01.10.2021 Embedded Real-Time Linux from Bootloader to Real-Time System (Linux RTOS) - Face-to-Face Training Objectives If you have to build an embedded Linux target - how do you begin? What do you need? How do you get a real-time system? This embedded Linux training focuses on the setup and operation of an embedded Linux system with hard real-time requirements. In part 1, we start with the embedded board without SW and create the necessary components, from the bootloader to the finished real-time Linux operating system and the first embedded Linux application. You get familiar with the process and can transfer the new knowledge to your individual project and your target architecture. Part 2 highlights the scheduling and real-time features of the RT preemption patch. Operation and use in real-time relevant application systems as well as useful synchronization mechanisms are covered in detail. The tools used in the embedded Linux training are available for a wide variety of architectures. Thus, we make sure that you can apply the practical knowledge gained in the embedded Linux training when working with your embedded board. Participants The embedded Linux training addresses software developers and software architects. Requirements Profound ANSI-C programming knowledge as well as good basic knowledge of Linux Embedded Real-Time Linux from Bootloader to Real-Time System (Linux RTOS) - Face-to-Face Training Content Development Environment - Cross-development toolchain - Creating a toolchain, kernel and root filesystem --> build systems
    [Show full text]
  • Training Embedded Linux with Yocto: Building Embedded Linux Platforms Using Yocto - Operating Systems: Linux
    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 the architecture of the Linux system Learn how to install Linux on your hardware and create a BSP Explore the Linux system architecture Booting Linux Initializing the system Install existing packages on the target Learn how to install Linux on flash chips Using and customizing Yocto Creating Yocto-based Embedded Linux platforms Using Yocto to develop components Labs can be conducted either on qemu or on target boards, that can be: Dual Cortex/A7-based "STM32MP15-DK2" boards from STMicroelectronics. Quad Cortex/A9-based "SabreLite" boards from NXP. Quad Cortex/A53-based "imx8q-evk" boards from NXP. We use the latest Yocto version supported by the chip provider We use a recent (4.x) linux kernel, as supported by the chip supplier Course environment Printed course material (in English) One Linux PC for two trainees. One target platform for two trainees (if not using qemu) Prerequisite Good C programming skills Knowledge of Linux user programming (see our D0 - Linux user mode programming course) Preferably knowledge of Linux kernel and driver programming (see our D3 - Linux Drivers course) Plan First Day Introduction to Linux D1Y - Embedded Linux with Yocto 10/01/21 Linux history and Version management Linux system architecture Processes and MMU System calls Shared libraries Linux system components Toolchain Bootloader Kernel Root
    [Show full text]
  • Formation Embedded Linux with Yocto: Building Embedded Linux Platforms Using Yocto - Systèmes D'exploitation: Linux
    Formation Embedded Linux with Yocto: Building embedded Linux platforms using Yocto - Systèmes d'Exploitation: Linux D1Y - Embedded Linux with Yocto Building embedded Linux platforms using Yocto Objectives Understanding the architecture of the Linux system Learn how to install Linux on your hardware and create a BSP Explore the Linux system architecture Booting Linux Initializing the system Install existing packages on the target Learn how to install Linux on flash chips Using and customizing Yocto Creating Yocto-based Embedded Linux platforms Using Yocto to develop components Labs can be conducted either on qemu or on target boards, that can be: Dual Cortex/A7-based "STM32MP15-DK2" boards from STMicroelectronics. Quad Cortex/A9-based "SabreLite" boards from NXP. Quad Cortex/A53-based "imx8q-evk" boards from NXP. We use the latest Yocto version supported by the chip provider We use a recent (4.x) linux kernel, as supported by the chip supplier Course environment Printed course material (in English) One Linux PC for two trainees. One target platform for two trainees (if not using qemu) Prerequisite Good C programming skills Knowledge of Linux user programming (see our D0 - Linux User Mode Programming course) Preferably knowledge of Linux kernel and driver programming (see our D3 - Drivers Linux course) Plan First Day Introduction to Linux D1Y - Embedded Linux with Yocto 09/23/21 Linux history and Version management Linux system architecture Processes and MMU System calls Shared libraries Linux system components Toolchain Bootloader Kernel
    [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]