TipsAndTricks/KernelDevelopmentWithEsdk

From Yocto Project
Jump to navigationJump to search

Overview

This manual describes the Linux kernel development process with Yocto and devtool.

Setup your bitbake build environment

Open a new terminal window and navigat to your poky directory. We'll refer to this terminal as your 'bitbake terminal'.

The following command will configure the Yocto build environment

source poky/oe-init-build-env kernel-dev

Build Extensible SDK (bitbake terminal)

bitbake -c populate_sdk_ext core-image-minimal

Install Extensible SDK (bitbake terminal)

The ESDK installer can be found in /path_to_build_directory/kernel-dev/tmp/deploy/sdk/

./tmp/deploy/sdk/poky-glibc-x86_64-core-image-minimal-corei7-64-toolchain-ext-2.3.sh

Follow the installer instructions and provide a target directory for your ESDK installation e.g /path_to_esdk/

Checkout the kernel source tree and construct .config (bitbake terminal)

Check out the Linux kernel source and construct a .config from the Yocto kernel configuration segments. The sources can be found in /path_to_build_directory/kernel-dev/workspace/sources/linux-yocto.

devtool modify linux-yocto 

Setup your ESDK build environment (ESDK terminal)

Open a new terminal and setup your build environment. We'll refer to this terminal as your 'ESDK terminal'

. /path_to_esdk/environment-setup-corei7-64-poky-linux

NOTE: If you see this message you will really need to open a new terminal :).

SDK environment now set up; additionally you may now run devtool to perform development tasks. Run devtool --help for further details. WARNING: attempting to use the extensible SDK in an environment set up to run bitbake - this may lead to unexpected results. Please source this script in a new shell session instead.

Build your kernel (ESDK terminal)

Navigate to your workspace directory e.g /path_to_build_directory/kernel-dev/workspace/sources/linux-yocto and build the kernel

make

Modify your kernel and commit your changes (ESDK terminal)

You can navigate to the Linux source directory (/path_to_build_directory/kernel-dev/workspace/sources/linux-yocto) and modify the kernel. Commit your kernel changes.

Build an image with your kernel changes (optional) (bitbake terminal)

devtool build-image core-image-minimal

Export patches and create a bbappend file (bitbake terminal)

To export your commits to patches and a bbappend file use the following command.

devtool finish linux-yocto /path_to_poky_directory/meta-yocto-bsp/

The patches and the bbappend can be found in /path_to_poky_directory/meta-yocto-bsp/recipes-kernel/linux.

Build image with your modified kernel (bitbake terminal)

You can now build an image which will include your kernel patches.

Execute the following command from your build directory ( e.g /path_to_build_directory/kernel-dev/)

bitbake core-image-minimal