All Projects → PacktPublishing → Embedded-Linux-for-Developers

PacktPublishing / Embedded-Linux-for-Developers

Licence: MIT license
Code repository for Embedded Linux for Developers, Published by Packt

Programming Languages

c
50402 projects - #5 most used programming language
BitBake
79 projects
Makefile
30231 projects
C++
36643 projects - #6 most used programming language
shell
77523 projects
python
139335 projects - #7 most used programming language

#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

  1. Setting up the host system
  2. Installing Poky
  3. Creating a build directory
  4. Building your first image
  5. Explaining the Freescale's Yocto ecosystem
  6. Installing support for Freescale's hardware
  7. Building wandboard images
  8. Troubleshooting your wandboard's first boot.
  9. Configuring network booting for a development setup
  10. Sharing downloads
  11. Sharing the shared state cache
  12. Setting up a package feed
  13. Using build history
  14. Working with build statistics
  15. Debugging the build system

####Chapter 2: The BSP layer

  1. Creating a custom BSP layer
  2. Introducing system development workflows
  3. Adding a custom kernel and bootloader
  4. Building the u-boot bootloader.
  5. Explaining Yocto's Linux kernel support
  6. Describing Linux's build system
  7. Configuring the Linux kernel
  8. Building the Linux kernel
  9. Building external kernel modules
  10. Debugging the Linux kernel and modules
  11. Debugging the Linux kernel booting process.
  12. Using the kernel tracing system
  13. Managing the device tree
  14. Debugging device tree issues

####Chapter 3: The software layer

  1. Exploring an image contents
  2. Adding a new software layer
  3. Selecting specific package version and providers
  4. Adding supported packages
  5. Adding new packages
  6. Adding data, scripts or configuration files
  7. Managing users and groups
  8. Using the sysvinit initialization system
  9. Using the systemd initialization system
  10. Installing package installation scripts
  11. Reducing the Linux kernel image size
  12. Reducing the root filesystem image size
  13. Releasing software
  14. Analyzing your system for compliance
  15. Working with open source and proprietary code

####Chapter 4: Application development

  1. Introducing toolchains
  2. Preparing and using an SDK
  3. Using the Application Development Toolkit
  4. Using the Eclipse IDE
  5. Developing GTK+ applications
  6. Using the QT creator IDE
  7. Developing QT applications
  8. Describing workflows for application development
  9. Working with GNU make
  10. Working with the GNU build system
  11. Working with the cmake build system
  12. Working with the scons builder
  13. Developing with libraries
  14. Working with the Linux framebuffer
  15. Using the X windows system
  16. Using Wayland
  17. Adding python applications
  18. Integrating the Oracle Java Runtime Environment
  19. Integrating the OpenJDK Java Development Kit
  20. Integrating Java applications

####Chapter 5: Debugging, tracing and profiling

  1. Analyzing core dumps
  2. Native gdb debugging
  3. Cross gdb debugging
  4. Using strace for application debugging
  5. Using the kernel's performance counters
  6. Using static kernel tracing
  7. Using dynamic kernel tracing
  8. Using dynamic kernel events
  9. Exploring Yocto's tracing and profiling tools
  10. Tracing and profiling with perf
  11. Using systemtap
  12. Using oprofile
  13. Using LTTng
  14. Using blktrace

##Related Products

Embedded Linux Development with Yocto Project

Mastering Embedded Linux Programming

Click here if you have any feedback or suggestions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].