What am I doing wrong ? Trouble building core-image-ros-world

1,399 views
Skip to first unread message

lars.at.visi...@gmail.com

unread,
Feb 10, 2016, 3:43:29 AM2/10/16
to Mailing List of ROS Layer for OpenEmbedded Linux
Dear mailing list

In my company we are seriously considering going with Yocto project  and meta-ros
But I got stuck in my effort to make the ROS build .
And I'm sure some of you can spot my problem with a glance.

My yocto / meta-ros experience is not strong enough,  so I hope to get some pointers

I Started my venture by following the yocto getting started guide,
I had to add a layer to pull in a custom defconfig for kernel compilation - i called it meta-fpe, it only contains a linux-yocto_4.1.bbappend file 
and succeeded in building an core-image-minimal , that can boot on my target: genericx86

Then - according to the http://wiki.ros.org/Installation/OpenEmbedded,  I added the ros layers - so my BBLAYERS now looks like this

BBLAYERS ?= " \
   /home/lars/poky/meta \
   /home/lars/poky/meta-yocto \
   /home/lars/poky/meta-yocto-bsp \
   /home/lars/poky/meta-ros \
    /home/lars/poky/meta-openembedded/meta-oe \
   /home/lars/poky/meta-openembedded/meta-python \
   /home/lars/poky/meta-openembedded/meta-multimedia \    
   /home/lars/poky/meta-fpe \
"




My meta-fpe layer only 'bbappends' the  defconfig file to tweak the kernel to my target - I intend to continue expanding this layer with my own recipes.
I plan to build  a 'robovator-image.bb' recipe that pulls from the packagegroup-ros-comm just like packagegroup-ros-world does,

when I  bitbake core-image-ros-roscore it works like a dream I get a nice little image -  I can boot with basic ROS stuf.

Then I added an image recipe to the meta-fpe layer that use same approach as core-image-ros-world, but I get strange errors (se below)

snip from meta-fpe/recipes-core/images/robovator-image.bb


inherit core
-image
IMAGE_FSTYPES
= "tar.bz2 cpio"



IMAGE_INSTALL
+= " \
    packagegroup-robovator-basic \
"



snip from meta-fpe/recipes-core/packagegroups/packagegroup-robovator-basic.bb



inherit packagegroup


PACKAGES
= "${PN}"




RDEPENDS_$
{PN} = "\
    packagegroup-ros-comm \
    "



to isolate it  I  try to  bitbake core-image-ros-world, but I  get the same errors that I can't decipher and the mentioned log files doesn't help me much

ERROR: QA Issue: python-imaging: The compile log indicates that host include and/or library paths were used.
         Please check the log '/home/lars/poky/build/tmp/work/core2-32-poky-linux/python-imaging/1.1.7-r5/temp/log.do_compile' for more information. [compile-host-path]
ERROR: QA run found fatal errors. Please consider fixing them.
ERROR: Function failed: do_package_qa
ERROR: Logfile of failure stored in: /home/lars/poky/build/tmp/work/core2-32-poky-linux/python-imaging/1.1.7-r5/temp/log.do_package_qa.25846
ERROR: Task 5690 (/home/lars/poky/meta/recipes-devtools/python/python-imaging_1.1.7.bb, do_package_qa) failed with exit code '1'

It's obviously not a meta-ros error, but then again the latest pull request #373 mentions exactly a python update.
I suspect I have some conflicts  in my BBLAYER - but I don't know ??

any help is appreciated
kind regards 
-Lars Larsen

------------
F.P Engineering, Denmark

lars.at.visi...@gmail.com

unread,
Feb 10, 2016, 4:46:41 AM2/10/16
to Mailing List of ROS Layer for OpenEmbedded Linux
Just a quick update
when I change meta-fpe/recipes-core/packagegroups/packagegroup-robovator-basic.bb, to:

inherit packagegroup


PACKAGES
= "${PN}"





RDEPENDS_$
{PN} = "roslaunch"

which is the same approach core-image-ros-roscore uses, it compiles without trouble.
-Lars

Lukas Bulwahn

unread,
Feb 11, 2016, 2:15:43 AM2/11/16
to Mailing List of ROS Layer for OpenEmbedded Linux
Dear Lars,

