Registration
Info
Embedded Linux Systems Architecture
To provide an understanding of the essentials of embedded GNU/Linux, how the bits and pieces fit together. What components are 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 those software licenses? Hands-on exercises provide you with the necessary practical experience to go ahead and develop your own embedded GNU/Linux systems after completing this training successfully.
This five day training class uses hands-on exercises combined with instruction to illustrate the concepts of embedded GNU/Linux. It is designed to bring you quickly up to speed. The philosophy, concepts and commands necessary to make effective use of 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 GNU/Linux and the ability to use it effectively in your own embedded development project.
You can also book this seminar as an online-private-seminar! Just write us a short non-binding e-mail with the desired date and location as well as the number of participants: training@eclipseina.com
We also offer a training on the topic of the Yocto Project.
Get an overview of all our seminars on embedded-academy.com!
Target Group
Managers, project managers, software-, hardware-, development-, systems engineers, testers, administrators, technicians and other parties interested in the technology, who want to understand as quickly as possible how Embedded GNU/Linux works. You must use GNU/Linux or you have to luxury to decide whether it makes sense to use it or not. Maybe you already tried to use Embedded GNU/Linux, but are not quite sure that you did everything the right way. You currently use a different operating system and want to figure out whether GNU/Linux might be better and/or cheaper.
Prerequisites
- Basic familiarity with using a GNU/Linux system (e.g. Ubuntu) as an end user in user space
- Basic familiarity with a command line shell
- Basic knowledge of user space/application development with GNU/Linux
- Basic knowledge concerning embedded processors and development boards
- Basic C programming knowledge
- …and/or no fear to learn the above…
Training Content
Introduction
- History of Unix/Linux
- Licensing
- Standards
- Working with Free Software
- Spelunking
- Unix Philosophy
Host playground
- architecture
- shell
- FHS (file hierarchy standard)
- Devices, Daemon, Booting, Program Sections, Static/Shared Libraries
- permissions
- Access Control, Changing Permissions, umask
- hard/soft links
- real/effective uid/gid
Process/IPC
- Intro
- What's an OS?
- What's a scheduler?
- Linux: scheduler, priorities, scheduling classes
- process/task/thread
- errno
- fork
- Process termination
- Process states
- Zombies
- More about Processes
- IPC simple
- shell redirection, shelling out, tmpfiles
- IPC Generic
- Message passing vs. shared memory
- Advanced IPC
- pipes
- signals
- interrupted system calls
- message queues
- semaphores
- shared memory
- sockets
- select/poll
- IPC techniques to avoid
Embedded Specifics
- Intro
- Portability
- Build
- Cross/Native toolchain
- Toolchains
- C-Libraries
- glibc, uclibc, eglibc, others
- reduce shared lib size
Eval Board
- Booting
- How does LInux boot on a PC?
- How is an Embedded System different?
- Booting the target
- Boot sequence, SD card and partitions
Stuff Needed
- Host
- Toolkit
- The Yocto Project
- Install Yocto SDK
- SD card
- screen
- minicom
- tftp server
- Root file systems
- Nfs server
- Toolkit
- 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
- U-Boot
Rool File Systems
- Available root file systems
- prepare minimal-dev rootfs
- tftp server
- rootfs on ramdisk
- mtd
- rootfs on jffs2
- mtdparts
- rootfs on cramfs
- rootfs on ro ext2
- build/execute what's applicable from above on the target board
- rootfs comparison
Customizations
- System hangs
- pseudo tty
- getty
- runlevel
- static ip
- mount nfs
- ssh server
User Space Debugging
- Debugging Intro
- What's a bug?
- Types of bugs
- Debugging strategy
- Simple tools
- lsof, ltrace, strace,...
- procfs, top, netstat, syslog,...
- Advanced tools
- What’s a debugger?
- gdb
- host gdb
- target gdb
- gdb remote debugging
- gdb remote debugging with GUI
User Space Profiling/Tracing
- Profiling/Tracing tools
- strace
- system timers
- gprof
- gcov
- code optimization
- oprofile
- perf
- top an friends
- top
- latencytop
- powertop
- powerdebug
- crash
Real-time
- prerequisites
- Kernel vs. User Space
- interrupts
- reentrant code
- Real-time Intro
- What is Real-time
- Determinism
- Real-time Linux
- Hypervison
- Dual kernel
- Fully preemtive kernel
- 0 Vanilla Linux kernel
- 1 explicit preemption points
- 2 implicit preemption points
- 3 real-time preemption patch
- fully preemptive kernel
- hard real-time extensions
- Adeos/Xenomai
- adeos patch
- xenomai
- patch/config/build kernel
- run it on board
- Real-time myths
- must be fast
- rate monotonic
- universal methodology
- scheduling theory
- RTOS vs. Linux
- New hardware
- Dual kernel vs. Preempt-rt
- Future outlook Dual kernel
- Future outlook Preempt-rt
Technical requirements to attend a remote/online training
- (ship-it/web/host/target/phone) e-mail address to get login credentials
- (web) screen sharing/audio/video/whiteboard/chat/Q&A: https://www.bigmarker.com requires this: https://rlbl.me/bm-req.
- backup: (web)/audio (phone) conference call: https://www.turbobridge.com/international.html
- (host/target) shell: port 22 not blocked: something like: ssh @vlabx.dyndns.org
- backup: (host/target) shell via browser: port 443 not blocked: something like: https://vlabx.dyndns.org
Organiser:
Eclipseina GmbH | Embedded Academy
Technologiezentrum TechBase
Franz-Mayer-Straße 1
93053 Regensburg
Tel.: +49 941 / 462 974 20
Fax: +49 941 / 462 974 30
Not from Germany? Please send us a booking request to training@eclipseina.com
Event location
Technologiezentrum TechBaseEclipseina GmbH im 1. Stock
Franz-Mayer-Straße 1
93053 Regensburg | 09:00 - 17:00
Deutschland
Coordinates (lat, long):
49.002216, 12.100555
Show mapRoute planner