How to get hardware accelerated graphics with yocto linux on beaglebone black? - yocto

I am trying to implement a fast booting GUI running on a beaglebone black running a yocto image. I managed to get everything running using MACHINE?=beaglebone-yocto in my config file (important note: the machine beaglebone-yocto is provided by meta-poky). However, the GUI is extremely slow which I assume to be due to the non-hardware-accelerated graphics.
To solve this, I decided to use the beaglebone bsp from meta-ti (MACHINE?=beaglebone) on the kirkstone version. Running BitBake with this machine set I run into the following errors:
bitbake my-image-dev
Loading cache: 100% |#################################################################################| Time: 0:00:00
Loaded 3811 entries from dependency cache.
Parsing recipes: 100% |###############################################################################| Time: 0:00:00
Parsing of 2390 .bb files complete (2388 cached, 2 parsed). 3811 targets, 237 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
ERROR: Nothing PROVIDES 'virtual/libgl' (but /home/dev/yocto/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_21.1.4.bb, /home/dev/yocto/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb, /home/dev/yocto/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.9.bb DEPENDS on or otherwise requires it)
mesa PROVIDES virtual/libgl but was skipped: PREFERRED_PROVIDER_virtual/libgles1 set to ti-sgx-ddk-um, not mesa
mesa-gl PROVIDES virtual/libgl but was skipped: PREFERRED_PROVIDER_virtual/libgl set to mesa, not mesa-gl
NOTE: Runtime target 'xserver-xorg' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['xserver-xorg', 'virtual/libgl']
NOTE: Runtime target 'packagegroup-core-x11-xserver' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['packagegroup-core-x11-xserver', 'xserver-xorg', 'virtual/libgl']
NOTE: Runtime target 'packagegroup-core-x11' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['packagegroup-core-x11', 'packagegroup-core-x11-xserver', 'xserver-xorg', 'virtual/libgl']
ERROR: Required build target 'my-image-dev' has no buildable providers.
Missing or unbuildable dependency chain was: ['my-image-dev', 'packagegroup-core-x11', 'packagegroup-core-x11-xserver', 'xserver-xorg', 'virtual/libgl']
Summary: There were 2 ERROR messages, returning a non-zero exit code.
This errors happen because ti33x.inc (meta-ti-bsp/conf/machine/include), which is included by the beaglebone.conf machine file states
PREFERRED_PROVIDER_virtual/kernel ?= "linux-ti-staging"
PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-ti-staging"
PREFERRED_PROVIDER_u-boot ?= "u-boot-ti-staging"
PREFERRED_PROVIDER_virtual/egl ?= "ti-sgx-ddk-um"
PREFERRED_PROVIDER_virtual/libgles1 ?= "ti-sgx-ddk-um"
PREFERRED_PROVIDER_virtual/libgles2 ?= "ti-sgx-ddk-um"
PREFERRED_PROVIDER_virtual/libgbm ?= "ti-sgx-ddk-um"
PREFERRED_PROVIDER_virtual/gpudriver ?= "ti-sgx-ddk-km"
I assume my build is not able to find ti-sgx-ddk-km. However, I do have the recipe ti-sgx-ddk-um_1.17.4948957.bb in meta-ti/meta-ti-bsp/recipes-graphics/libgles/ and I can build this individually with bitbake ti-sgx-ddk-km.
For me, it seems like everything is set up correctly (which is obviously not the case) but bitbake is just not able to find the ti-sgx-ddk-um recipe during compilation.
Does somebody have an solution or an idea what could be wrong?

Related

Bitbake understanding the EXCLUDE_FROM_WORLD mechanism

I'm developing on Yocto 2.4 rockowith a BSP given by my provider. I'm trying to build modemmanager from the meta-openembedded layer, included in the meta-oe sub layer.
The configure task fail and give me as error :
checking for gobject-introspection...
configure: error: gobject-introspection-1.0 is not installed
After some search I've installed the libgirepository1.0-dev package on my host machine. But the error is always present.
I've continued investigations, and find in my recipe log the line :
DEBUG: EXCLUDE FROM WORLD: virtual:native:/home/test/share/sc20_linux/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.52.1.bb
I've tried to find which recipe excludes the dependency, with no success.
Can you help me to understand how works the EXCLUDE_FROM_WORLD mechanism ?
Thanks for your help.
I suspect that is debug output and doesn't mean the recipe is excluded. Have you looked at the modemmanager recipe to see if it has a DEPENDS on gobject-introspection-native and perhaps gobject-introspection? If not, or the PACKAGECONFIG isn't set, try adding the DEPENDS or enabling the PACKGECONFIG?
Also, have you tried simply building "bitbake object-introspection-native" and "bitbake object-introspection". You should get an error about why they ar disabled if you try and build them directly and they are excluded/disabled for some reason.

