Wind River Kernel

From Yocto Project
Jump to navigationJump to search

The Wind River Linux kernel is a git repository that represents a set of validated/supported and approved set of kernel changes and configuration.

Structure

The Wind River Kernel repository is composed of base topic branches, BSP topic branches, and a common configuration branch.

A BSP branch contains patches that are specific to a particular board that are either in development or for technical reasons are not safe for application to all boards via a base topic branch. BSP branches reference particular configurations that are part of the configuration branch. BSP topic branches have the convention of <bsp name>-<kernel type>

Base topic branches are collection points for common features (and configuration) that are safe for all boards. These are also known as "kernel type" branches. Examples are the 'standard' or 'preempt_rt' kernel type branches. BSPs are directly branches from the end of the common topic branches.

The configuration branch is called "wrs_meta" and it contains the configuration (And patches) that are used to create the tree, and configure BSPs.

The branches in the kernel repository are constructed to be history clean, segmented and represent the base set of validated and supported board and feature configurations.

The Wind River kernel recipe has the ability to build arbitrary branches and configurations, so while the default set of branches are suggested, they are not the only available build targets in the tree.

Patching

kernel patching is controlled via the kern_tools and guilt. It is not currently implemented, but will be available shortly.

  • kernel patching is not encouraged, since accepted changes should be merged directly nto the kernel repository, not patches into the tree*

Kernel features

Named kernel features, which are kernel patches and configuration, can be passed to the kernel recipe and used to modify, configure and manipulate the repository. This functionality is currently disabled pending standardization on search paths.


Configuration

Configuration of a BSP is done using configuration data captured inside the kernel repository on the wrs_meta branch. This captured configuration is composed of config fragments that allow common functionality to be named and grouped. This means that imposing a single change to any BSP is a one line update to a single file.

config fragments

If the default configuration for a BSP needs to be augmented, a kernel configuration fragment can be created and added to the SRC_URI.

  * file://my_config.cfg

Will propagate a configuration fragment (which uses the format of any kernel defconfig) to the workdir, and will be applied to the kernel, and used as the last configuration fragment. Thus allowing the addition or override of built in configuration values.

defconfigs

If building a BSP that is not already merged/defined by the kernel repository, and entire defconfig can be supplied via the SRC_URI.

When the defconfig is detected, it will be added to the dynamically created <machine name>-<kernel type> branch and used as the only configuration for the board.

Submitting Changes

Changes are managed using upstream best practices. Pull requests can be sent against a BSP (or common) branch, and configuration changes against wrs_meta.