[yocto] recipe fails to load local files

Bryan Evenson bevenson at melinkcorp.com
Fri Nov 14 06:19:24 PST 2014


Lachlan,

I have some recipe changes inline below.

> -----Original Message-----
> From: peterengcomau001 at adam.com.au
> [mailto:peterengcomau001 at adam.com.au]
> Sent: Friday, November 14, 2014 3:37 AM
> To: Bryan Evenson; peterengcomau001 at adam.com.au;
> yocto at yoctoproject.org
> Subject: RE: [yocto] recipe fails to load local files
> 
> Based on your suggestion Bryan, and referring to Section 10 -Glossary of the
> ref-manual regarding FILES, I have changed the recipe as follows:
> __________________________________________
> DESCRIPTION = "Belkin Wifi Firmware"
> PR = "1.5"

PR is not the firmware version, it’s the recipe version.  Start with "r0".  After making this change do a "bitbake -c cleanall zd1211-firmware" to remove the old packages as you would be going backwards for the package.

> LICENSE = "CLOSED"
> FILES_${PN} += "~/poky/meta-atmel-lsp/recipes-lsp/zd1211-
> 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 filesystem.  This is what the error you are seeing is telling you; the files were installed in the do_install step but they did not get placed in the final package.  In your case I believe:

FILES_${PN} += "${libdir}/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_*    ${D}/lib/firmware/zd1211/
> }

As mentioned in the FILES variable description in the Yocto manual, 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:

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

Regards,
Bryan

