#Embedded Linux for Developers
This is the code repository for Embedded Linux for Developers, published by Packt. It contains all the supporting project files necessary to work through the course from start to finish.
##What you will learn
- Use the Yocto Project in the embedded Linux development process
- Get familiar with and customize the bootloader for a board
- Discover more about real-time layer, security, virtualization, CGL, and LSB
- See development workflows for the U-Boot and the Linux kernel, including debugging and optimization
- Understand the open source licensing requirements and how to comply with them when cohabiting with proprietary programs
- Optimize your production systems by reducing the size of both the Linux kernel and root filesystems
- Understand device trees and make changes to accommodate new hardware on your device
- Design and write multi-threaded applications using POSIX threads
- Measure real-time latencies and tune the Linux kernel to minimize them
##Note ##Module 2
###Dependencies
This layer depends on:
URI: git://git.yoctoproject.org/meta-fsl-arm branch: dizzy
###Patches
Please submit any patches against the bsp-custom layer to Packt Publishing via http://www.packtpub.com/submit-errata, or to the author Alex Gonzalez at alexlindusembedded.com
###Table of Contents
I. Adding the bsp-custom layer to your build
II. Misc
###I. Adding the bsp-custom layer to your build
In order to use this layer, you need to make the build system aware of it.
Assuming the bsp-custom layer exists at the top-level of your yocto build tree, you can add it to the build system by adding the location of the bsp-custom layer to bblayers.conf, along with any other layers needed. e.g.:
BBLAYERS = "
${BSPDIR}/sources/poky/meta
${BSPDIR}/sources/poky/meta-yocto
${BSPDIR}/sources/meta-openembedded/meta-oe
${BSPDIR}/sources/meta-openembedded/meta-multimedia
${BSPDIR}/sources/meta-fsl-arm
${BSPDIR}/sources/meta-fsl-arm-extra
${BSPDIR}/sources/meta-fsl-demos
${BSPDIR}/sources/meta-bsp-custom
"
###II. Misc
This layer should be used in conjuntion with the "Embedded Linux Projects Using Yocto Project Cookbook" published by Packt Publising in 2015.
The commits are named with the chapter and recipe number they belong to:
CH_N: Recipe title
where,
CH is the chapter number N is the recipe number according to the list below.
Recipe list
####Chapter 1: The build system
- Setting up the host system
- Installing Poky
- Creating a build directory
- Building your first image
- Explaining the Freescale's Yocto ecosystem
- Installing support for Freescale's hardware
- Building wandboard images
- Troubleshooting your wandboard's first boot.
- Configuring network booting for a development setup
- Sharing downloads
- Sharing the shared state cache
- Setting up a package feed
- Using build history
- Working with build statistics
- Debugging the build system
####Chapter 2: The BSP layer
- Creating a custom BSP layer
- Introducing system development workflows
- Adding a custom kernel and bootloader
- Building the u-boot bootloader.
- Explaining Yocto's Linux kernel support
- Describing Linux's build system
- Configuring the Linux kernel
- Building the Linux kernel
- Building external kernel modules
- Debugging the Linux kernel and modules
- Debugging the Linux kernel booting process.
- Using the kernel tracing system
- Managing the device tree
- Debugging device tree issues
####Chapter 3: The software layer
- Exploring an image contents
- Adding a new software layer
- Selecting specific package version and providers
- Adding supported packages
- Adding new packages
- Adding data, scripts or configuration files
- Managing users and groups
- Using the sysvinit initialization system
- Using the systemd initialization system
- Installing package installation scripts
- Reducing the Linux kernel image size
- Reducing the root filesystem image size
- Releasing software
- Analyzing your system for compliance
- Working with open source and proprietary code
####Chapter 4: Application development
- Introducing toolchains
- Preparing and using an SDK
- Using the Application Development Toolkit
- Using the Eclipse IDE
- Developing GTK+ applications
- Using the QT creator IDE
- Developing QT applications
- Describing workflows for application development
- Working with GNU make
- Working with the GNU build system
- Working with the cmake build system
- Working with the scons builder
- Developing with libraries
- Working with the Linux framebuffer
- Using the X windows system
- Using Wayland
- Adding python applications
- Integrating the Oracle Java Runtime Environment
- Integrating the OpenJDK Java Development Kit
- Integrating Java applications
####Chapter 5: Debugging, tracing and profiling
- Analyzing core dumps
- Native gdb debugging
- Cross gdb debugging
- Using strace for application debugging
- Using the kernel's performance counters
- Using static kernel tracing
- Using dynamic kernel tracing
- Using dynamic kernel events
- Exploring Yocto's tracing and profiling tools
- Tracing and profiling with perf
- Using systemtap
- Using oprofile
- Using LTTng
- Using blktrace
##Related Products
Embedded Linux Development with Yocto Project
Mastering Embedded Linux Programming
Click here if you have any feedback or suggestions.