Re: Updated Yocto Hands-on Kernel Lab available


Tom Zanussi <tom.zanussi@...>
 

On Sun, 2013-02-17 at 21:16 -0500, Trevor Woerner wrote:
...sorry, I meant to CC the list too


---------- Forwarded message ----------
From: Trevor Woerner <twoerner@gmail.com>
Date: Sun, Feb 17, 2013 at 9:15 PM
Subject: Re: [yocto] Updated Yocto Hands-on Kernel Lab available
To: Tom Zanussi <tom.zanussi@intel.com>


Hi Tom,

I can see how the kernel *.bb files get pulled in due to the following
line in each lab's layer configuration (${LAYERDIR}/conf/layer.conf):

BBFILES := "... ${LAYERDIR}/recipes-*/*/*.bb ..."

Since the *.bb files are located under
${LAYERDIR}/recipes-kernel/linux/<kernel>.bb this matched the above
pattern.

What I can't figure out is why, for example, in lab1 are the kernel
patch files located in

${LAYERDIR}/recipes-kernel/linux/linux

while the kernel patch files for lab2 are in

${LAYERDIR}/recipes-kernel/linux/files

Does bitbake find the patch files for lab1 in a subdirectory called
"linux" because the recipe's name is linux_3.0.18.bb? Because I don't
see anything in that particular recipe which would suggest it
(bitbake) should look there (linux). And when I go to lab2 and rename
the "files" directory to "linux-yocto" the build doesn't work, so this
behaviour would seem to discount the belief that a patch directory
name can take on the recipe name and be found.
Hi,

Yes, in lab1 bitbake finds the patch files because they're in the
'linux' subdirectory. It should also be able to find them if you
renamed that directory to 'linux-3.0.18', and it would also find them in
the 'files' directory. These subdirectories are added to FILESPATH in
base.bbclass:

FILESPATH = "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"

Those are relative to a .bb, which is what we have in lab1 - the kernel
recipe is linux_3.0.18.bb.

In lab2, we have a linux-yocto_3.4.bbappend file rather than a .bb file.

If you look at the .bbappend, you can see:

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

which is what we need to add to the .bbappend to get bitbake to look in
the 'files' subdirectory under the .bbappend - since the FILESPATH is
relative to the base recipe in meta/, linux-yocto_3.4.bb, and not
our .bbappend, bitbake won't find the files under our .bbappend unless
we add our .bbappend's 'files' subdir to FILESPATH via FILESEXTRAPATHS.

If you wanted to change the name of the directory under the .bbappend to
'linux-yocto', you could just use:

FILESEXTRAPATHS_prepend := "${THISDIR}/linux-yocto:"

or better:

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

Tom

Best regards,
Trevor
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Join yocto@lists.yoctoproject.org to automatically receive all group messages.