> __________________________________________________________
> _
> 
> I had not seen a reference to the FILES parameter previously. However, this
> still does not work.
> 
> Refering to :
> http://www.embeddedlinux.org.cn/OEManual/recipes_examples.html
> 
> I run the follwoing command from my build directory:
> $ bitbake -b meta-atmel-lsp/recipes-lsp/zd1211-firmware/zd1211-
> firmware_1.5.bb
> 
> and I get the following error:
> ___________________________________________
> ERROR: QA Issue: zd1211-firmware: Files/directories were installed but not
> shipped
>   /lib
>   /lib/firmware
>   /lib/firmware/zd1211
>   /lib/firmware/zd1211/zd1211_uphr
>   /lib/firmware/zd1211/zd1211_ub
>   /lib/firmware/zd1211/zd1211_uphm
>   /lib/firmware/zd1211/zd1211_ur
>   /lib/firmware/zd1211/zd1211_uph
> ERROR: QA run found fatal errors. Please consider fixing them.
> ERROR: Function failed: do_package_qa
> ERROR: Logfile of failure stored in: /home/lachlan/poky/build-
> atmel/tmp/work/cortexa5t2hf-vfp-poky-linux-gnueabi/zd1211-
> firmware/1.5-1.5/temp/log.do_package.3991
> ERROR: Task 10 (/home/lachlan/poky/meta-atmel-lsp/recipes-lsp/zd1211-
> firmware/zd1211-firmware_1.5.bb, do_package) failed with exit code '1'
> NOTE: Tasks Summary: Attempted 9 tasks of which 6 didn't need to be rerun
> and 1 failed.
> No currently running tasks (9 of 12)
> 
> Summary: 1 task failed:
>   /home/lachlan/poky/meta-atmel-lsp/recipes-lsp/zd1211-firmware/zd1211-
> firmware_1.5.bb, do_package
> ______________________________________________
> 
> Note that i also had to address the LICENSE reference as I was getting
> LICENSE_CHCKSUM errors
> 
> Also note that when I try to build the full image, there is no error but the files
> are not present.
> In my build directory configuration file I have the reference to my recipe
> layer:
>   /home/lachlan/poky/meta-atmel-lsp \
> but although other recipes in this directory are working fine, this recipe
> seems to be overlooked. I know that the full image build sees the recipe
> because if I comment out the LICENSE reference, the full image build
> indicates an error in this regard.
> 
> Thanks for any help
> Lachlan
> 
> 
> 
> 
> 
> 
> 	----- Original Message -----
> 
> 	From:
> 	"Bryan Evenson" <bevenson at melinkcorp.com>
> 
> 	To:
> 	"peterengcomau001 at adam.com.au"
> <peterengcomau001 at adam.com.au>, "yocto at yoctoproject.org"
> <yocto at yoctoproject.org>
> 
> 	Cc:
> 
> 	Sent:
> 	Thu, 13 Nov 2014 17:03:07 +0000
> 
> 	Subject:
> 	RE: [yocto] recipe fails to load local files
> 
> 
> 
> 
> 	Lachlan,
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 	If that is your entire recipe, I don’t see any FILES specification:
> http://www.yoctoproject.org/docs/1.7/mega-manual/mega-
> manual.html#var-FILES <http://www.yoctoproject.org/docs/1.7/mega-
> manual/mega-manual.html#var-FILES> .  The SRC_URI just says where to get
> the source, but the FILES states which files are expected to be added to the
> package.  I believe the FILES variable is auto-populated by a compiled
> package, which is why you may not see the FILES variable in every recipe.
> But in your case in which you don’t compile the code but are just installing
> files on disk, you need to fill out the FILES variable.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 	Regards,
> 
> 
> 
> 
> 
> 	Bryan
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 	From: yocto-bounces at yoctoproject.org [mailto:yocto-
> bounces at yoctoproject.org] On Behalf Of
> peterengcomau001 at adam.com.au
> 	Sent: Thursday, November 13, 2014 10:21 AM
> 	To: yocto at yoctoproject.org
> 	Subject: [yocto] recipe fails to load local files
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 	I am using yocto 1.6.1 and I have a a number of recipes in
> 	~/home/poky/meta-atmel-lsp/recipes-lsp.
> 
> 	I have a lightpdbbappend that loads local files, I have a wpa-
> supplicant.bbappend that loads local files, but I am also trying to load some
> firmware that should load local files but fails.
> 
> 	In ~/home/poky/meta-atmel-lsp/recipes-lsp/zd1211-firmware/ I
> have the recipe zd1211-firmware_1.55.bb as follows:
> 
> 	_______________________________________
> 	SUMMARY = "Belkin Wifi Firmware"
> 	LICENSE = "GPL"
> 
> 	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 0755 ${WORKDIR}/zd1211_*    ${D}/lib/firmware/zd1211/
> 	}
> 	_____________________________________
> 	I sourced these files but not the recipe from:
> 	http://sourceforge.net/projects/zd1211/
> 
> 	The files indicated in the recipe are in :
> 	~/home/poky/meta-atmel-lsp/recipes-lsp/zd1211-firmware/zd1211-
> firmware/
> 
> 	When I create the image, no directory is created as
> /lib/firmware/zd1211
> 	and also no files are loaded into it.
> 
> 	I have also tried {THISDIR}  instead of using {WORKDIR}
> 	I also tried specifying a specific file rather than using the wild card
> 	I have also tried using 'cp' instead of 'install -m 0755'
> 
> 	None seem to work.
> 	I am expecting the firmware files to be located in:
> 	~/poky/build-atmel/tmp/work/sama5d3xek-poky-linux-
> gnueabi/atmel-qt5-demo-image/1.0-r0/rootfs/etc/firmware
> 	but they are not.
> 
> 	I originally started with a recipe to load the files directly from the
> source, but that did not work. The original recipe used was zd1211-
> firmware_1.4.bb from:
> 	https://gitorious.org/opencsbc/openembedded/source/583297ac29
> 5f1b381019ccecb4ae6abaa69cbc6c:recipes/zd1211
> 
> 	That did not work and now I am extracting the files from the .tar and
> trying to load them direct.
> 	Maybe the same problem exists between the original recipe and
> loading the .tar files.
> 
> 	Thanks for any help
> 	Lachlan
> 
> 	---- Message sent via Adam Internet WebMail -
> http://www.adam.com.au/
> 
> 
> 
> 
> 
> ---- Message sent via Adam Internet WebMail - http://www.adam.com.au/


More information about the yocto mailing list