[yocto] Kernel configuration problem/confusion

Bruce Ashfield bruce.ashfield at windriver.com
Wed Jan 3 18:30:52 PST 2018


On 2017-12-27 12:11 PM, Greg Wilson-Lindberg wrote:
> Hi Bruce,
> 
> First, the kernel is 4.4.50, the recipe is linux-raspberrypi_4.4.bb in 
> meta-raspberrypi. My image recipe is based on one from Qt, but it is 
> using the kernel recipe in meta-raspberry.
> 
> 
> I changed my .bbappend to:
> 
> # Scribe additions to kernel configuration
> 
> # Enable MAX9768
> #CONFIG_SOC_ALL_CODECS=m
> #CONFIG_COMPILE_TEST=y
> #CONFIG_SND_SOC_MAX9768=m
> 
> # Enable MAX11606
> IIO=y
> CONFIG_MAX1363=m
> 
> and I get:
> 
> WARNING: linux-raspberrypi-1_4.4.50+gitAUTOINC+04c8e47067-r0 
> do_kernel_configcheck: [kernel config]: specified values did not make it 
> into the kernel's final configuration:
> 
> ---------- 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=m
> Actual value:     # CONFIG_MAX1363 is not set
> 
> Config 'MAX1363' has the following conditionals:
>    I2C (value: "y")
> Dependency values are:
>    I2C [y]
> 
> It's acting like there is some hidden dependency that it is not telling 
> us about. I tried running menuconfig and that allows me so set it 
> without any problems.

Sorry for the slow reply. I've been out of the office (and will be
until the 8th).

Are you still looking into this ? Rather than me make mistakes in
the exact configuration, can you send me (offlist, or here, doesn't
really matter) your bblayers to make sure I'm building exactly the
same thing ?

Bruce

> 
> Regards,
> Greg
> 
> 
> ------------------------------------------------------------------------
> *From:* Bruce Ashfield <bruce.ashfield at windriver.com>
> *Sent:* Saturday, December 23, 2017 7:29 PM
> *To:* Greg Wilson-Lindberg; yocto at yoctoproject.org
> *Subject:* Re: [yocto] Kernel configuration problem/confusion
> 
> 
> 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