[poky] MACHINE_EXTRA_RRECOMMENDS not working?
Darren Hart
dvhart at linux.intel.com
Fri Mar 11 21:06:29 PST 2011
On 03/11/2011 08:40 PM, Gary Thomas wrote:
> On 03/11/2011 09:31 PM, Darren Hart wrote:
>> I'm working to get a certain package installed for a specific machine.
>> In particular, I wrote a simple init.d script called n450-audio which
>> sets the mixer for the n450 dev board to unmute the FRONT channel and
>> set the volume to 70% or so - as it is muted if left untouched. For now,
>> I just want to make this board work, so I want to make this package get
>> installed if it's dependencies are met (if amixer is installed).
>>
>> As I understand it, the best way to do this is with something like the
>> following in the machine/n450.conf file:
>>
>> MACHINE_EXTRA_RRECOMMENDS += " n450-audio "
>>
>> And that recipe in turn defines:
>>
>> RDEPENDS = "alsa-utils-amixer"
>>
>> I then:
>>
>> $ bitbake -c cleanall task-base poky-image-sato-live n450-audio
>>
>> followed by:
>>
>> $ bitbake poky-image-sato-live
>>
>> The n450-audio recipe is built, but it does not appear in the generated
>> image (nor in the ext3 image).
>>
>> I checked the dependency chain and task-base does depend on n450-audio:
>>
>> $ bitbake -g -u depexp poky-image-sato-live
>>
>>
>> I then tried using the following variables in place of
>> MACHINE_EXTRA_RRECOMMENDS with the same result:
>>
>> MACHINE_EXTRA_RDEPENDS
>> MACHINE_ESSENTIAL_RRECOMMENDS
>> MACHINE_ESSENTIAL_RDEPENDS
>>
>> Finally, I added the following to my local.conf and the image built as
>> expected:
>>
>> POKY_EXTRA_INSTALL = " n450-audio "
>>
>> Am I completely off in the weeds here? If this isn't what these
>> directives are for - what are they for?
>>
>> I took a look at what they are used for elsewhere and found:
>>
>> $ cat ~/.bashrc | grep bb
>> alias bb='bitbake'
>> alias bbdeps='bitbake -g -u depexp'
>> dvhart at rage:poky.git$ git grep MACHINE_EXTRA_RRECOMMENDS
>> documentation/poky-ref-manual/ref-variables.xml:<glossentry
>> id='var-MACHINE_EXTRA_RRECOMMENDS'><glossterm>MACHINE_
>> documentation/poky-ref-manual/ref-varlocality.xml:<para><glossterm
>> linkend='var-MACHINE_EXTRA_RRECOMMENDS'>
>> meta/conf/bitbake.conf:MACHINE_EXTRA_RRECOMMENDS ?= ""
>> meta/conf/machine/atom-pc.conf:MACHINE_EXTRA_RRECOMMENDS =
>> "kernel-modules eee-acpi-scripts"
>> meta/conf/machine/beagleboard.conf:MACHINE_EXTRA_RRECOMMENDS = "
>> kernel-modules"
>> meta/conf/machine/qemumips.conf:MACHINE_EXTRA_RRECOMMENDS = "
>> kernel-modules"
>> meta/conf/machine/routerstationpro.conf:MACHINE_EXTRA_RRECOMMENDS = "
>> kernel-modules"
>> meta/recipes-core/tasks/task-base.bb:RRECOMMENDS_task-machine-base =
>> "${MACHINE_EXTRA_RRECOMMENDS}"
>>
>> Only two other recipes are referenced with these variables:
>> kernel-modules and eee-acpi-scripts. I had an atom-pc build so I mounted
>> the rootfs and dug around - not a trace of the eee-acpi-scripts to found
>> anywhere. I checked for modules under
>> /lib/modules/2.6.34.7-yocto-standard/ and found several *.*map files,
>> but nothing else (certainly no *.ko files). So this mechanism certainly
>> doesn't do what I thought it did.
>>
>> Is it supposed to? If not, what does it do. It does cause the package
>> listed to be built, perhaps that is it's only purpose? The user can
>> install the package manually if they want it?
>>
>> And, more to the point, if this isn't the right mechanism to cause a
>> package to be added (if deps are met) to any image for a specific
>> machine, what is?
>>
>> If you want to see the branch in question, it's here:
>> http://git.pokylinux.org/cgit/cgit.cgi/meta-intel/log/?h=dvhart/n450-audio
>>
>>
>> (Yes, the init script is terrible - working on that.)
>>
>> Thanks,
>
> Did you rebuild task-machine-base?
I did not - but the dependency graph showed task-base dependent on it.
$ bitbake -c cleanall task-machine-base task-base n450-audio
poky-image-sato-live
The output didn't make any reference to "task-machine-base".
$ bitbake poky-image-sato-live
mount and check the fs.... huh... it's there. Interesting...
I'm going to try a clean build now and ensure this works as intended,
and not just some hinky side-effect of the POKY_EXTRA_INSTALL I just
barely commented out of local.conf. Thanks for the tip Gary!
This doesn't adress the observations regarding kernel-modules and
eee-acpi-scripts though.
--
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
More information about the poky
mailing list