Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
1. Linux Kernel Introduction
- Embedded Linux overview
- Linux kernel architecture
- User space vs. kernel space
- Core kernel responsibilities
- Kernel development workflow
- Survey of supported embedded platforms
2. Development Environment Setup
- Preparing the development workstation
- Cross-compilation concepts
- Installing necessary development tools
- Configuring the BeagleBone Black development board
- Serial console setup
- Booting the target device
3. Acquiring and Analyzing Kernel Source
- Linux kernel source tree
- Stable vs. long-term support kernels
- Downloading kernel sources
- Examining the source code structure
- Kernel documentation
- Managing kernel versions
4. Kernel Configuration, Compilation, and Boot
- Kernel configuration via menuconfig
- Selecting kernel features
- Cross-compiling the kernel
- Generating kernel images
- Installing kernel modules
- Bootloader overview
- Launching a custom kernel
5. Device Tree Fundamentals
- Function of the Device Tree
- Device Tree Source (DTS) files
- Device Tree Blob (DTB)
- Hardware description concepts
- Editing Device Tree files
- Building and deploying Device Trees
6. Linux Kernel Modules
- Kernel module architecture
- Creating loadable kernel modules
- Loading and unloading modules
- Module parameters
- Module dependencies
- Interacting with kernel modules
- Module debugging techniques
7. Linux Kernel Debugging
- Kernel logging using printk()
- Utilizing dmesg
- Dynamic debugging
- Kernel panic analysis
- Oops messages
- Debugging with GDB
- Basic performance tracing tools
8. Character Device Drivers
- Linux device driver model
- Character devices
- Driver registration
- File operations
- Read and write operations
- IOCTL interface
- Memory management
- Driver cleanup
9. Driver Integration and Hardware Access
- Platform devices and drivers
- GPIO programming
- Interrupt handling
- Timers and deferred work
- Accessing hardware registers
- Working with memory-mapped I/O
10. Version Control with Git
- Git fundamentals
- Managing kernel source code
- Branching and merging
- Creating patches
- Reviewing changes
- Collaborating on kernel development
11. Practical Kernel Development Labs
- Configuring a custom kernel
- Building and deploying the kernel
- Creating a simple kernel module
- Developing a basic character device driver
- Modifying Device Tree files
- Debugging kernel issues on BeagleBone Black
12. Best Practices and Summary
- Kernel coding style
- Writing maintainable drivers
- Common development pitfalls
- Kernel documentation resources
- Open-source contribution workflow
- Review of key concepts
- Questions and answers
- Next steps for Linux kernel development
Requirements
Basic familiarity with using a GNU/Linux system
14 Hours
Testimonials (2)
The knowledge of the trainer. He was able to answer all of my questions, even questions about our platform. He also continued to help until we all understood the material.
James O'Donnell - Tennant Company
Course - Embedded Linux Kernel and Driver Development
I liked the hands-on nature of it.