Modifying the Linux Kernel
What the kernel does on an embedded board, and how to patch or extend a vendor recipe with a .bbappend.
Linux kernel
The Linux kernel is the central component of the operating system.
It provides:
- CPU scheduling
- Memory management
- Device drivers
- Networking
- Filesystems
- Process management
- Hardware abstraction
For an embedded board, the kernel must also know about the board hardware.
This is where the device tree becomes important.
Modifying an existing recipe
Yocto provides mechanisms such as:
.bbappend
A .bbappend file allows us to modify an existing recipe without changing the original recipe.
For example:
recipes-kernel/
└── linux/
└── linux-%.bbappend
This can be used to:
- Add patches
- Add configuration
- Add files
- Modify variables
- Change behavior
This is a very useful mechanism for maintaining product-specific modifications.