Re: recipe fails to load local files

Bryan Evenson


-----Original Message-----
From: peterengcomau001@...
Sent: Sunday, November 16, 2014 8:55 AM
To: Alexandru Vaduva; peterengcomau001@...; Anders
Darander; Bryan Evenson
Cc: yocto@...
Subject: Re: [yocto] recipe fails to load local files

There is no package called zd1211 that I can identify. If I run
$ bitbake atmel-qt5-demo-image -g -u depexp
It does not list a package that has zd1211 in it. Having said that, if I run
$ find -name zd1211*
It shows that zd1211rw and zd1211rw.ko files are in the rootfs in the
tmp/work directory under kernel/drivers/net/wirless.

Is that what you are referring to?


----- Original Message -----

"Alexandru Vaduva" <vaduvajanalexandru@...>

<peterengcomau001@...>, "Anders Darander"
<anders@...>, "Bryan Evenson" <bevenson@...>

"yocto@..." <yocto@...>

Sat, 15 Nov 2014 19:53:14 +0000 (UTC)

Re: [yocto] recipe fails to load local files

Is "zd1211" available in packages and package-split/zd1211-
To expand on Alexandru's question, the first step is to verify that the library files are now being added to the zd1211-firmware package. Assuming you are using opkg for package management search in tmp/deploy/ipk/ for any files named "zd1211-firmware.*ipk". You should find one named something like zd1211-firmware_1.5-r0_ sama5d3xek.ipk. Open the package up with file-roller and verify that the lib/firmware directory contains the libraries that you intended to add to the package. If so, then the package is being built correctly.

Once the package is being built correctly, the package needs to be added to your image. Packages are only added to an image when they are specifically listed in the image recipe or if it is a required dependency of a package that has been added to the image. If you don't already have a .bbappend for the image, you need to create one in your layer and add the zd1211-firmware package. The .bbappend needs to follow the same directory structure as the image recipe in the meta-atmel layer. So for your specific case:

1. Create the file ~/poky/meta-atmel-lsp/recipes-qt/images/atmel-qt5-demo-image.bbappend, adding directories as needed for the full path.
2. Add the following contents to the atmel-qt5-demo-image.bbappend:

zd1211-firmware \

The extra lines and the \ at the end of the line is there to make sure two package names don't get merged together when IMAGE_INSTALL gets built.

3. If you are not using the PR service (, also add the following to your .bbappend:

PR = "r1"

otherwise you may not see your change in the final image.

4. Re-build atmel-qt5-demo-image. You should now see your library files in the final image.


After you make that change and rebuild

On Saturday, November 15, 2014 9:09 PM,
"peterengcomau001@..." <peterengcomau001@...>

Thanks, I have done the changes and no longer get the error.
However, the firmware files still do not get generated when I build the
The current recipe I am using is:
DESCRIPTION = "Belkin Wifi Firmware"
PR = "r0"

FILES_${PN} += "/lib/firmware/zd1211"

SRC_URI = "\
file://zd1211_ub \
file://zd1211_uph \
file://zd1211_uphm \
file://zd1211_uphr \
file://zd1211_ur \

S = "${WORKDIR}"

do_install() {
install -d ${D}/lib/firmware/zd1211
install -m 0555 ${WORKDIR}/zd1211_* ${D}/lib/firmware/zd1211/

No errors result when building the image. However, there is no
directory or files in:

The recipes are in file:
There are other recipes in ~/poky/meta-atmel-lsp/recipes-lsp that
work, so bitbake can see these ok (but these are bbappend, not bb files)

In ideas why the

----- Original Message -----

"Anders Darander" <anders@...>

"Bryan Evenson" <bevenson@...>

<peterengcomau001@...>, "yocto@..."

Fri, 14 Nov 2014 15:44:24 +0100

Re: [yocto] recipe fails to load local files

Just a few nitpick's..

* Bryan Evenson <bevenson@...> [141114

> > FILES_${PN} += "~/poky/meta-atmel-lsp/recipes-
> > firmware/zd1211-firmware"

> FILES doesn't specify where to find the files on the build
machine, it
> specifies where the installed files exist on the target
> This is what the error you are seeing is telling you; the files
> installed in the do_install step but they did not get placed in
> final package. In your case I believe:

> FILES_${PN} += "${libdir}/zd1211_*"

FILES_${PN} += "/lib/firmware/zd1211"

> would work.

> > SRC_URI = "\
> > file://zd1211_ub \
> > file://zd1211_uph \
> > file://zd1211_uphm \
> > file://zd1211_uphr \
> > file://zd1211_ur \
> > "

> > do_install() {
> > install -d ${D}/lib/firmware/zd1211
> > install -m 0555 ${WORKDIR}/zd1211_*
> > }

> As mentioned in the FILES variable description in the Yocto
> you should use the standard path variables whenever
possible. The
> list of available path variables are near the top of
> meta/conf/bitbake.conf. That means in your case the
following would
> be better:

Well, in general that's true. Though, in this specific case, it
actually be a hardcoded /lib/firmware. ${libdir} could be lib64
something else, especially in a multilib-build. However, the
files are always searched for in /lib/firmware.


> do_install() {
> install -d ${D}/${libdir}/firmware/zd1211
> install -m 0555 ${WORKDIR}/zd1211_*

Anders Darander
ChargeStorm AB / eStorm AB

---- Message sent via Adam Internet WebMail -

yocto mailing list
yocto@... <mailto:yocto@...>

Join { to automatically receive all group messages.