On 01/26/2012 01:55 PM, Scott Garman wrote: > On 01/26/2012 08:44 AM, jfabernathy wrote: >> I'm trying to understand the concept of creating a recipe and having it >> included in the build I do. >> >> For example, suppose I want to create the meta-intel/meta-cedartrail BSP >> with the core-image-minimal image, but I wanted to include hello world >> as shown in 3.1.2 Autotooled Package section of the Poky reference >> Manual. >> >> Where do I put the recipe file? I'm guessing a recipe-jfa directory at >> the same level as the meta-cedartrail recipe-core, recipe-kernel, >> recipe-graphic, recipe-bsp? > > Hi Jim, > > The best way to do this is to create your own layer, and keep all of > your customizations there. > > You'd put this in a directory, say meta-jfa with something like the > following: > > meta-jfa/ > meta-jfa/conf/layer.conf > meta-jfa/recipes-jfa/helloworld/helloworld.bb > > where your layer.conf file would look like: > > # We have a conf and classes directory, add to BBPATH > BBPATH := "${BBPATH}:${LAYERDIR}" > > # We have a packages directory, add to BBFILES > BBFILES := "${BBFILES} ${LAYERDIR}/recipes-*/*/*.bb \ > ${LAYERDIR}/recipes-*/*/*.bbappend" > > BBFILE_COLLECTIONS += "jfa" > BBFILE_PATTERN_jfa := "^${LAYERDIR}/" > BBFILE_PRIORITY_jfa = "5" > > Then point your build's bblayers.conf file to include the path to your > meta-jfa/ directory. > >> >> I'm also assuming that helloworld.bb file would contain: >> >> DESCRIPTION = "GNU Helloworld application" >> SECTION = "examples" >> LICENSE = "GPLv2+" >> LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" >> PR = "r0" >> >> SRC_URI = "${GNU_MIRROR}/hello/hello-${PV}.tar.gz" >> >> inherit autotools gettext >> >> >> So where do the values of ${GNU_MIRROR|, and ${PV} get set correctly? > > Those examples are defined in the bitbake classes you have in your > base layers. > >> And what does the following line do or require me to do: >> >> LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" > > This was answered in another post. > >> Is this all that is needed to get helloworld put into /usr/bin so it can >> be executed at the command line when the image is booted? > > You'd also need to add the helloworld package to your image file. The > simplest way to do this is to add EXTRA_IMAGE_FEATURES += "helloworld" > in your build's local.conf file. > > I think the above should be accurate enough w/o testing it myself. > I got the layer created like you said, but the test had a fetch problem and it just locked up there. Had to control-C out of it. Console below: jim@ubuntu-x64:/build/mycdv-minimal$ bitbake helloworld Loading cache: 100% |###########################################################| ETA: 00:00:00 Loaded 1037 entries from dependency cache. OE Build Configuration: BB_VERSION = "1.13.3" TARGET_ARCH = "i586" TARGET_OS = "linux" MACHINE = "mycdv" DISTRO = "poky" DISTRO_VERSION = "1.1" TUNE_FEATURES = "m32 core2" TARGET_FPU = "" meta meta-yocto = "edison:adcf8bf7b52460b94998438e8c2bf854cdec0a80" meta-mycdv = "edison:34478f24de65dd8de8a4c8b913a1458d82dac1fa" meta-jfa = "edison:adcf8bf7b52460b94998438e8c2bf854cdec0a80" NOTE: Resolving any missing task queue dependencies NOTE: Preparing runqueue NOTE: Executing SetScene Tasks NOTE: Executing RunQueue Tasks NOTE: Running task 514 of 693 (ID: 4, /home/jim/poky/meta-jfa/recipes-jfa/helloworld/helloworld.bb, do_fetch) NOTE: package helloworld-1.0-r0: task do_fetch: Started WARNING: Fetcher failure for URL: 'None'. Fetch command export HOME="/home/jim"; export SSH_AGENT_PID="1413"; export SSH_AUTH_SOCK="/tmp/keyring-2QW6yC/ssh"; export GIT_CONFIG="/build/mycdv-minimal/tmp/sysroots/x86_64-linux/usr/etc/gitconfig"; export PATH="/build/mycdv-minimal/tmp/sysroots/x86_64-linux/usr/bin/core2-poky-linux:/build/mycdv-minimal/tmp/sysroots/mycdv/usr/bin/crossscripts:/build/mycdv-minimal/tmp/sysroots/x86_64-linux/usr/sbin:/build/mycdv-minimal/tmp/sysroots/x86_64-linux/usr/bin:/build/mycdv-minimal/tmp/sysroots/x86_64-linux/sbin:/build/mycdv-minimal/tmp/sysroots/x86_64-linux//bin:/home/jim/poky/scripts:/home/jim/poky/bitbake/bin/:/home/jim/poky/scripts:/home/jim/poky/bitbake/bin/:/home/jim/poky/scripts:/home/jim/poky/bitbake/bin/:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/jim/poky/scripts"; /usr/bin/env wget -t 5 -q --passive-ftp --no-check-certificate -P /home/jim/yocto-downloads 'ftp://ftp.gnu.org/gnu/hello/hello-1.0.tar.gz' failed with signal 8, output: This is what is shown on the ftp site as available, I don't see 1.0.tar there. How do I control this? Jim A > Scott >