Bug 11837 - XSERVER uses xf86-video-mga from meta-oe instead of meta-intel
Summary: XSERVER uses xf86-video-mga from meta-oe instead of meta-intel
Status: RESOLVED FIXED
Alias: None
Product: BSPs
Classification: Build System, Metadata & Runtime
Component: bsps-meta-intel (show other bugs)
Version: unspecified
Hardware: x86 Multiple
: Medium normal
Target Milestone: 2.5
Assignee: California Sullivan
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2017-07-26 09:20 UTC by Patrick Ohly
Modified: 2018-01-22 22:45 UTC (History)
3 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Ohly 2017-07-26 09:20:07 UTC
conf/machine/intel-corei7-64.conf includes ${XSERVER_X86_MATROX_MGA} in ${XSERVER}, and conf/machine/include/meta-intel.inc sets {XSERVER_X86_MATROX_MGA} to "xf86-video-mga".

xf86-video-mga used to be in OE-core, but now it is in meta-oe. The result is that building packagegroup-core-x11[-xserver].bb fails when using meta-intel without meta-oe, which probably isn't intended?

The fix is trivial (remove all references to XSERVER_X86_MATROX_MGA and xf86-video-mga); the bigger question is why that hasn't been caught by tests for meta-intel. Does testing have to be enhanced?

We ran into this in refkit, which has meta-oe, but carefully controls which recipes from it get used - see https://github.com/intel/intel-iot-refkit/pull/258
Comment 1 Patrick Ohly 2017-07-26 10:17:33 UTC
(In reply to comment #0)
> xf86-video-mga used to be in OE-core, but now it is in meta-oe.

Close, but not quite correct. It's still in meta-intel, but when meta-oe is active, the copy from meta-oe is used. Is that how it should be?

> The fix is trivial (remove all references to XSERVER_X86_MATROX_MGA and
> xf86-video-mga); the bigger question is why that hasn't been caught by tests
> for meta-intel. Does testing have to be enhanced?

Nope. meta-intel without meta-oe works fine.
Comment 2 Saul Wold 2017-07-27 00:27:51 UTC
Could this have to do with Layer Priority? meta-intel includes a full mga recipe, for 1.6,4, which is older than the 1.6.5 version in meta-oe.

I was not aware that it moved to meta-oe.

Does it even make sense to have the extra XSERVER video drivers ?
Comment 3 Patrick Ohly 2017-07-27 06:36:12 UTC
(In reply to comment #2)
> Could this have to do with Layer Priority? meta-intel includes a full mga
> recipe, for 1.6,4, which is older than the 1.6.5 version in meta-oe.

Yes, it is because meta-intel has a lower priority (5) than meta-oe (6).

> I was not aware that it moved to meta-oe.

commit 29e111093bc97806ea5e96d1526fa93b055fac18
Author: Jackie Huang <jackie.huang@windriver.com>
Date:   Tue May 23 15:01:41 2017 +0800

    xf86-video-mga: add new recipe
    
    mga is an Xorg driver for Matrox video cards
    
    Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
    Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>

> Does it even make sense to have the extra XSERVER video drivers ?

I think it makes sense to make it configurable which drivers get installed. That's not a choice that should be hard-coded in OE-core.

I'm less sure about meta-intel carrying its own copy of xf86-video-mga, and how that is meant to play together with other layers also having a copy.

If the goal is that for Intel hardware the driver gets used that ships with meta-intel and that presumably was tested as part of meta-intel releases, then the recipe might have to be renamed to ensure that the right driver gets picked depending on the MACHINE and thus XSERVER setting. Alternatively one could raise the priority of meta-intel, but then one gets into situations where one cannot use the other driver even if one wants to.

If the driver does not get tested, then perhaps it should get removed entirely from meta-intel?
Comment 4 sweeaun 2017-08-22 01:23:38 UTC
Upgraded the meta-intel recipe to use 1.6.5 xserver video mga. 
http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel/commit/?id=92ce2459bc82b9ecdf9623c3008b7a8f427506dd
Comment 5 Patrick Ohly 2017-08-23 14:09:25 UTC
(In reply to comment #4)
> Upgraded the meta-intel recipe to use 1.6.5 xserver video mga. 
> http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel/commit/
> ?id=92ce2459bc82b9ecdf9623c3008b7a8f427506dd

How does that fix the problem?

Because of layer priorities, meta-oe's copy of xf86-video-mga is still going to get used instead of the recipe in meta-intel.
Comment 6 Saul Wold 2017-09-11 16:51:26 UTC
So the only way to fix this would be to either lower meta-oe's priority or raise meta-intel's, if we move meta-intel to 7 (above meta-oe) what other fallout/issues will be caused by other layers.

Currently the 2 recipes are identical, I know that could change in the future. 

MGA is legacy graphics hardware (circa 2006), so does it continue to make sense to carry it and maybe the AST driver in meta-intel any longer?  Both MGA and AST are used with non-Intel hardware, so having them in meta-intel may not makes sense longer term.
Comment 7 Ross Burton 2017-09-11 17:18:55 UTC
Long term I think meta-oe should have the default/normal/average priority, as it's meant to be a layer of extra recipes.  I suspect it's too late in the cycle to do this in meta-oe though.
Comment 8 Patrick Ohly 2017-09-29 12:56:03 UTC
(In reply to comment #6)
> MGA is legacy graphics hardware (circa 2006), so does it continue to make
> sense to carry it and maybe the AST driver in meta-intel any longer?

Was that a question for me? I don't have an opinion about this.
Comment 9 Saul Wold 2017-10-02 16:27:49 UTC
Given the information I have currently, I will be removing MGA and AST from meta-intel completely and from the XSERVER config early in 2.5
Comment 10 California Sullivan 2018-01-22 22:45:34 UTC
Recipe removed here (thanks Anuj): https://git.yoctoproject.org/cgit/cgit.cgi/meta-intel/commit/?id=7bf03f7612834142355189c46ccdb4b309acc58a