[yocto] Kernel configuration problem/confusion

Bruce Ashfield bruce.ashfield at windriver.com
Sat Dec 23 19:29:37 PST 2017



On 12/22/2017 6:17 PM, Greg Wilson-Lindberg wrote:
> Hi Bruce,
> First, thanks for the unbelievably quick response.
> 
> I searched the Yocto sources and didn't find anything that was trying to 
> manipulate either of the variables except my .cfg.
> 
> The memuconfig search for MAX9768 results in:
> Symbol: SND_SOC_MAX9768 [=n]
>      Type  : tristate
>        Defined at sound/soc/codecs/Kconfig:917
>        Depends on: SOUND [=y] && !M68K && !UML && SND [=m] && SND_SOC [=m]
>        Selected by: SND_SOC_ALL_CODECS [=n] && SOUND [=y] && !M68K && 
> !UML && SND [=m] && SND_SOC [=m] && COMPILE_TEST [=n] && I2C [=y]
> To my (untrained) eye it seems that I need SND_SOC_ALL_CODECS 
> & COMPILE_TEST. I tried setting them but I get a similar error 
> for COMPILE_TEST. A search for it yields:
>   Symbol: COMPILE_TEST [=n]
>      Type  : boolean
>      Prompt: Compile also drivers which will not load
>        Location:
>      (1) -> General setup
>        Defined at init/Kconfig:56
> Which doesn't seem to suggest that there should be any problems setting it.


True, but since SND_SOC_MAX9768 doesn't have any help text (aka
a prompt in Kconfig speak) then it isn't something that you can
actually reach by menuconfig and by extension .. it must be selected
by other code. So you are on the right track. Either those symbols
are also missing dependencies, or MAX9768 itself is missing a
dependency.

> 
> The search for MAX1363 yields:
>   Symbol: MAX1363 [=n]
>      Type  : tristate
>       Prompt: Maxim max1363 ADC driver
>        Location:
>          -> Device Drivers
>            -> Industrial I/O support (IIO [=m])
>      (1)     -> Analog to digital converters
>        Defined at drivers/iio/adc/Kconfig:218
>        Depends on: IIO [=m] && I2C [=y]
>        Selects: IIO_BUFFER [=y] && IIO_TRIGGERED_BUFFER [=n]
> Which doesn't seem to mereveal any reason that I shouldn't be able to 
> set it.

At a glance, I'm also not seeing the reason. Did you try forcing
IIO=y and seeing if there's a difference ? =m should satisfy that
Kconfig dependency, but it is worth checking.

Is this a mainline kernel ? or something else that I could build ?
Maybe with a quick test here, it would be more obvious.

Bruce

> 
> Regards,
> Greg
> ------------------------------------------------------------------------
> *From:* Bruce Ashfield <bruce.ashfield at windriver.com>
> *Sent:* Friday, December 22, 2017 12:27:22 PM
> *To:* Greg Wilson-Lindberg; yocto at yoctoproject.org
> *Subject:* Re: [yocto] Kernel configuration problem/confusion
> 
> 
> On 12/22/2017 3:51 PM, Greg Wilson-Lindberg wrote:
>> I'm trying to add some kernel configuration to a Raspberry pi3 yocto 
>> build.  I've got the .cfg fragment being read in, but I'm getting 
>> warnings that indicate that they are not making the desired changes.
>> 
>> 
>> The first one is CONFIG_SND_SOC_MAX9768. This is a sound codec and the 
>> Kconfig file has it in a long list of select's. the one for the MAX9768 is:
>> 
>>      select CONFIG_SND_SOC_MAX9768 if I2C
>> 
>> I2C is set, but CONFIG_SND_SOC_MAX9768 ends up undefined. the warning 
>> I'm getting is:
>> 
>> ---------- CONFIG_SND_SOC_MAX9768 -----------------
>> Config: CONFIG_SND_SOC_MAX9768
>> From: 
>> /home/gwilson/Qt-5.9/Yocto-build-RPi3/build-raspberrypi3/tmp/work-shared/raspberrypi3/kernel-source/.kernel-meta/configs/Scribe.cfg
>> Requested value:  CONFIG_SND_SOC_MAX9768=y
>> Actual value:
>> 
>> Config 'SND_SOC_MAX9768' has the following conditionals:
>> Dependency values are:
>> 
>> SND_SOC_MAX9768 ends up not being selected even though I try to set it 
>> ti 'y'
>> 
>> 
>> The second one is CONFIG_MAX1363, this is an ADC that I'm trying to set, 
>> the warning is:
>> 
>> ---------- CONFIG_MAX1363 -----------------
>> Config: CONFIG_MAX1363
>> From: 
>> /home/gwilson/Qt-5.9/Yocto-build-RPi3/build-raspberrypi3/tmp/work-shared/raspberrypi3/kernel-source/.kernel-meta/configs/Scribe.cfg
>> Requested value:  CONFIG_MAX1363=y
>> Actual value:     # CONFIG_MAX1363 is not set
>> 
>> Config 'MAX1363' has the following conditionals:
>>    I2C (value: "y")
>> Dependency values are:
>>    I2C [y]
>> 
>> It ends up being not set. In both cases the value that I'm trying to set 
>> is ignored. Any insight would be greatly appreciated.
> 
> The python library that tries to detangle the Kconfig dependencies
> isn't perfect (but I do have an update for it pending), so you might
> not be getting the entire story in that information dumb.
> 
> Two things to check:
> 
>    - there are no other fragments that are disabling the same option
>    - use menuconfig in the kernel to search the option and see what it
>      reports for the dependencies.
> 
> There's some constraint or overriding command that is not allowing the
> option into the final config, we just need to track it down.
> 
> Bruce
> 
>> 
>> 
>> Regards,
>> 
>> Greg
>> 
>> 
>> 



More information about the yocto mailing list