[oe] [RFC] Rebuild external kernel modules on kernel change

Koen Kooi k.kooi at student.utwente.nl
Sat Apr 4 13:31:25 UTC 2009


Hi,

For beagleboard I have a few things I need to rebuild everytime the 
kernel changes:

* powervr kerneldrivers
* sdma kernel module
* dmai kernel module
* codec-engine

And I have roughly two kinds of kernel changes:

1) version upgrade (e.g. 2.6.29 -> 2.6.29)
2) config changes (e.g. enable ethernet bridging)

The first type of change could be solved by putting KERNEL_VERSION in PV 
or PR, but that needs a non-trivial amount of python since the 
information isn't available at parsing time (exactly like debian.bbclass).
The second kind of change is a lot harder to detect, unless we start 
storing md5sums for kernel defconfigs.

I have a lowtech proposal for this:

-----

conf/bitbake.conf:
# Define a PR for kernels that machines can override so things like
# modules get rebuilt
MACHINE_KERNEL_PR ?= "r0"

conf/machine/beagleboard.conf:
# Increase this everytime the kernel changes
MACHINE_KERNEL_PR = "r39"

classes/kernel.bbclass:
# A machine.conf or local.conf can increase MACHINE_KERNEL_PR to force
# rebuilds for kernel and external modules
PR = "${MACHINE_KERNEL_PR}"

class/module-base.bbclass:
# A machine.conf or local.conf can increase MACHINE_KERNEL_PR to force
# rebuilds for kernel and external modules
PR = "${MACHINE_KERNEL_PR}"

-----

I don't really like this method, but I'm having a hard time coming up 
with a decent solution that:

a) works
b) requires less or equal manual work
c) keeps PR in sync between different buildhosts

regards,

Koen





More information about the Openembedded-devel mailing list