On 11/6/2013, 4:40 PM, John Whitmore wrote:
Was struggling with the documentation on making chages to the config file used
by the raspberrypi linux kernel. I'd got my own layer with a two line append 
file:

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}"
KERNEL_DEFCONFIG = "defconfig"

I'd got my defconfig config file into the directory structure under my layer.

.
├── conf
│   └── layer.conf
└── recipes-kernel
     └── linux
         ├── linux-raspberrypi
         │   └── defconfig
         └── linux-raspberrypi_3.6.11.bbappend.jfw


So all looked good to me thankfully "<kergoth>" on the #yocto IRC Channel
pointed me to bitbake -e linux-raspberrypi and I was able to check stuff
out. Took me a while but I eventually found the problem.

The origional recipe "linux-raspberrypi_3.6.11.bb" contains the lines:

do_configure_prepend() {
        install -m 0644 ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} 
${WORKDIR}/defconfig || die "No default configuration for ${MACHINE} / 
${KERNEL_DEFCONFIG} available."
}

So even though my append is changing the FILESEXTRAPATHS and KERNEL_DEFCONFIG
values it makes no difference at all. Well luckily I did manage to change the
name of KERNEL_DEFCONFIG so when the above "install" command was executed it
produced errors all over the place. If that hadn't happened I'd have got a
kernel with none of my changes and there'd have been naughty words.

So given that the text book approach to making changes to the kernel, outlined
in section "2.2.1. Creating the Append File" of the Linux Kernel Development
Manual has been subverted. How do I change the kernel config?

Can I do my own do_configure_prepend() in my bbappend to prepend the recipe's 
do_configure_prepend()
and get my config file into the place it's going to install from? That sounds
really messy to me but I'm new.

That seems the only alternative short of re-writing the linux-raspberrypi
recipe which doesn't sound too good either.

If somebody could point me in the right direction on how to make changes to
the kernel in this case I'd be very grateful.

Why not use use the defconfig in the SRC_URI ?

The variable and rules you are trying to work with are specific to the
raspberrypi, so you aren't likely to find much help in the typical
documentation places (outside of understanding ordering, how variables
are assigned, etc).

If you check out some of the other kernel recipes in the various layers,
you'll see use of:

  file://defconfig

And the defconfig in the layer, in the typical location ${PN}/defconfig.
The fetcher takes care of propagating that file to ${WORKDIR} (just like
you are seeing with the raspberry pi recipe) and then the kernel.bbclass's
configure will take the defconfig and copy it to .config (if one hasn't
already been generated).

But chances are you are simply seeing both layer precedence and SRC_URI
evaluation order issues that is preventing your defconfig from being picked up
that would be the same regardless of the recipe.

I could also suggest using some of the linux-yocto features like the
configuration fragments, but they are applied after defconfig processing
(if a defconfig is supplied at all), so that's a secondary avenue, control
the defconfig order first .. and then worry about something like this.

Cheers,

Bruce




Thanks a million for any advice.

_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to