Bug 1814

Summary: Nothing RPROVIDES 'modutils-depmod'
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Marc Ferland <marc.ferland>
Component: kernelAssignee: Saul Wold <sgw>
Status: RESOLVED NOTABUG QA Contact:
Severity: normal    
Priority: Medium CC: bruce.ashfield, dvhart, richard.purdie, sgw, tom.zanussi
Version: 1.1   
Target Milestone: 1.2 M2   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---
Attachments:
Description Flags
error log
none
local ocnfiguration file used to build the image
none
bblayer file none

Description Marc Ferland 2011-12-08 13:21:06 UTC
Created attachment 289 [details]
error log

Trying to add the bluetooth machine feature with:

MACHINE_FEATURES_crownbay += "bluetooth"

inside local.conf fails. See the attached log file.

I'm currently using the edison branch for my development.
Comment 1 Richard Purdie 2011-12-09 08:25:30 UTC
MACHINE_FEATURES_crownbay += "bluetooth"

won't do what you expect, it appends "bluetooth" to any existing value the MACHINE_FEATURES_crownbay variable already has. That variable then replaces MACHINE_FEATURES so you end up with:

MACHINE_FEATURES = "bluetooth"

which then causes the failure as something like linux26 won't be in there.

What you really want is:

MACHINE_FEATURES_append_crownbay = " bluetooth"
Comment 2 Darren Hart 2011-12-12 17:24:52 UTC
Marc can you try Richard's suggestion in Comment #2 and let us know if this works as expected for you?
Comment 3 Marc Ferland 2011-12-13 10:42:59 UTC
I tried Richard suggestion. The build completed successfully, but the resulting image did not contain bluetooth support.

'cat .config | grep CONFIG_BT' results in:
# CONFIG_BT is not set
Comment 4 Marc Ferland 2011-12-13 10:44:30 UTC
Created attachment 297 [details]
local ocnfiguration file used to build the image
Comment 5 Marc Ferland 2011-12-13 10:45:33 UTC
Created attachment 298 [details]
bblayer file
Comment 6 Bruce Ashfield 2011-12-13 10:51:47 UTC
In order for MACHINE_FEATURES to translate into the kernel, something, 
somewhere needs to link that feature to the kernel option.

Traditionally this was done by directly mangling the .config, but with the tooling
around linux-yocto, we don't need to commit any crimes.

option 1) An in-kernel tree feature fragment could be created and then
conditionally enabled when the BT machine feature is specified by udpating
something like:
  
       KERNEL_FEATURES_append_qemux86-64=" cfg/sound"

option 2) Create an out of tree fragment in your layer and conditionally
add it to the SRC_URI when BT is enabled. This would be two things, 
a .scc file and a .cfg file both specified on the SRC_URI just as anything
else would be (pseudo code below):

    SRC_URI += file://bt.scc
                        file://bt.cfg

And in bt.scc:

     kconf non-hardware bt.cfg

And in bt.cfg:

    CONFIG_BT
Comment 7 Darren Hart 2011-12-13 10:57:37 UTC
Just checked and CONFIG_BT is indeed off in the base config and not enabled in any of the other configs. I suspect we should add cfg/bluetooth.(scc,cfg) and build support as modules for standard. This will work with the current MACHINE_FEATURES which adds the various kernel-module-* packages.
Comment 8 Marc Ferland 2011-12-13 11:12:08 UTC
(In reply to comment #7)
> Just checked and CONFIG_BT is indeed off in the base config and not enabled in
> any of the other configs. I suspect we should add cfg/bluetooth.(scc,cfg) and
> build support as modules for standard. This will work with the current
> MACHINE_FEATURES which adds the various kernel-module-* packages.

That would be nice! In the mean time I'll be using the solution proposed by Bruce (in-tree config fragment). Thanks for the support on this one!
Comment 9 Darren Hart 2011-12-13 11:31:41 UTC
This turns out to be "NOT A BUG" as it was an error in the MACHINE_FEATURES assignment that resulted in the dependency failure. I will open a feature request to add bluetooth modules to standard.