Introduction to Embedded Linux - a short Crash Course

Course Objectives

The aim of this short crash course is to provide a basic overview of embedded GNU/Linux. What are the components needed to build an embedded GNU/Linux system where to get them from and how to configure/build/install them? Where to get help? What about licenses? Compared to other trainings offered here the time spend with hands-on will be limited in order to meet the one day goal. You will be provided with handouts and exercises so you can can go through them at your own pace at home in order to be able to go ahead and configure/build an embedded GNU/Linux system with mainline components. After this one day overview you might even want to book one of the more in-depth trainings which can be offered on-site and on-line as well. Feel free to ask for a quote.

Description

This one day training class uses hands-on exercises combined with instruction to illustrate some basic concepts of Embedded GNU/Linux. Hands on sessions are performed with a toolchain from the the freely available Yocto Project, on a Beagle Bone Black. This enables you to take the course material home and work with it. The whole workshop is designed to bring you quickly up to speed. The concepts and commands necessary to make effective use of Embedded GNU/Linux are described through a combination of theory and on-the-job training. Don’t reinvent the wheel, but learn from an experienced trainer and take home a working knowledge of Embedded GNU/Linux and the ability to use it effectively in your own embedded development project.

Prerequisites

Basic knowledge of how to use Linux (Ubuntu)

Familiarity with embedded C concepts and programming

Ability to develop software using C syntax

Basic knowledge of embedded processor development boards

... or no fear to learn the above ...

Who should attend?

Managers, project managers, software-, hardware-, development- and systems engineers, technicians and those interested in technology who want to try to understand as quickly as possible how Embedded GNU/Linux works. You have to use GNU/Linux, or have the luxury to decide whether it makes sense to use it or not. You may already use Embedded GNU/Linux, but you are not quite sure if you do everything right. You currently use another operating system and want to find out whether Linux would maybe be more cost effective...

Course Outline

Introduction

What is GNU/Linux?

Licensing

Standards

Working with free software

The Unix Philosophy

Stuff needed (part 1)

Toolchain

nfs server

tftp server

Eval board

What is the Beagle?

Booting

Booting the Beagle

Partition/Format SD card

Populate partitions with given boot-loader, kernel, rootfs

Configure serial console

Board booting Linux

Stuff needed (part 2)

U-boot

What is U-boot?

What does it do?

Fancy Stuff

Get/configure/build install

Flat device tree

What is a flat device tree?

Linux kernel

What is uImage?

Get/configure/build install

Kernel modules

Rootfs

Use rootfs from the Yocto Project

Kernel Modules

Hello Kernel, module-init-tools, Kconfig, Kbuild

out of tree, in tree

Device Drivers

Device Nodes

Registration, Initialization, Open, Release,...

Miscellaneous Character Drivers

Debugging/Profiling/Tracing

Simple debugging tools

lsof, ltrace, strace, proc, top, netstat, syslog

Advanced debugging tools

What’s a debugger?

gdb

target gdb

gdbserver

kgdb/kdb + agent-proxy

JTAG

What is profiling?

What is tracing?

Profiling tools

time, gprof, gcov, oprofile

Tracing tools

ftrace, kernelshark, LTTng

Misc. tools

top, latencytop, powertop, powerdebug, crash, systemtap

Please fill in this form if you have further questions regarding this or any other training and do not hesitate to contact us if you have any further questions.