<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>15228</bug_id>
          
          <creation_ts>2023-10-09 13:18:16 +0000</creation_ts>
          <short_desc>Build issue with poky-tiny  and genericx86-64 set</short_desc>
          <delta_ts>2023-10-30 11:44:04 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>BitBake</product>
          <component>bitbake</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>x86_64</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>NOTABUG</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>5.0</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="JohnPG">johnpaulgoogl</reporter>
          <assigned_to name="Bruce Ashfield">bruce.ashfield</assigned_to>
          <cc>poky.bs.watcher</cc>
    
    <cc>poky.watcher</cc>
    
    <cc>randy.macleod</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>Don&apos;t know</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>96666</commentid>
    <comment_count>0</comment_count>
    <who name="JohnPG">johnpaulgoogl</who>
    <bug_when>2023-10-09 13:18:16 +0000</bug_when>
    <thetext>Facing build issue with combination &apos;poky-tiny&apos; and &apos;genericx86-64&apos; which looks related to kernel configuration. 
Since am new to yocto build system, would like to know this mention scenario validity and inputs / suggestions to make this build happen.

Requirements: 
        Minimal build which to support laptop type x86-64.
        Build sizes preferable less than 10Mb which together bzImage+rootfs.

For this, changes made to local.conf at dunfell branch:
        MACHINE ?= &quot;genericx86-64&quot;
        DISTRO ?= &quot;poky-tiny&quot;
        PACKAGE_CLASSES ?= &quot;package_ipk&quot;

Then, build failed with mention error logs:

$ bitbake core-image-minimal
Loading cache: 100% |                                                                                                                                                                      | ETA:  --:--:--
Loaded 0 entries from dependency cache.
Parsing recipes: 100% |#####################################################################################################################################################################| Time: 0:00:13
Parsing of 914 .bb files complete (0 cached, 914 parsed). 1849 targets, 311 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
ERROR: Nothing PROVIDES &apos;virtual/kernel&apos;
linux-yocto-tiny PROVIDES virtual/kernel but was skipped: incompatible with machine genericx86-64 (not in COMPATIBLE_MACHINE)
linux-yocto-tiny PROVIDES virtual/kernel but was skipped: incompatible with machine genericx86-64 (not in COMPATIBLE_MACHINE)
linux-yocto-tiny PROVIDES virtual/kernel but was skipped: incompatible with machine genericx86-64 (not in COMPATIBLE_MACHINE)
linux-yocto-upstream PROVIDES virtual/kernel but was skipped: Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-upstream to enable it
linux-yocto PROVIDES virtual/kernel but was skipped: Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto to enable it
linux-yocto-rt PROVIDES virtual/kernel but was skipped: incompatible with machine genericx86-64 (not in COMPATIBLE_MACHINE)
linux-yocto-rt PROVIDES virtual/kernel but was skipped: incompatible with machine genericx86-64 (not in COMPATIBLE_MACHINE)
linux-yocto-dev PROVIDES virtual/kernel but was skipped: Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-dev to enable it
linux-yocto-rt PROVIDES virtual/kernel but was skipped: incompatible with machine genericx86-64 (not in COMPATIBLE_MACHINE)
linux-yocto-upstream PROVIDES virtual/kernel but was skipped: incompatible with machine genericx86-64 (not in COMPATIBLE_MACHINE)
linux-yocto PROVIDES virtual/kernel but was skipped: incompatible with machine genericx86-64 (not in COMPATIBLE_MACHINE)
linux-dummy PROVIDES virtual/kernel but was skipped: PREFERRED_PROVIDER_virtual/kernel set to linux-yocto-tiny, not linux-dummy
linux-yocto-upstream PROVIDES virtual/kernel but was skipped: incompatible with machine genericx86-64 (not in COMPATIBLE_MACHINE)
linux-yocto PROVIDES virtual/kernel but was skipped: incompatible with machine genericx86-64 (not in COMPATIBLE_MACHINE)
ERROR: Required build target &apos;core-image-minimal&apos; has no buildable providers.
Missing or unbuildable dependency chain was: [&apos;core-image-minimal&apos;, &apos;virtual/kernel&apos;]

Summary: There were 2 ERROR messages, returning a non-zero exit code.
$

Thanks in advance!

BR,
John</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96702</commentid>
    <comment_count>1</comment_count>
    <who name="Bruce Ashfield">bruce.ashfield</who>
    <bug_when>2023-10-13 12:35:48 +0000</bug_when>
    <thetext>Hi John,

What you are running into is the standard bitbake compatibility checking for recipes (the kernel and this case) and machines (MACHINE in OE terms). Similar checks exist for recipes and architectures (i.e. mips or ARM may not be compatible with an application, etc).

The details around the variables are here: 
https://docs.yoctoproject.org/ref-manual/variables.html?highlight=compatible_machine#term-COMPATIBLE_MACHINE

And for BSPs, here: https://docs.yoctoproject.org/bsp-guide/bsp.html?highlight=compatible_machine

To answer the specific question, we only test and support -tiny against specific machines. You can see them in the linux-yocto-tiny* recipes in oe-core.

It is currently this:

COMPATIBLE_MACHINE = &quot;^(qemux86|qemux86-64|qemuarm64|qemuarm|qemuarmv5)$&quot;

-tiny for the kernel is largely a set of configuration changes (it used to carry patches as well), so we do need to validate a board. When the -tiny kernel is configured ALL options are disabled, and then only what is needed is enabled. The standard and preempt-rt kernel types allow Kconfig defaults and then customize from there.

It is that all off starting point that requires the effort to support a machine as we can&apos;t rely on defaults to understand what is really needed for a board.

Adding genericx86-64 is possible, since it is close to the qemux86-64, and it is something you could do in a layer for testing.

But I would suggest looking at the size of things using poky-tiny and qemux86-64 as a start, and comparing it to the default &apos;poky&apos; distro with the same machine. The saving may not be significant enough to warrant the effort at adding the support for -tiny.

If you do want to add the support, then the documentation / guides and some tutorials go over the steps to accomplish that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97038</commentid>
    <comment_count>2</comment_count>
    <who name="JohnPG">johnpaulgoogl</who>
    <bug_when>2023-10-30 11:44:04 +0000</bug_when>
    <thetext>Hi Bruce,
Thanks for the update and explanation with reference links, appreciated!

Will try with qemu_x86_64 for compare fallowed by required updates per setup.

BR, John</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>