All of lore.kernel.org
 help / color / mirror / Atom feed
* Issue when integrating different bsp-layers on a single bblayers.conf
@ 2018-06-07 14:39 Iván Castell
  2018-06-07 15:09 ` Ulf Samuelsson
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Iván Castell @ 2018-06-07 14:39 UTC (permalink / raw)
  To: Yocto Project

[-- Attachment #1: Type: text/plain, Size: 1627 bytes --]

Hello forum.

I am trying to integrate several BSP-layers for different platforms on a
single Yocto repository to build a Linux Yocto-based distro for all those
platforms easily.

The idea is maintaining a single bblayers.conf with all the layers
available, set PLATFORM and DISTRO on local.conf, call bitbake <image> and
get the final image for that platform.

When setting the "build" directory with a bblayers.conf customized for a
single platform, each platform builds the image recipe properly.

However, when I have integrated all bsp-layers in a single bblayers.conf,
the compilation of some platforms has been broken.

The specific problem is this: one bsp layer (meta-rockchip +
meta-rockchip-extra) defines a recipes-graphics/mesa/mesa_%.bbappend with
this content inside:

    PROVIDES_remove = "virtual/libgles1 virtual/libgles2 virtual/egl
virtual/libwayland-egl"

That alters gstreamer recipe on the poky layer, getting this error when
building for a meta-intel platform:

    ERROR: Nothing PROVIDES 'virtual/egl' (but
/data/yocto/yocto/sources/poky/meta/recipes-multimedia/gstreamer/
gstreamer1.0-vaapi_1.12.2.bb,
/data/yocto/yocto/sources/poky/meta/recipes-multimedia/gstreamer/
gstreamer1.0-plugins-bad_1.12.2.bb DEPENDS on or otherwise requires it)

My questions:

    - Is a good practice to define a custom bblayers.conf depending on the
choosen PLATFORM?
    - Is there some any other way to disable a BSP-layer completely when
building for a different one?
    - Can you suggest a fix to solve this issue?

Thanks a lot in advance! :)

Kind regards.
  -- Ivan

[-- Attachment #2: Type: text/html, Size: 3099 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Issue when integrating different bsp-layers on a single bblayers.conf
  2018-06-07 14:39 Issue when integrating different bsp-layers on a single bblayers.conf Iván Castell
@ 2018-06-07 15:09 ` Ulf Samuelsson
  2018-06-07 15:27 ` Ulf Samuelsson
  2018-06-07 16:47 ` Trevor Woerner
  2 siblings, 0 replies; 6+ messages in thread
From: Ulf Samuelsson @ 2018-06-07 15:09 UTC (permalink / raw)
  To: Iván Castell; +Cc: Yocto Project

[-- Attachment #1: Type: text/plain, Size: 2024 bytes --]

You can BBMASK away that bbappend when you are not building the rockchip machine.

Best Regards,
Ulf Samuelsson

> 7 juni 2018 kl. 16:39 skrev Iván Castell <icastell@nayarsystems.com>:
> 
> Hello forum.
> 
> I am trying to integrate several BSP-layers for different platforms on a single Yocto repository to build a Linux Yocto-based distro for all those platforms easily.
> 
> The idea is maintaining a single bblayers.conf with all the layers available, set PLATFORM and DISTRO on local.conf, call bitbake <image> and get the final image for that platform.
> 
> When setting the "build" directory with a bblayers.conf customized for a single platform, each platform builds the image recipe properly.
> 
> However, when I have integrated all bsp-layers in a single bblayers.conf, the compilation of some platforms has been broken.
> 
> The specific problem is this: one bsp layer (meta-rockchip + meta-rockchip-extra) defines a recipes-graphics/mesa/mesa_%.bbappend with this content inside:
> 
>     PROVIDES_remove = "virtual/libgles1 virtual/libgles2 virtual/egl virtual/libwayland-egl"
> 
> That alters gstreamer recipe on the poky layer, getting this error when building for a meta-intel platform:
> 
>     ERROR: Nothing PROVIDES 'virtual/egl' (but /data/yocto/yocto/sources/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.12.2.bb, /data/yocto/yocto/sources/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.12.2.bb DEPENDS on or otherwise requires it)
> 
> My questions:
> 
>     - Is a good practice to define a custom bblayers.conf depending on the choosen PLATFORM?
>     - Is there some any other way to disable a BSP-layer completely when building for a different one?
>     - Can you suggest a fix to solve this issue?
> 
> Thanks a lot in advance! :)
> 
> Kind regards.
>   -- Ivan
> 
> 
> -- 
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto

