[oe] How to get certain kernel modules and packages included in the rootfs, but based on the kernel version

Rod Whitby rod at whitby.id.au
Sat Dec 1 13:59:33 UTC 2007


I need some advice on how to use MACHINE_ESSENTIAL-*

I'm testing an Angstrom minimal image by switching between the
known-good-in-slugos 2.6.21.6 linux-ixp4xx kernel (where we don't yet
have all the modules and firmware included in the Angstrom minimal image
needed to bring up the network successfully), and the to-be-tested
2.6.23.8 linux-ixp4xx kernel (which has a problem with MAC addresses and
DHCP on initial boot).

The set of kernel modules and additional packages required for the
ixp4xx machine differs depending on the kernel version selected.

For the 2.6.21.6 kernel, I need to make sure a particular set of kernel
modules are in the minimal image rootfs so that networking will come up
on boot.  These modules cannot be compiled into the kernel.

For the 2.6.23.8 kernel, due to a change in the open source ethernet
drivers, I need to make sure a completely different set of kernel
modules are in the minimal image rootfs.

I had thought of doing this in ixp4xx.conf, using MACHINE_ESSENTIAL_*.
The trouble is that I don't know how to make that conditional on which
kernel is being used in the image.

I then tried putting specific MACHINE_ESSENTIAL_* stuff in each of the
two different kernel recipes, but later realised that that's not going
to work at all (it needs to be in a .conf file for task-boot to see it).

Does anyone have any other ideas on how I do achieve this?

Basically, I need a way for the selection of the kernel version to
affect the set of packages and kernel modules which are guaranteed to be
included in a minimal image.

-- Rod




More information about the Openembedded-devel mailing list