From 946fac468e2fb1bd258d083440a56aa52d5beb29 Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Wed, 27 Sep 2017 15:19:39 -0700 Subject: kernel-dev: Edits to the iteratively modifying source code section This section has merged into a single topic now. It still needs work but it is gathered under one heading for now. (From yocto-docs rev: 660ed8b64dedbab5400c84ec3759cea77c899c40) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- documentation/kernel-dev/kernel-dev-common.xml | 175 ++++++++++++------------- 1 file changed, 87 insertions(+), 88 deletions(-) (limited to 'documentation/kernel-dev/kernel-dev-common.xml') diff --git a/documentation/kernel-dev/kernel-dev-common.xml b/documentation/kernel-dev/kernel-dev-common.xml index 9be49848e4..47a61a1552 100644 --- a/documentation/kernel-dev/kernel-dev-common.xml +++ b/documentation/kernel-dev/kernel-dev-common.xml @@ -814,7 +814,9 @@ For a detailed example showing how to patch the kernel using devtool, see the "Using devtool to Patch the Kernel" - section. + and + "Using Traditional Kernel Development to Patch the Kernel'>" + sections. @@ -2113,11 +2115,12 @@ -
- Using an Iterative Development Process +
+ Iteratively Modifying Source Code - If you do not have existing patches or configuration files, + If you do not have existing patches or configuration files and + you are using traditional kernel development methods, you can iteratively generate them from within the BitBake build environment as described within this section. During an iterative workflow, running a previously completed BitBake @@ -2133,95 +2136,91 @@ "linux-yocto". -
- Modifying Source Code - - - You can experiment with source code changes and create a - simple patch without leaving the BitBake environment. - To get started, be sure to complete a build at - least through the kernel configuration task: - + + You can experiment with source code changes and create a + simple patch without leaving the BitBake environment. + To get started, be sure to complete a build at + least through the kernel configuration task: + $ bitbake linux-yocto -c kernel_configme -f - - Taking this step ensures you have the sources prepared - and the configuration completed. - You can find the sources in the build directory within the - source/ directory, which is a symlink - (i.e. ${B}/source). - The source/ directory expands to - ${WORKDIR}/linux-${PACKAGE_ARCH}-${LINUX_KERNEL_TYPE}-build/source. - The directory pointed to by the - source/ symlink is also known as - ${STAGING_KERNEL_DIR}. - - - - You can edit the sources as you would any other Linux source - tree. - However, keep in mind that you will lose changes if you - trigger the - do_fetch - task for the recipe. - You can avoid triggering this task by not using BitBake to - run the - cleanall, - cleansstate, - or forced - fetch - commands. - Also, do not modify the recipe itself while working - with temporary changes or BitBake might run the - fetch command depending on the - changes to the recipe. - - - - To test your temporary changes, instruct BitBake to run the - compile again. - The -f option forces the command to run - even though BitBake might think it has already done so: - + + Taking this step ensures you have the sources prepared + and the configuration completed. + You can find the sources in the build directory within the + source/ directory, which is a symlink + (i.e. ${B}/source). + The source/ directory expands to + ${WORKDIR}/linux-${PACKAGE_ARCH}-${LINUX_KERNEL_TYPE}-build/source. + The directory pointed to by the + source/ symlink is also known as + ${STAGING_KERNEL_DIR}. + + + + You can edit the sources as you would any other Linux source + tree. + However, keep in mind that you will lose changes if you + trigger the + do_fetch + task for the recipe. + You can avoid triggering this task by not using BitBake to + run the + cleanall, + cleansstate, + or forced + fetch + commands. + Also, do not modify the recipe itself while working + with temporary changes or BitBake might run the + fetch command depending on the + changes to the recipe. + + + + To test your temporary changes, instruct BitBake to run the + compile again. + The -f option forces the command to run + even though BitBake might think it has already done so: + $ bitbake linux-yocto -c compile -f - - If the compile fails, you can update the sources and repeat - the compile. - Once compilation is successful, you can inspect and test - the resulting build (i.e. kernel, modules, and so forth) from - the following build directory: - + + If the compile fails, you can update the sources and repeat + the compile. + Once compilation is successful, you can inspect and test + the resulting build (i.e. kernel, modules, and so forth) from + the following build directory: + ${WORKDIR}/linux-${PACKAGE_ARCH}-${LINUX_KERNEL_TYPE}-build - - Alternatively, you can run the deploy - command to place the kernel image in the - tmp/deploy/images directory: - - $ bitbake linux-yocto -c deploy - - And, of course, you can perform the remaining installation and - packaging steps by issuing: - - $ bitbake linux-yocto - - + + Alternatively, you can run the deploy + command to place the kernel image in the + tmp/deploy/images directory: + + $ bitbake linux-yocto -c deploy + + And, of course, you can perform the remaining installation and + packaging steps by issuing: + + $ bitbake linux-yocto + + - - For rapid iterative development, the edit-compile-repeat loop - described in this section is preferable to rebuilding the - entire recipe because the installation and packaging tasks - are very time consuming. - + + For rapid iterative development, the edit-compile-repeat loop + described in this section is preferable to rebuilding the + entire recipe because the installation and packaging tasks + are very time consuming. + - - Once you are satisfied with your source code modifications, - you can make them permanent by generating patches and - applying them to the - SRC_URI - statement as described in the - "Applying Patches" - section. - -
+ + Once you are satisfied with your source code modifications, + you can make them permanent by generating patches and + applying them to the + SRC_URI + statement as described in the + "Applying Patches" + section. +
-- cgit v1.2.3-54-g00ecf