[-- Attachment #2: Type: text/html, Size: 3947 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Issue when integrating different bsp-layers on a single bblayers.conf
  2018-06-07 14:39 Issue when integrating different bsp-layers on a single bblayers.conf Iván Castell
  2018-06-07 15:09 ` Ulf Samuelsson
@ 2018-06-07 15:27 ` Ulf Samuelsson
  2018-06-07 16:47 ` Trevor Woerner
  2 siblings, 0 replies; 6+ messages in thread
From: Ulf Samuelsson @ 2018-06-07 15:27 UTC (permalink / raw)
  To: Iván Castell; +Cc: Yocto Project

[-- Attachment #1: Type: text/plain, Size: 2268 bytes --]

Maybe something similar to this in local.conf

BBMASK .= "${@base_conditional('MACHINE', '<rockchip>', '','|meta-rockchip/recipes-*', d)}"
(did not test)
If there are multiple machines in the meta-rockchip layer, you have to look for a unique variable which is true only if a machine in the meta-rockchip layer is used.


Best Regards,
Ulf Samuelsson

> 7 juni 2018 kl. 16:39 skrev Iván Castell <icastell@nayarsystems.com>:
> 
> Hello forum.
> 
> I am trying to integrate several BSP-layers for different platforms on a single Yocto repository to build a Linux Yocto-based distro for all those platforms easily.
> 
> The idea is maintaining a single bblayers.conf with all the layers available, set PLATFORM and DISTRO on local.conf, call bitbake <image> and get the final image for that platform.
> 
> When setting the "build" directory with a bblayers.conf customized for a single platform, each platform builds the image recipe properly.
> 
> However, when I have integrated all bsp-layers in a single bblayers.conf, the compilation of some platforms has been broken.
> 
> The specific problem is this: one bsp layer (meta-rockchip + meta-rockchip-extra) defines a recipes-graphics/mesa/mesa_%.bbappend with this content inside:
> 
>     PROVIDES_remove = "virtual/libgles1 virtual/libgles2 virtual/egl virtual/libwayland-egl"
> 
> That alters gstreamer recipe on the poky layer, getting this error when building for a meta-intel platform:
> 
>     ERROR: Nothing PROVIDES 'virtual/egl' (but /data/yocto/yocto/sources/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.12.2.bb, /data/yocto/yocto/sources/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.12.2.bb DEPENDS on or otherwise requires it)
> 
> My questions:
> 
>     - Is a good practice to define a custom bblayers.conf depending on the choosen PLATFORM?
>     - Is there some any other way to disable a BSP-layer completely when building for a different one?
>     - Can you suggest a fix to solve this issue?
> 
> Thanks a lot in advance! :)
> 
> Kind regards.
>   -- Ivan
> 
> 
> -- 
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto

[-- Attachment #2: Type: text/html, Size: 5360 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Issue when integrating different bsp-layers on a single bblayers.conf
  2018-06-07 14:39 Issue when integrating different bsp-layers on a single bblayers.conf Iván Castell
  2018-06-07 15:09 ` Ulf Samuelsson
  2018-06-07 15:27 ` Ulf Samuelsson
@ 2018-06-07 16:47 ` Trevor Woerner
  2018-06-08  7:22   ` Iván Castell
  2 siblings, 1 reply; 6+ messages in thread
From: Trevor Woerner @ 2018-06-07 16:47 UTC (permalink / raw)
  To: Iván Castell; +Cc: Yocto Project

Hi Iván,

On Thu 2018-06-07 @ 04:39:11 PM, Iván Castell wrote:
> When setting the "build" directory with a bblayers.conf customized for a
> single platform, each platform builds the image recipe properly.
> 
> However, when I have integrated all bsp-layers in a single bblayers.conf,
> the compilation of some platforms has been broken.

This is a problem that comes up fairly often, and is a bug with the BSP layer
itself. All BSP layers are supposed to be created so that they work well when
intermixed with other BSP layers, but often they don't. See Angstrom:

	http://www.angstrom-distribution.org/

> The specific problem is this: one bsp layer (meta-rockchip +
> meta-rockchip-extra) defines a recipes-graphics/mesa/mesa_%.bbappend with
> this content inside:

I am the maintainer of the non-vendor meta-rockchip layer:

	https://git.yoctoproject.org/cgit/cgit.cgi/meta-rockchip/

The fact you mention this problem and meta-rockchip-extra implies to me that
you're using the vendor-provided meta-rockchip and meta-rockchip-extra:

	https://github.com/rockchip-linux/meta-rockchip
	https://github.com/rockchip-linux/meta-rockchip-extra

The problem is, the vendor is only interested in their own hardware, so to
them there's no reason to ever mix their BSP layer with any other BSP layer.
There's no interest on their part to "play well" with others or to check
whether their layers comply with community guidelines.

As a person who likes OpenEmbedded as a whole, I try my best to make sure any
layer I'm interested in plays well within the entire OpenEmbedded ecosystem.
However, because mali graphics are currently all binary blobs and projects
like Lima and Panfrost aren't yet ready for prime-time, there isn't much
support yet for _accelerated_ graphics in the non-vendor layer.

>     - Can you suggest a fix to solve this issue?

Fix the problem in the layer by using MACHINE-specific OVERRIDES and submit
a pull request to the owners. However, I've noticed there haven't been any
updates to their OE layers in the past 4 months or more, so I can't help
wonder if they've abandoned them.

Out of curiosity, which MACHINE(s) are you interested in?

Best regards,
	Trevor


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Issue when integrating different bsp-layers on a single bblayers.conf
  2018-06-07 16:47 ` Trevor Woerner
@ 2018-06-08  7:22   ` Iván Castell
  0 siblings, 0 replies; 6+ messages in thread
From: Iván Castell @ 2018-06-08  7:22 UTC (permalink / raw)
  To: Trevor Woerner; +Cc: Yocto Project

[-- Attachment #1: Type: text/plain, Size: 3075 bytes --]

Hello.

Many thanks for your explanation Mr. Trevor. That makes sense to me. At
least now we know we are in the good way.

2018-06-07 18:47 GMT+02:00 Trevor Woerner <twoerner@gmail.com>:

> Hi Iván,
>
> On Thu 2018-06-07 @ 04:39:11 PM, Iván Castell wrote:
> > When setting the "build" directory with a bblayers.conf customized for a
> > single platform, each platform builds the image recipe properly.
> >
> > However, when I have integrated all bsp-layers in a single bblayers.conf,
> > the compilation of some platforms has been broken.
>
> This is a problem that comes up fairly often, and is a bug with the BSP
> layer
> itself. All BSP layers are supposed to be created so that they work well
> when
> intermixed with other BSP layers, but often they don't. See Angstrom:
>
>         http://www.angstrom-distribution.org/
>
> > The specific problem is this: one bsp layer (meta-rockchip +
> > meta-rockchip-extra) defines a recipes-graphics/mesa/mesa_%.bbappend
> with
> > this content inside:
>
> I am the maintainer of the non-vendor meta-rockchip layer:
>
>         https://git.yoctoproject.org/cgit/cgit.cgi/meta-rockchip/
>
> The fact you mention this problem and meta-rockchip-extra implies to me
> that
> you're using the vendor-provided meta-rockchip and meta-rockchip-extra:
>
>         https://github.com/rockchip-linux/meta-rockchip
>         https://github.com/rockchip-linux/meta-rockchip-extra
>

Exactly those are the layers we are using. We use all hardware platforms to
play videos using a Qt + gstreamer application.

The problem is, the vendor is only interested in their own hardware, so to
> them there's no reason to ever mix their BSP layer with any other BSP
> layer.
> There's no interest on their part to "play well" with others or to check
> whether their layers comply with community guidelines.
>
> As a person who likes OpenEmbedded as a whole, I try my best to make sure
> any
> layer I'm interested in plays well within the entire OpenEmbedded
> ecosystem.
> However, because mali graphics are currently all binary blobs and projects
> like Lima and Panfrost aren't yet ready for prime-time, there isn't much
> support yet for _accelerated_ graphics in the non-vendor layer.
>

I hope some of these open projects will success to improve the current
situation.



> >     - Can you suggest a fix to solve this issue?
>
> Fix the problem in the layer by using MACHINE-specific OVERRIDES and submit
> a pull request to the owners. However, I've noticed there haven't been any
> updates to their OE layers in the past 4 months or more, so I can't help
> wonder if they've abandoned them.
>

Will try to fix it as suggested and will send the PR.



> Out of curiosity, which MACHINE(s) are you interested in?
>

Current working platforms are:
    * Intel Celeron J1900 (meta-intel).
    * Rockchip RK3288 Merrii-K2 (meta-rockchip)

Planning to start working with some Allwinner-based board (meta-sunxi).

Have a nice day! :-)

Kind regards,
  --  Ivan

[-- Attachment #2: Type: text/html, Size: 6904 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Issue when integrating different bsp-layers on a single bblayers.conf
@ 2018-06-14 20:50 Peter Kjellerstedt
  0 siblings, 0 replies; 6+ messages in thread
From: Peter Kjellerstedt @ 2018-06-14 20:50 UTC (permalink / raw)
  To: Ulf Samuelsson, Iván Castell; +Cc: Yocto Project

[-- Attachment #1: Type: text/plain, Size: 3026 bytes --]

Just thought I should mention that since Krogoth, BBMASK is actually a list of regular expressions, so your example below is better written as:

BBMASK += "${@bb.utils.contains('MACHINE', '<rockchip>', '', '/meta-rockchip/recipes-.*', d)}"

(including changing base_conditional() to bb.utils.contains(), and correcting the regular expression).

//Peter

From: yocto-bounces@yoctoproject.org [mailto:yocto-bounces@yoctoproject.org] On Behalf Of Ulf Samuelsson
Sent: den 7 juni 2018 17:27
To: Iván Castell <icastell@nayarsystems.com>
Cc: Yocto Project <yocto@yoctoproject.org>
Subject: Re: [yocto] Issue when integrating different bsp-layers on a single bblayers.conf

Maybe something similar to this in local.conf


BBMASK .= "${@base_conditional('MACHINE', '<rockchip>', '','|meta-rockchip/recipes-*', d)}"
(did not test)
If there are multiple machines in the meta-rockchip layer, you have to look for a unique variable which is true only if a machine in the meta-rockchip layer is used.


Best Regards,
Ulf Samuelsson

7 juni 2018 kl. 16:39 skrev Iván Castell <icastell@nayarsystems.com<mailto:icastell@nayarsystems.com>>:
Hello forum.

I am trying to integrate several BSP-layers for different platforms on a single Yocto repository to build a Linux Yocto-based distro for all those platforms easily.

The idea is maintaining a single bblayers.conf with all the layers available, set PLATFORM and DISTRO on local.conf, call bitbake <image> and get the final image for that platform.

When setting the "build" directory with a bblayers.conf customized for a single platform, each platform builds the image recipe properly.

However, when I have integrated all bsp-layers in a single bblayers.conf, the compilation of some platforms has been broken.

The specific problem is this: one bsp layer (meta-rockchip + meta-rockchip-extra) defines a recipes-graphics/mesa/mesa_%.bbappend with this content inside:


    PROVIDES_remove = "virtual/libgles1 virtual/libgles2 virtual/egl virtual/libwayland-egl"



That alters gstreamer recipe on the poky layer, getting this error when building for a meta-intel platform:

    ERROR: Nothing PROVIDES 'virtual/egl' (but /data/yocto/yocto/sources/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.12.2.bb<http://gstreamer1.0-vaapi_1.12.2.bb>, /data/yocto/yocto/sources/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.12.2.bb<http://gstreamer1.0-plugins-bad_1.12.2.bb> DEPENDS on or otherwise requires it)

My questions:

    - Is a good practice to define a custom bblayers.conf depending on the choosen PLATFORM?
    - Is there some any other way to disable a BSP-layer completely when building for a different one?
    - Can you suggest a fix to solve this issue?

Thanks a lot in advance! :)

Kind regards.
  -- Ivan


--
_______________________________________________
yocto mailing list
yocto@yoctoproject.org<mailto:yocto@yoctoproject.org>
https://lists.yoctoproject.org/listinfo/yocto

[-- Attachment #2: Type: text/html, Size: 10304 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-06-14 20:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-07 14:39 Issue when integrating different bsp-layers on a single bblayers.conf Iván Castell
2018-06-07 15:09 ` Ulf Samuelsson
2018-06-07 15:27 ` Ulf Samuelsson
2018-06-07 16:47 ` Trevor Woerner
2018-06-08  7:22   ` Iván Castell
2018-06-14 20:50 Peter Kjellerstedt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.