What is bitbake error-Nothing RPROVIDES mongodb

Using a translator can make the sentence strange.
I use DART-6UL based on mx6.
Attempting to add mongodb to an image results in an error.
We confirmed that mongodb is in meta-oe
I added it to local.conf, but there's an error.
Let me know if I've done anything wrong
local.conf
> IMAGE_INSTALL_append = " mongodb"
ERROR: Nothing RPROVIDES 'mongodb' (but
/home/eco/var-fslc-yocto/sources/meta-variscite-fslc/recipes-fsl/images/fsl-image-qt5.bb RDEPENDS on or otherwise requires it)
mongodb was skipped: incompatible with host arm-fslc-linux-gnueabi
(not in COMPATIBLE_HOST)
NOTE: Runtime target 'mongodb' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['mongodb']
ERROR: Required build target 'fsl-image-qt5' has no buildable
providers. Missing or unbuildable dependency chain was:
['fsl-image-qt5', 'mongodb']
You can search a package recipe availability via http://layers.openembedded.orgayers.openembedded.org/
e.g. mongodb is provided by meta-oe layer so please ensure that you have checked out the layer repo
git clone git://github.com/openembedded/meta-openembedded
parallel to other layer repos
secondly meta-oe is added to bblayers.conf file
BBLAYERS = "\
...
/path/to/your/workspace/meta-openembedded/meta-oe \
...
"
This will ensure that it can find mongodb recipe atleast
Next problem is that mongodb is blacklisted in master branch as of now because it can not be built see
http://layers.openembedded.org/layerindex/recipe/24093/
This would need to be addressed. If you are using an older release then it might be fine

What is RPROVIDES for uhttpd in core-image-sato?

I am trying to include uhttpd package in poky, I included uhttpd package in poky. meta-openembedded/meta-webserver/recipes-httpd/uhttpd this is where I have added but I am facing the following error.Please help me to solve this issue.
ERROR: Nothing RPROVIDES 'uhttpd' (but /home/aa/poky/meta/recipes-sato/images/core-image-sato.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'uhttpd' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['uhttpd']
ERROR: Required build target 'core-image-sato' has no buildable providers.
Missing or unbuildable dependency chain was: ['core-image-sato', 'uhttpd']
Yocto has layers which provide additional packages so its always good to search it on layerindex
http://layers.openembedded.org/layerindex/branch/master/recipes/
Enter the regexp for recipe you are looking for 'uhttp'
This will show you which layer provides the recipe
then clone the layer containing the recipe
cd poky
git clone git://github.com/kraj/meta-openwrt
cd poky/build
bitbake-layers add-layer ../meta-openwrt
then retry to build. Now its possible that you will run into further errors but this on should be taken care of.

Yocto Image build fails because "nothing RPROVIDES libavresample"

I am trying to build a custom Yocto image based on fsl-image-gui for my iMX6 based board SECO A62J. I use Hob to do this.
After having selected my machine, my layers and my image, I custom my packages list by adding chromium. This automatically selects libexif and libav which are Chromium dependencies. The build of the packages is successful
The last step is the build of the image itself, and this is where my problem appears. I select the packages I want to include in my image, including Chromium, libexif and libav (and its dependencies).
And I got those errors :
Nothing RPROVIDES 'libavresample' (but
/home/adrien/fsl-release-bsp/build_anna/recipes/images/fsl-image-gui-edited-20170131-144607.bb RDEPENDS on or otherwise requires it)
and
Required build target 'fsl-image-gui-edited-20170131-144607' has no
buildable providers. Missing or unbuildable dependency chain was:
['fsl-image-gui-edited-20170131-144607', 'libavresample']
However, the library libavresample.so is built successfully and can be found under my build directory in sysroots/"machine_name"/usr/lib/
Why Yocto can't find and include this library in my image, What am I missing here?
In your local.conf :
LICENSE_FLAGS_WHITELIST += " commercial"

Installing grub2 in yocto rootfs

I am working on yocto, I want to include grub2 exectables such as grub2-mkconfig in my filesystem.
I am able to install grub in yocto, by adding below line.
MACHINE_ESSENTIAL_EXTRA_RDEPENDS = "grub"
PREFERRED_VERSION_grub ?= "1.99"
when I change
MACHINE_ESSENTIAL_EXTRA_RDEPENDS = "grub2" or
MACHINE_ESSENTIAL_EXTRA_RDEPENDS = "grub_2"
I got below error
ERROR: Nothing RPROVIDES 'grub2' (but /home/poky/meta/recipes-core/packagegroups/packagegroup-core-boot.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'grub2' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['grub2']
NOTE: Runtime target 'packagegroup-core-boot' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['packagegroup-core-boot', 'grub2']
How can I include grub2 support?