Getting Started with Embedded Linux — A 5 day course

contact usEnquire about this course


This is a very intensive course which aims to provide beginners to embedded linux with sufficient understanding to be able to start developing and maintaining applications for embedded linux based systems, to build linux kernels for their target systems, to work with cross development environments and be able to configure a kernel on a target board for working with such environments.

The course will also sand demonstrate how to write simple device drivers and how to write user applications to drive basic hardware such as buttons, LEDs, simple motors as well as I2C and SPI devices.

At the Linux user level the course covers key topics essential to understanding Linux such as logging on, Linux file systems, TCP/IP networking, user accounts and security, the Linux boot process, terminals and serial ports, and basic shell programming.

Each attendee will be given a full ARM 9 based embedded system (Tin Can Tools' Hammer Development Kit) that they will be able to take away with them so as that they can continue developing skills learned on the course. This kit includes a JTAG probe that can be used on other embedded targets as well.


You'll learn fundamentals such as user accounts, Unix permissions and access control. You'll gain confidence in finding your way around Linux system installations using standard Linux commands.

You'll become familiar with the vi editor and be able to use it proficiently to create and modify files. You'll learn, the principles of how Linux boots, both on PCs (GRUB, LILO) and on embedded systems (U-Boot).

You'll get a good introduction to working with the shell and with the standard Unix tools and utilities (including the BusyBox toolset on the ARM 9 target system). You'll also learn how to set up and configure disk based, in memory, and flash file systems.

You'll gain the skills needed to configure ethernet and serial communications ports and TCP/IP networking. And you'll learn how to use package managers (both RPM and APT) to install software.

You will also be introduced to Posix API programming and be shown how to write applications that will make use of terminal and file i/o, create and manage tasks and threads, memory mapping and how it can be used to drive memory mapped hardware from user applications.

The Linux device driver model will be explained and techniques for writing kernel loadable modules will be introduced.

You will also be shown how to configure and build Linux kernels.

As well as building applications running on the PC, you will be shown how to use QEMU to set up and install Linux on "emulated targets" and run applications on these targets.

You will, of course, also learn how to install Linux kernels on your embedded ARM 9 target, and how to use JTAG to debug applications on it.



Working with the command line and the shell

Managing directories and files

Basic use of the vi text editor

Understanding and viewing processes

Managing the network configuration

Managing user access and security

Setting up a linux file system

Understanding System initialisation

Connecting a system to the network

Basic POSIX API Programming

Understanding the Kernel Architecture

Cross Compilation - Kernel and Application Building for Remote Targets

Driving hardware on the embedded target

Suitable For

Attendees should be embedded systems developers.


Some experience of C programming

Some experience of working with Linux or Unix at the command line