| Summary: | ia32-base.inc file missing from the meta layer build using yocto-bsp | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Yocto Project Subprojects] Kernel | Reporter: | Laurentiu Serban <laurentiu.serban> | ||||
| Component: | kernel-configuration | Assignee: | Tom Zanussi <tom.zanussi> | ||||
| Status: | VERIFIED FIXED | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | Medium+ | CC: | dvhart, mihai.lindner, richard.purdie, song.liu, yp.kernel.watcher, yp.watcher | ||||
| Version: | 1.3 | ||||||
| Target Milestone: | 1.3 M4 | ||||||
| Hardware: | x86 | ||||||
| OS: | Multiple | ||||||
| Whiteboard: | |||||||
| OS type for building Yocto: | --- | Type of Regression: | --- | ||||
| Verified: | Documentation change: | --- | |||||
| Attachments: |
|
||||||
I think we need to move this include file into OE-Core. Tom/Darren are you happy to do this? Tom, let's discuss today, I think we should get ia32-base.inc into oe-core. This is documented in the yocto-bsp help. You need to add meta-intel to your layers.conf for meta-intel bsps, as mentioned there. ia32-base.inc was originally submitted as an oe-core thing but was rejected at that time and that's why it's now in meta-intel. It is meta-intel-specific so that's probably where it should remain. Tom, when you say this was rejected, can you give me a pointer to that please? I'm not remembering that discussion at all, sorry. Hi Richard - you didn't explicitly reject it, but a couple other senior oe-core people did object: http://lists.linuxtogo.org/pipermail/openembedded-core/2011-November/012808.html I'm prepared to explain the rational for this a little more strongly as we're seeing real world issues with this now so I'd not let those comments stop this. Could you send out a patch please? OK, I'll test and submit a patch for this, which I agree would be a welcome change if accepted. Actually, on second thought, moving it doesn't really solve the problem. ia32-base.inc references recipes in meta-intel/common e.g. emgd-driver-bin so the meta-intel layer needs to be added in those cases anyway (and that fact again documented for those cases). An alternative that would solve the problem of not forcing the user to read documentation would be to add meta-intel to the user's bblayers.conf (which would require locating it, backing it up, verifying the path to meta-intel, etc.) Of course that also means meta-intel would need to be cloned on the user's behalf, which is now also expected of the user. Actually, I think this is simply highlighting an area where the tool could use a more general-purpose way of allowing machine-specific hooks. yocto-bsp needs to able to generate bsps that use machine-specific layers in general; this isn't specific to meta-intel and e.g. emgd. Basically, there needs to be a way in the bsp template for a given architecture to specify layer dependencies, and the tool should use those layer dependencies to: - clone the dependent layer - add it to the bblayers.conf So far this has been handled by explicit mention in the documentation, as so far it's only affected meta-intel. I don't know at this point exactly what form the markup in the bsp templates should take, but I do think a new 'enhancement' bug should be opened and this one closed as 'NOTABUG', since it's working as documented. Looking at the references in there, I think it is ok for that to be in OE-Core. The BSP would still have to select that item and provide it. Its not a perfect world... OK, fine by me, I'll submit a patch to move it, along with a couple changes to the yocto-bsp documentation that covers it. Just to make sure it's all clear: - this change will allow most new intel-based bsps to work without the need to include the meta-intel layer. - exceptions would be any new BSP that selects the EMGD X driver - in that case, meta-intel will be needed and the yocto-bsp documentation and BSP Developer's guide will need to be updated to reflect that. - this is a stop-gap measure for now - there are a bunch of intel-specific recipes in meta-intel that it would be useful to allow the selection of in yocto-bsp; future versions would likely want to make use of them, and the same would in general be true at some point for other architectures - something like the ideas in the comments above should be considered for the long term... So this solution looks fine to me. The only thing I would recommend is moving the emgd line into an emgd.inc file in meta-intel which meta-intel machines can include as needed. I don't see any need for this to be tied ti ia32-base.inc. Patches submitted to oe-core/meta-intel Fixed in poky/master: f6b2e90fdae49e79c246eda82ff59bfcb0d9357b This issue is still living in 1.3_beta branch of poky. Tried it with master of meta-intel. verified in 1.3_M4 branch |
Created attachment 720 [details] meta folder commit id: 8b8748c8f963900b83dc0fdd7757556f917fe4fd Steps to reproduce: 1. create a meta-bsp layer using yocto-bsp tool (I choose x86_64 and tried several machine types ) 2. include the layer in the bblayer.conf, add the machine to the local.conf 3.build a core-image-sato image The error below is shown: lserban@computer2:~/work/master/build$ bitbake core-image-sato DEBUG: Removed the following variables from the environment: PSEUDO_BINDIR, PSEUDO_LOCALSTATEDIR, LESSOPEN, SSH_CLIENT, PSEUDO_LIBDIR, LD_LIBRARY_PATH, LANG, SHLVL, BBFETCH2, LD_PRELOAD, socks_proxy, _, PSEUDO_OPTS, SSH_CONNECTION, LESSCLOSE, BUILDDIR, SSH_TTY, OLDPWD, PSEUDO_PREFIX, MAIL, LS_COLORS DEBUG: UI 'knotty' does not require extra cache! DEBUG: Found bblayers.conf (/home/lserban/work/master/build/conf/bblayers.conf) DEBUG: LOAD /home/lserban/work/master/build/conf/bblayers.conf DEBUG: Adding layer /home/lserban/work/master/meta DEBUG: LOAD /home/lserban/work/master/meta/conf/layer.conf DEBUG: Adding layer /home/lserban/work/master/meta-yocto DEBUG: LOAD /home/lserban/work/master/meta-yocto/conf/layer.conf DEBUG: Adding layer /home/lserban/work/master/meta-myintelbsp DEBUG: LOAD /home/lserban/work/master/meta-myintelbsp/conf/layer.conf DEBUG: LOAD /home/lserban/work/master/meta/conf/bitbake.conf DEBUG: CONF conf/bitbake.conf:672: including conf/abi_version.conf DEBUG: LOAD /home/lserban/work/master/meta/conf/abi_version.conf DEBUG: CONF conf/bitbake.conf:673: including conf/site.conf DEBUG: CONF file 'conf/site.conf' not found DEBUG: CONF conf/bitbake.conf:674: including conf/auto.conf DEBUG: CONF file 'conf/auto.conf' not found DEBUG: CONF conf/bitbake.conf:675: including conf/local.conf DEBUG: LOAD /home/lserban/work/master/build/conf/local.conf DEBUG: CONF conf/bitbake.conf:676: including conf/build/x86_64-linux.conf DEBUG: CONF file 'conf/build/x86_64-linux.conf' not found DEBUG: CONF conf/bitbake.conf:677: including conf/target/INVALID-oe-linux.conf DEBUG: CONF file 'conf/target/INVALID-oe-linux.conf' not found DEBUG: CONF conf/bitbake.conf:678: including conf/machine/myintelbsp.conf DEBUG: LOAD /home/lserban/work/master/meta-myintelbsp/conf/machine/myintelbsp.conf DEBUG: CONF /home/lserban/work/master/meta-myintelbsp/conf/machine/myintelbsp.conf:9: including conf/machine/include/tune-x86_64.inc DEBUG: BB /home/lserban/work/master/meta/conf/machine/include/tune-x86_64.inc: handle(data, include) DEBUG: LOAD /home/lserban/work/master/meta/conf/machine/include/tune-x86_64.inc DEBUG: CONF /home/lserban/work/master/meta/conf/machine/include/tune-x86_64.inc:3: including conf/machine/include/ia32/arch-ia32.inc DEBUG: BB /home/lserban/work/master/meta/conf/machine/include/ia32/arch-ia32.inc: handle(data, include) DEBUG: LOAD /home/lserban/work/master/meta/conf/machine/include/ia32/arch-ia32.inc DEBUG: CONF /home/lserban/work/master/meta-myintelbsp/conf/machine/myintelbsp.conf:10: including conf/machine/include/ia32-base.inc DEBUG: BB conf/machine/include/ia32-base.inc: handle(data, include) ERROR: Unable to parse conf/bitbake.conf: ParseError at /home/lserban/work/master/meta-myintelbsp/conf/machine/myintelbsp.conf:10: Could not include required file conf/machine/include/ia32-base.inc lserban@computer2:~/work/master/build$ I added the folder created by the tool