Isar provides a recipe to build custom kernels for Debian-based distributions. It uses templates to generate the debian meta-data (such as debian/control) and Debian's BuildProfiles to handle some of the distro specific variations. It should be noted that Isar has moved away from using the kernel's builddeb script since it would not generate all the packages we need (and in particular perf).
The linux-custom recipe provides support for:
Sources to the custom Linux kernel may be specified via SRC_URI
Configure the kernel via an in-tree or an external defconfig
via
KERNEL_DEFCONFIG
Integrate kernel configuration tweaks via configuration fragments (.cfg
files)
Patches to the linux kernel may be specified via SRC_URI
Ensure that the Isar recipe PV
matches the kernel release identifier
(KERNEL_RELEASE
)
Produce a linux-image
package that ships the kernel image and modules
Allow the name of the kernel image to be changed via KERNEL_FILE
(defaults
to vmlinuz
)
Produce a linux-headers
package which includes kernel headers and kbuild
scripts/tools
The linux-headers
package shall support native and cross compiles of
out-of-tree kernel modules. However, when built in cross-compilation mode,
it cannot be used on the target so far.
Produce a linux-libc-dev
package to support user-land builds
Only build/ship the linux-libc-dev
package if instructed to
(KERNEL_LIBC_DEV_DEPLOY
equals to "1"
)
Support both native and cross compiles (ISAR_CROSS_COMPILE
)
Support for the following kernel architectures:
Support devshell
(kernel configuration shall be applied)
In the future, the recipe may be extended to:
Package perf
Support inclusion/build of dts files listed in SRC_URI
Be compatible with Ubuntu
When cross-building, generate kernel-headers for both host and target
The linux-custom recipe is currently used by the linux-mainline package and is used mainline recipe may be used for some basic testing. This recipe is being used by the following machines: