Anmeldung beendet
Info
Introduction to Embedded Linux & the Yocto Project
After a quick introduction to Embedded Linux (2 days) to provide an understanding of the essentials to utilize the Yocto Project (3 days). After the introduction we’ll see how a BSP/framework maintainer would use the Yocto Project as well as developers who might not even want/need to know they are using it.
This five day training combines theory with hands-on exercises in order to introduce Embedded Linux and the Yocto Project.
It answers frequently asked questions like:
- What is GNU/Linux?
- Why use upstream?
- Where to get u-boot/the kernel from? How to configure/build/install it?
- How does interprocess communication work and what to use/avoid?
- Is it really necessary to use another version of the tool-chain/libraries/packages for each and every GNU/Linux project and on top of that to follow a different work-flow each time?
- Can you ensure that the development environment is identical for all developers/suppliers and that you can still produce identical builds like today in 10+ years from now?
- Can the YP help you with Open Source license audits or do you prefer a copyright troll instead?
- ... and much more
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
You already use GNU/Linux for your projects and have probably heard about the Yocto Project, but did not dare to have a closer look into it, or had difficulties using it. You don’t know whether and how your daily workflow can be accomodated in the YP and generally find the YP rather complicated. Why do we need all this since up to know everything was (supposedly) much easier? After the training you should be able to decide whether you need the YP or not. The workshop is aimed at software-, development-, system engineers, testers, administrators, engineers and other parties interested in the YP, with a minimal knowledge of Embedded GNU/Linux.
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/kernel space programming with GNU/Linux
- Intermediate C programming knowledge
- It’s sufficient to know how to build the GNU/Linux kernel, kernel drivers in/out of tree and the fdt from the kernel side of things to follow the Yocto training which we'll try to quickly cover in the first two days.
Training Content
- Introduction
- Introduction | History
- Eval Board
- Eval Board Introduction
- Booting
- How does Linux boot on a PC
- How is an Embedded System different?
- Booting the target
- Boot Sequence
- SD card partitions
- Stuff needed
- U-Boot
- U-Boot: Fancy Stuff
- U-Boot: Get/Configure/Build/Install
- U-Boot: Commands
- Fdt
- Kernel
- Kernel: Get/kbuild
- Kbuild
- Kernel: Configure/Build/Install
- Kernel: fdt
- Kernel: modules
- Kernel Modules
- ...can be
- init/exit
- Licensing
- tainted module/kernel
- EXPORT_SYMBOL()
- out of tree .ko makefile
- module-init-tools
- put module in kernel tree
- build and install
- load it
- parameter passing
- Access TCB
- Character Driver
- Device Files
- Intro
- device types
- major/minor
- Architecture
- Driver Kernel Interface
- Device Driver
- Intro
- Registration
- Initialization
- Open Release
- Misc. Char Drivers
- Device Files
- User Space Debugging
- Debugging: Simple Tools
- lsof, ltrace, strace,...
- procfs, top, netstat, syslog,...
- Debugging: Advanced Tools
- What’s a Debugger?
- target gdb
- gdb remote debugging
- Debugging: Simple Tools
- Kernel Debugging
- Debugging Intro
- KGDB/KDB
- JTAG
- Process IPC
- IPC Intro
- Unix/Linux architecture
- What’s on OS?
- What’s a scheduler?
- Linux scheduler
- Linux priorities
- Linux scheduler(s)
- Linux scheduling classes
- Process/Task/Thread
- errno
- fork()
- Process termination
- Process states
- Zombies
- More about Processes
- Watch a process
- Simple IPC
- shell redirection
- shelling out
- tempfiles
- IPC Generic
- IPC
- Message passing vs. shared memory
- Advanced IPC
- Pipes
- Signals
- Interrupted System Calls
- POSIX.4 Message Queues
- Semaphores Introduction
- Mutex
- Semaphores
- Shared Memory
- Sockets
- select
- self-pipe trick
- Other IPC mechanisms
- IPC techniques to avoid
- IPC Intro
- Real-time
- prerequisites
- Kernel vs. User Space
- Toolchain
- Program Sections
- Interrupts
- Reentrant Code
- Real-Time Intro
- Time/Utility Functions
- What is Real-Time?
- Determinism
- What is hard real-time?
- Real-Time Linux
- Degrees of Real-Time behavior
- Dual Kernel
- Xenomai
- Measurement results
- Real-Time Myths
- prerequisites
- Yocto Introduction
- What is Yocto?
- Why use the YP?
- What is the YP?
- Some tools under the YP umbrella
- Poky
- BitBake
- OE-Core
- Metadata
- The Yocto Autobuilder
- Intro
- What is the Yocto Autobuilder?
- Docker container (pull, launch container)
- Yocto build environment without Docker/Yocto Autobuilder
- Intro
- The YP Workflow
- Intro
- Workflow
- OE architecture
- Configuration
- User Configuration
- Features
- Machine Features
- Distro Features
- Combined Features
- Image Features
- Recipe Versioning
- Intro
- Hyphens
- SCM-based
- Pitfalls
- Devel/Stable
- Overrides
- Metadata (Recipes)
- Machine (BSP) Configuration
- Distribution Policy
- Sources
- Build
- Source fetching: do_fetch, do_unpack
- Patching
- Configure/Compile/Install
- Pseudo
- recipetool
- Examples of Recipes
- Single .c File Package
- Autotooled Package
- Splitting App. in Multiple Packages
- Output Analysis/Packaging
- Image Generation
- SDK Generation
- Customizing Images
- Intro
- local.conf
- IMAGE_FEATURES
- custom .bb files - inherit core-image
- custom .bb files - based on core-image-minimal
- custom packagegroups
- BitBake
- History
- Syntax
- Variable Expansion
- Variable Assignment
- Pre-/Append
- Removal (Override Style Syntax)
- Variable Flag Syntax
- Conditional Syntax (Overrides)
- Debugging
- BitBake debugging
- find recipes
- find images
- find packagegroups
- BitBake Environment
- BitBake logs
- Re-BitBake stuff
- force build/specific task
- cleansstate
- invalidate stamp
- Devshell
- Dependencies
- Packages
- Killall Bitbake
- BitBake with ncurses wrapper
- Tools/Tweaks
- Cleaning
- Cleaning to gain disc space
- Cleaning to rebuild
- Layers
- Intro
- bitbake-layers tool
- yocto-layer tool
- BSP
- Intro
- System Development Workflow
- BSP Developer’s Guide
- bsp-tool
- Kernel
- Intro
- System Development Workflow
- Kernel Development Manual
- defconfig + configuration fragment
- in tree kmod
- out of tree kmod
- fdt
- Software Development Kit
- Software Development Kit
- Intro
- Cross-Development Toolchain
- Sysroot
- The QEMU Emulator
- Eclipse Yocto Plug-in
- Performance Enhancing tools
- Installing SDKs & Toolchains
- Cross-Toolchains/SDKs
- Intro
- Building a Cross-Toolchain installer
- Using the Standard SDK
- Cross-Toolchain+Makefile
- Cross-Toolchain+Autotools
- Autotooled lib + App., recipes
- Extensible SDK
- Software Development Kit
- Package Management
- Software updates
- Working with packages
- IPK
- creating a package feed
- installing a package with opkg on the target
- Licensing
- Intro
- Add custom license to the YP
- Open Source License Compliance with the YP
- Devtool
- Intro
- Add recipe/Build/Deploy
- Create/Add layer
- Finish
- Modify/Update-Recipe
- Build/Run
- Build Image
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
Veranstaltungsort
Technologiezentrum TechBaseEclipseina GmbH im 1. Stock
Franz-Mayer-Straße 1
93053 Regensburg | 09:00 - 17:00
Deutschland
Koordinaten (Lat, Long):
49.002216, 12.100555
Karte anzeigenRoutenplanung