in the meta-ros layer, we try to keep the whole layer running with the current upstream git repositories (oe-core and meta-openembedded/meta-oe). The exact URLs of these two layers can be found in the README.

With the upstream oe-core and meta-oe layer, I have not noticed this issue at any time in the past (that I could still remember).

The python-imaging recipe is provided in the oe-core layer, and hence should in fact be very well maintained; hence, I am surprised that this issue occurs. Also, I am unaware of any configuration in the meta-ros layer that influence the python-imaging recipe.

In the meta-ros layer, the rosbag recipe depend on python-imaging; if you do not require rosbag on the target, you can possibly drop that from the packagegroup-ros-comm and avoid the issue you ran into.

In the last 24 hours, I tried hard to reproduce the issue, but it did not occur.

I tried on oe-core jethro:

[lukas@hulk build]$ bitbake packagegroup-ros-comm

Parsing recipes: 100%

Parsing of 1949 .bb files complete (0 cached, 1949 parsed). 2489 targets, 78 skipped, 0 masked, 0 errors.

NOTE: Resolving any missing task queue dependencies

NOTE: multiple providers are available for jpeg (jpeg, libjpeg-turbo)

NOTE: consider defining a PREFERRED_PROVIDER entry to match jpeg


Build Configuration:

BB_VERSION        = "1.28.0"

BUILD_SYS         = "x86_64-linux"

NATIVELSBSTRING   = "Fedora-22"

TARGET_SYS        = "i586-oe-linux"

MACHINE           = "qemux86"

DISTRO            = "nodistro"

DISTRO_VERSION    = "nodistro.0"

TUNE_FEATURES     = "m32 i586"

TARGET_FPU        = ""

meta              = "HEAD:05e551d821594b0f4c06328386b6a82e0801ac2a"

meta-oe           

meta-python       

meta-multimedia   = "HEAD:7bc138a365e20653ddfb9229561e3e9e50b89ee8"

meta-ros          = "master:63ebe5bfe6312b6e67fbbd379ff83f2b42b85a5c"


NOTE: Preparing RunQueue

NOTE: Executing SetScene Tasks

NOTE: Executing RunQueue Tasks

WARNING: QA Issue: log4cxx: /log4cxx/usr/share/log4cxx/html/logmanager_8h.html is owned by uid 1008, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated]

NOTE: Tasks Summary: Attempted 2177 tasks of which 1 didn't need to be rerun and all succeeded.


Summary: There was 1 WARNING message shown.


and I tried on poky jethro:

[lukas@hulk build]$ bitbake packagegroup-ros-comm

Loading cache: 100%

Loaded 2320 entries from dependency cache.

Parsing recipes: 100%

Parsing of 1802 .bb files complete (1797 cached, 5 parsed). 2324 targets, 88 skipped, 0 masked, 0 errors.

NOTE: Resolving any missing task queue dependencies

NOTE: multiple providers are available for jpeg (jpeg, libjpeg-turbo)

NOTE: consider defining a PREFERRED_PROVIDER entry to match jpeg


Build Configuration:

BB_VERSION        = "1.28.0"

BUILD_SYS         = "x86_64-linux"

NATIVELSBSTRING   = "Fedora-22"

TARGET_SYS        = "i686-poky-linux"

MACHINE           = "genericx86"

DISTRO            = "poky"

DISTRO_VERSION    = "2.0.1"

TUNE_FEATURES     = "m32 core2"

TARGET_FPU        = ""

meta              

meta-yocto        

meta-yocto-bsp    = "jethro:5b12268f6e17574999f91628a60e21711cf62ee4"

meta-oe           = "jethro:7bc138a365e20653ddfb9229561e3e9e50b89ee8"

meta-ros          = "master:63ebe5bfe6312b6e67fbbd379ff83f2b42b85a5c"


NOTE: Preparing RunQueue

NOTE: Executing SetScene Tasks

NOTE: Executing RunQueue Tasks

NOTE: Tasks Summary: Attempted 1650 tasks of which 696 didn't need to be rerun and all succeeded.


Maybe it was just an intermediate issue in the oe-core jethro branch, and you just have to update your git repositories to current version?

Could you please provide the exact commit identifiers of the layers that you are using?

Lukas

lars.at.visi...@gmail.com

