Bug 9376

Summary: Enhance descriptions for kernel tasks in the reference manual.
Product: [Documentation] Reference Reporter: Scott Rifenbark <srifenbark>
Component: handbookAssignee: Tom Zanussi <tom.zanussi>
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: Medium CC: bluelightning, kristi, poky.doc.watcher, poky.watcher, Santoshkumar.Laxminarayanrai, sgw, srifenbark
Version: 2.2   
Target Milestone: Future   
Hardware: x86   
OS: Multiple   
Whiteboard: 23 March 2018: RESOLVED
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: Done (doc changes complete)

Description Scott Rifenbark 2016-04-01 18:08:01 UTC
In general, these task descriptions are thin.  They should be augmented as time permits.  I am setting this bug up as an enhancement for future.

Filing this bug allows me to set the Bug 7753 to RESOLVED.

Scott
Comment 1 Scott Rifenbark 2016-06-27 18:36:08 UTC
Set this to future.
Comment 2 Scott Rifenbark 2016-08-01 19:14:48 UTC
Setting to NEEDINFO.
Comment 3 Tom Zanussi 2016-09-09 19:46:31 UTC
With reference to http://www.yoctoproject.org/docs/2.1/ref-manual/ref-manual.html#kernel-related-tasks

Best to keep this ordering as it follows what happens in the build process:


do_validate_branches()

After the kernel is unpacked but before it's patched, do_validate_branches() makes sure that the SRCREVs specified for the machine and meta branches actually exist on the specified branches.  If they don't and AUTOREV isn't being used, do_validate_branches() task will fail the build.


do_kernel_checkout()

do_kernel_checkout() converts the newly unpacked kernel source into a form that the build system can work with.  The kernel source can be fetched in several different ways; do_kernel_checkout() makes sure that subsequent tasks are given a clean working tree copy of the kernel with the correct branches checked out.


do_kernel_metadata()

do_kernel_metdata() is responsible for collecting all the features required for a given kernel build, whether they come from the SRC_URI or from git repos, and processing them into series of config fragments and patches which can then be applied by subsequent tasks such as do_patch() and do_kernel_configme().


do_kernel_configme()

After the kernel is patched by do_patch(), do_kernel_configme() assembles and merges all the kernel config fragments into a merged configuration that can then be passed to the kernel configuration phase proper.  This is also where user-specified defconfigs are applied if present, or where configuration modes such as --allnoconfig are applied.


do_kernel_menuconfig()

This is a task that is invoked by the user to manipulate the .config file used to build a linux-yocto recipe.  This command starts the Linux kernel configuration tool, which the user then uses to modify the kernel configuration.  It can be invoked as follows:

     $ bitbake linux-yocto -c menuconfig
                

See the kernel development manual for more background and details.


do_diffconfig()

This is a task that is invoked by the user to create a file containing the difference between the original config as produced by do_kernel_configme() and the changes made by the user via say do_kernel_menuconfig().  This file can then be used to create a config fragment containing only the differences.  It can be invoked as follows:


    $ bitbake linux-yocto -c diffconfig


See the kernel development manual for more background and details.


do_kernel_configcheck()

This task provides validates the configuration produced by do_kernel_configcheck().  It produces warnings when a requested configuration does not appear in the final .config file or when you override a policy configuration in a hardware configuration fragment.  It can be run expliclitly and the output viewed by running the following command:

$ bitbake linux-yocto -c kernel_configcheck -f

See the kernel development manual for more background and details.


do_savedefconfig()

This is a task that is invoked by the user to create a defconfig file that can be used instead of the default defconfig.  It contains the difference between the default defconfig and the changes made by the user via say do_kernel_menuconfig().  It can be invoked as follows:


    $ bitbake linux-yocto -c savedefconfig


do_shared_workdir()

After the kernel has been compiled but before the kernel modules have been compiled, do_shared_workdir() copies files required for module builds and generated from the  kernel build into the shared work directory, so that do_compile_kernel_modules() can successfully build the kernel modules in the next step


do_compile_kernelmodules()

Kernel builds are done in two steps; first the kernel (vmlinux) is built, then the modules are built ('make modules').  do_compile_kernelmodules() simply runs that second step, if there are modules to be built.


do_strip()

If KERNEL_IMAGE_STRIP_EXTRA_SECTIONS is defined, this task will strip the sections named in that variable from vmlinux.  This is typically used to strip nonessential sections such as .comment sections from a size-sensitive configuration.


do_sizecheck()

After the kernel has been built, this task checks the size of the stripped kernel image against KERNEL_IMAGE_MAXSIZE.  If that variable was set and the size of the stripped kernel exceeds that size, the kernel build will produce a warning to that effect.



Remove:

do_kernel_link_vmlinux
do_uboot_mkimage

as they either don't exist, are too low-level, or aren't kernel-related
Comment 4 Scott Rifenbark 2017-02-07 22:34:03 UTC
Tom, 

See the following for review.  I did some rewriting so you need to check for accuracy:

do_validate_branches() - http://www.yoctoproject.org/docs/2.3/ref-manual/ref-manual.html#ref-tasks-validate_branches

do_kernel_checkout() - http://www.yoctoproject.org/docs/2.3/ref-manual/ref-manual.html#ref-tasks-kernel_checkout

do_kernel_metadata() - http://www.yoctoproject.org/docs/2.3/ref-manual/ref-manual.html#ref-tasks-kernel_metadata

do_kernel_configme() - http://www.yoctoproject.org/docs/2.3/ref-manual/ref-manual.html#ref-tasks-kernel_configme

do_kernel_menuconfig() - This task is not in the manual.  There is a task called do_menuconfig() that is located among the other kernel-related tasks.  Is do_kernel_menuconfig() a new task we need to document?  I did a 'git grep' for it in the poky directory and it came up empty.  For now, I put the task into the list here in case it is a new task (http://www.yoctoproject.org/docs/2.3/ref-manual/ref-manual.html#ref-tasks-kernel_menuconfig).  I can remove it if needed.  I suspect it is supposed to be do_menuconfig().

do_diffconfig() - http://www.yoctoproject.org/docs/2.3/ref-manual/ref-manual.html#ref-tasks-diffconfig

do_kernel_configcheck() - http://www.yoctoproject.org/docs/2.3/ref-manual/ref-manual.html#ref-tasks-kernel_configcheck

do_savedefconfig() - http://www.yoctoproject.org/docs/2.3/ref-manual/ref-manual.html#ref-tasks-savedefconfig

do_shared_workdir() - http://www.yoctoproject.org/docs/2.3/ref-manual/ref-manual.html#ref-tasks-shared_workdir

do_compile_kernelmodules() - http://www.yoctoproject.org/docs/2.3/ref-manual/ref-manual.html#ref-tasks-compile_kernelmodules

do_strip() - http://www.yoctoproject.org/docs/2.3/ref-manual/ref-manual.html#ref-tasks-strip.  Note that the variable KERNEL_IMAGE_STRIP_EXTRA_SECTIONS is undocumented in the ref-manual.

do_kernel_link_vmlinux and do_uboot_mkimage both removed from the manual.
Comment 5 Kristi 2018-03-23 12:11:16 UTC
Too much time has passed without review on this one - setting to RESOLVED. Thank you