Yocto Project Linux Kernel Development Manual

Darren Hart

Intel Corporation

Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-Share Alike 2.0 UK: England & Wales as published by Creative Commons.

Manual Notes

  • For the latest version of the Yocto Project Linux Kernel Development Manual associated with this Yocto Project release (version 2.3.2), see the Yocto Project Linux Kernel Development Manual from the Yocto Project documentation page.

  • This version of the manual is version 2.3.2. For later releases of the Yocto Project (if they exist), go to the Yocto Project documentation page and use the drop-down "Active Releases" button and choose the Yocto Project version for which you want the manual.

  • For an in-development version of the Yocto Project Linux Kernel Development Manual, see http://www.yoctoproject.org/docs/latest/kernel-dev/kernel-dev.html.

Revision History
Revision 1.4 April 2013
Released with the Yocto Project 1.4 Release.
Revision 1.5 October 2013
Released with the Yocto Project 1.5 Release.
Revision 1.5.1 January 2014
Released with the Yocto Project 1.5.1 Release.
Revision 1.6 April 2014
Released with the Yocto Project 1.6 Release.
Revision 1.7 October 2014
Released with the Yocto Project 1.7 Release.
Revision 1.8 April 2015
Released with the Yocto Project 1.8 Release.
Revision 2.0 October 2015
Released with the Yocto Project 2.0 Release.
Revision 2.1 April 2016
Released with the Yocto Project 2.1 Release.
Revision 2.2 October 2016
Released with the Yocto Project 2.2 Release.
Revision 2.3 May 2017
Released with the Yocto Project 2.3 Release.
Revision 2.3.1 June 2017
Released with the Yocto Project 2.3.1 Release.
Revision 2.3.2 September 2017
Released with the Yocto Project 2.3.2 Release.

Table of Contents

1. Introduction
1.1. Overview
1.2. Other Resources
2. Common Tasks
2.1. Creating and Preparing a Layer
2.2. Modifying an Existing Recipe
2.2.1. Creating the Append File
2.2.2. Applying Patches
2.2.3. Changing the Configuration
2.2.4. Using an "In-Tree"  defconfig File
2.3. Using an Iterative Development Process
2.3.1. "-dirty" String
2.3.2. Generating Configuration Files
2.3.3. Modifying Source Code
2.4. Working With Your Own Sources
2.5. Working with Out-of-Tree Modules
2.5.1. Building Out-of-Tree Modules on the Target
2.5.2. Incorporating Out-of-Tree Modules
2.6. Inspecting Changes and Commits
2.6.1. What Changed in a Kernel?
2.6.2. Showing a Particular Feature or Branch Change
2.7. Adding Recipe-Space Kernel Features
3. Working with Advanced Metadata
3.1. Overview
3.2. Using Kernel Metadata in a Recipe
3.3. Kernel Metadata Syntax
3.3.1. Configuration
3.3.2. Patches
3.3.3. Features
3.3.4. Kernel Types
3.3.5. BSP Descriptions
3.4. Kernel Metadata Location
3.4.1. Recipe-Space Metadata
3.4.2. Metadata Outside the Recipe-Space
3.5. Organizing Your Source
3.5.1. Encapsulating Patches
3.5.2. Machine Branches
3.5.3. Feature Branches
3.6. SCC Description File Reference
A. Advanced Kernel Concepts
A.1. Yocto Project Kernel Development and Maintenance
A.2. Kernel Architecture
A.2.1. Overview
A.2.2. Branching Strategy and Workflow
A.2.3. Source Code Manager - Git
B. Kernel Maintenance
B.1. Tree Construction
B.2. Build Strategy
C. Kernel Development FAQ
C.1. Common Questions and Solutions