unread,
Feb 11, 2016, 4:52:47 AM2/11/16
to Mailing List of ROS Layer for OpenEmbedded Linux




Lukas

Thanks for your effort.

I updated my checkouts to be inline with yours 

bitbaking ros-comm works fine but when I add my recipe i goes sour
like this:

initial bblayers.conf


# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
LCONF_VERSION
= "6"


BBPATH
= "${TOPDIR}"
BBFILES
?= ""



BBLAYERS
?= " \
  /home/lars/poky/meta \
  /home/lars/poky/meta-yocto \
  /home/lars/poky/meta-yocto-bsp \
  /home/lars/poky/meta-ros \
  /home/lars/poky/meta-openembedded/meta-oe \
  "

 
BBLAYERS_NON_REMOVABLE
?= " \
  /home/lars/poky/meta \
  /home/lars/poky/meta-yocto \
"



LICENSE_FLAGS_WHITELIST
= "commercial"










then:
lars@lars-ThinkPad-W520:~/poky/build$  bitbake packagegroup-ros-comm
Loading cache: 100% |##############################################################################################################################################################################| ETA:  00:00:00
Loaded 2320 entries from dependency cache.
Parsing recipes: 100% |############################################################################################################################################################################| Time: 00:00:00
Parsing of 1800 .bb files complete (1797 cached, 3 parsed). 2322 targets, 73 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
NOTE: multiple providers are available for jpeg (jpeg, libjpeg-turbo)
NOTE: consider defining a PREFERRED_PROVIDER entry to match jpeg

Build Configuration:
BB_VERSION        = "1.28.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Ubuntu-14.04"
TARGET_SYS        = "i686-poky-linux"
MACHINE           = "genericx86"
DISTRO            = "poky"
DISTRO_VERSION    = "2.0.1"
TUNE_FEATURES     = "m32 core2"
TARGET_FPU        = ""
meta              
meta-yocto        
meta-yocto-bsp    = "jethro:5b12268f6e17574999f91628a60e21711cf62ee4"
meta-ros          = "master:63ebe5bfe6312b6e67fbbd379ff83f2b42b85a5c"
meta-oe           = "jethro:7bc138a365e20653ddfb9229561e3e9e50b89ee8"

NOTE: Preparing RunQueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: Tasks Summary: Attempted 1657 tasks of which 1657 didn't need to be rerun and all succeeded.


All good, but after updating bblayes.conf with my layer

# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
LCONF_VERSION
= "6"


BBPATH
= "${TOPDIR}"
BBFILES
?= ""

BBLAYERS
?= " \

  /home/lars/poky/meta \
  /home/lars/poky/meta-yocto \
  /home/lars/poky/meta-yocto-bsp \
  /home/lars/poky/meta-ros \
  /home/lars/poky/meta-openembedded/meta-oe \
  /home/lars/poky/meta-fpe \
  "

 
BBLAYERS_NON_REMOVABLE
?= " \
  /home/lars/poky/meta \
  /home/lars/poky/meta-yocto \
"



LICENSE_FLAGS_WHITELIST
= "commercial"


The meta-fpe layout shown below important files attached (I invalidated the Xreceipes-robovator it is not found by layer.conf)


.
├── conf
  └── layer.conf
├── license
  └── FPE
├── README
├── recipes-core
  ├── images
    └── robovator-image.bb
  └── packagegroups
      └── packagegroup-robovator-basic.bb
├── recipes-kernel
  └── linux
      ├── linux-yocto
        └── genericx86
            └── defconfig
      └── linux-yocto_4.1.bbappend
└── Xrecipes-robovator
   
├── filepopulation
   
  ├── filepopulation.bb
   
  └── README
   
└── initscript


And as you can see my robovator-image.bb pulls in ros-comm the same way  core-image-ros-world.bb does

This yeild the following:

lars@lars-ThinkPad-W520:~/poky/build$ bitbake robovator-image
Loading cache: 100% |##############################################################################################################################################################################| ETA:  00:00:00
Loaded 2323 entries from dependency cache.
Parsing recipes: 100% |############################################################################################################################################################################| Time: 00:00:00
Parsing of 1802 .bb files complete (1799 cached, 3 parsed). 2324 targets, 73 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
NOTE: multiple providers are available for jpeg (jpeg, libjpeg-turbo)
NOTE: consider defining a PREFERRED_PROVIDER entry to match jpeg

