
Course Objectives
The aim of this 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 from? What about licenses? Hands-on exercises provide you with the necessary practical experience to go ahead and configure/build an embedded GNU/Linux system with mainline components.
Description
This 3-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 Yocto, on a Beagle-Bone Black Rev.C. 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 aboveand programming
Who should attend?
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
- Introduction
- History
- Licensing
- Standards
- The Unix Philosophy
Embedded Specifics
- What’s an Embedded System?
- Embedded vs. Desktop Linux
- Software Release
- Build for your Target
- Toolchains
- C-libraries
Eval board
- Eval Board
- Booting GNU/Linux on a PC
- Booting GNU/Linux on an Embedded System
- Boot Sequence
- SD card partitions
Stuff needed
- Host
- Toolkit
- Install Yocto SDK
- SD card
- screen
- minicom
- tftp server
- Root file systems
- Nfs server
- Target
- U-Boot
- Das U-Boot
- Scripting
- Fancy stuff
- Spash Screen
- U-Boot environment from Linux
- Post mortem
- Automatic SW update
- How to contribute?
- Get/Configure/Build/Install
- Commands
- Flat device tree
- What is a flat device tree?
- Device tree compiler
- Examples/Documentation
- Linux kernel
- Get
- Kbuild
- Multi Platfrom Support
- Configure/Build/Install
- Get/configure/build install
- What is uImage?
- Build fdt
- In-tree kernel modules
Customizations
- Customizations
- System hangs
- pseudo tty
- getty
- runlevel
- static ip
- Init
- Sys-V
- Various
- Systemd
- Bootgraph
- Bootchart
Kernel Modules
- init/exit
- Licensing
- tainted module/kernel
- EXPORT_SYMBOL
- out of tree .ko
- module-init-tools
- put module in tree
- loading/modprobe
- parameter passing
- access TCB
Device Drivers
- Device Files
- Device Types
- Device Nodes major/minor
- Kernel Driver Interface
- Device Driver
- Intro
- Registration
- Initialization
- Open/Release
- Miscellaneous Character Drivers
User Space Debugging
- Simple tools
- Advanced tools
- What’s a debugger?
- gdb
- target gdb
- gdb remote debugging
Kernel Debugging
- kgdb/kdb + agent-proxy
- JTAG
Profiling/Tracing
- Profiling/Tracing tools
- strace
- system timers
- gprof
- gcov
- ftrace/kernelshark
- systemtap
- oprofile
- perf
- LTTng
- top an friends
- top
- latencytop
- powertop
- powerdebug
- crash
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.
Public Elin
No events |