Build Configuration:
BB_VERSION        = "1.28.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Ubuntu-14.04"
TARGET_SYS        = "i686-poky-linux"
MACHINE           = "genericx86"
DISTRO            = "poky"
DISTRO_VERSION    = "2.0.1"
TUNE_FEATURES     = "m32 core2"
TARGET_FPU        = ""
meta              
meta-yocto        
meta-yocto-bsp    = "jethro:5b12268f6e17574999f91628a60e21711cf62ee4"
meta-ros          = "master:63ebe5bfe6312b6e67fbbd379ff83f2b42b85a5c"
meta-oe           = "jethro:7bc138a365e20653ddfb9229561e3e9e50b89ee8"
meta-fpe          = "jethro:5b12268f6e17574999f91628a60e21711cf62ee4"

NOTE: Preparing RunQueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: QA Issue: python-imaging: The compile log indicates that host include and/or library paths were used.
         Please check the log '/home/lars/poky/build/tmp/work/core2-32-poky-linux/python-imaging/1.1.7-r5/temp/log.do_compile' for more information. [compile-host-path]
ERROR: QA run found fatal errors. Please consider fixing them.
ERROR: Function failed: do_package_qa
ERROR: Logfile of failure stored in: /home/lars/poky/build/tmp/work/core2-32-poky-linux/python-imaging/1.1.7-r5/temp/log.do_package_qa.5020
ERROR: Task 3367 (/home/lars/poky/meta/recipes-devtools/python/python-imaging_1.1.7.bb, do_package_qa) failed with exit code '1'
NOTE: Tasks Summary: Attempted 3350 tasks of which 3338 didn't need to be rerun and 1 failed.
Waiting for 0 running tasks to finish:

Summary: 1 task failed:
  /home/lars/poky/meta/recipes-devtools/python/python-imaging_1.1.7.bb, do_package_qa
Summary: There were 3 ERROR messages shown, returning a non-zero exit code.


Something is wrong with my layer - but what ?
A 'funny' note on the side:  it is reported that meta-fpe originates from jethro:5b12268f6e17574999f91628a60e21711cf62ee4", but meta-fpe is NOT under git control at all.
I hope this some how makes sense to you

-Lars

layer.conf
robovator-image.bb
packagegroup-robovator-basic.bb
linux-yocto_4.1.bbappend

Lukas Bulwahn

unread,
Feb 12, 2016, 2:00:10 PM2/12/16
to Mailing List of ROS Layer for OpenEmbedded Linux
Dear Lars,

I hope you could pinpoint or resolve the issue in your layer. If you send me your layer, I could at least check if I can reproduce it.

Lukas

lars.at.visi...@gmail.com

unread,
Feb 25, 2016, 10:48:28 AM2/25/16
to Mailing List of ROS Layer for OpenEmbedded Linux
I finally got it running.
I had painted my self in to a corner, so I started over from scratch, and now my layer can build a bootable image based on  packagegroup-ros-comm

but please forgive a ROS/bitbake novice - still one thing I don't understand though: 

I made a little test ROS package ( based on beginner_tutorial  ) I pushed it to a git repository.

It builds fine and is deployed to the target, but if I make a change and push that to the git repo, this change is not reflected on target, how do I  force bitbake to checkout  the head, and rebuild my package ?
 - I thought bitbake -c clean recipe && bitbake recipe  would do the trick.

BR
/Lars





Lukas Bulwahn

unread,
Mar 4, 2016, 3:59:30 AM3/4/16
to Mailing List of ROS Layer for OpenEmbedded Linux
Dear Lars,

It builds fine and is deployed to the target, but if I make a change and push that to the git repo, this change is not reflected on target, how do I  force bitbake to checkout  the head, and rebuild my package ?
 - I thought bitbake -c clean recipe && bitbake recipe  would do the trick


I usually use the command `bitbake -c cleanall recipe` to remove all cached downloads and local git repository clones, and this usually worked for me. So, maybe it works for you as well?
The openembedded-core mailing list might be a good place to get more hints if you need them.

Lukas
Reply all
Reply to author
Forward
0 new messages