[OE-core] [PATCH 7/8] kern-tools: flexibility and usability enhancements
Bruce Ashfield
bruce.ashfield at windriver.com
Wed Nov 14 17:32:13 UTC 2012
On 12-11-14 12:09 PM, Darren Hart wrote:
>
>
> On 11/14/2012 08:58 AM, Bruce Ashfield wrote:
>> On 12-11-14 11:33 AM, Darren Hart wrote:
>>>
>>>
>>> On 11/14/2012 07:03 AM, Bruce Ashfield wrote:
>>>> Updating the SRCREV to import the following changes.
>>>>
>>>> [updateme: find the board description with the highest score]
>>>>
>>>> This removes the requirement that a custom linux-yocto .scc file have
>>>> define KTYPE <foo>, where <foo> is typically "standard". The tools can
>>>> now match on a .scc file that only matches the board, but will still
>>>> chose one that matches the board and kernel type, if available.
>>>
>>> Should the documentation then state that KTYPE is only necessary to
>>> define if it is not "standard" ? Does this also apply to
>>
>> Nope. That isn't the intention. If you are using kernel types at all,
>> you should define one. Whether it be standard or not.
>>
>>> linux-yocto-custom recipes/kernels where the repository could very well
>>> not define any ktype at all?
>>
>> Same as the above. If you are create kernel .scc files to work with
>> linux-yocto custom, you are now free to use kernel types, or not, your
>> choice.
>
> And what happens if they don't? It will just match on KMACHINE? Making
> it so you can define one defconfig per machine and be done with it?
> (if that's what you really wanted to do).
Correct. It matches the .scc file that scores the best. If you don't
have a kernel type and a .scc file matches the KMACHINE that's the
one it'll use. If you want more separation, then you can start using
KTYPE without modifying the existing .scc files, since one with
a matching KMACHINE/KTYPE will score higher than the KMACHINE only
.scc file.
>
>
>>
>>>
>>>>
>>>> [updateme: allow for tabs or spaces in defines]
>>>>
>>>> define KMACHINE<tab>$MACHINE was missed by the regex.
>>>>
>>>> [scc/kgit-meta: detect and avoid duplicating patching]
>>>>
>>>> To allow feature description to be included multiple times, they were
>>>> previously split into -enable and 'patch' descriptions. With this change
>>>> the patches will be detected as already included, and skipped
>>>> automatically. Removing the need to do this split. It also cleans up
>>>> the ability to warn about multiple includes.
>>>>
>>>> [kconf_check: add "verify" configuration fragment type]
>>>>
>>>> This adds the ability for a BSP to have a kernel configuration
>>>> fragment that lists options that must be present. If they are not
>>>> present it is a hard error. "required" is a similar fragment, but
>>>> it adds them to the build, and audits them at the end, but does
>>>> not abort the build if they are present. This is a minor distinction,
>>>> but one that is useful when creating flexible, shared kernel config
>>>> structures.
>>>
>>>
>>> IIRC we discussed this verify thing at ELCE and how it broke some of the
>>> semantics.... trying to remember now, let's see:
>>>
>>> kconf hardware foo.cfg
>>> kconf verify hardware bar.cfg
>>> kconf non-hardware foobar.cfg
>>> kconf verify non-hardware barfoo.cfg
>>>
>>> Is that how this is to be used? The configuration space just doubled
>>> from a documentation point of view, and that is without even considering
>>> the "required" keyword you described.
>>
>> I'll continue to work on this for 1.4, but I didn't want to pend the
>> series on anything that we discussed in Barcelona .. these have been
>> around for some time and I wanted to push them out before doing any 1.4
>> tweaks.
>>
>> But to answer your question. You could have multiple 'verify' fragments,
>> but I'd only suggest one. It's a final check that critical options are
>> in the final .config and will throw a hard error. required is an
>> alias for 'hardware' and still only throws a warning if they are missing.
>>
>> There few current users of 'verify', so I can still follow up with
>> syntax tweaks that we discussed (do you have notes on that ?). I recall
>> simply making 'verify' a modifier of the existing kconf types would be
>> better than the current new type. I'll keep all the variants around, since
>> the plumbing is the same and that will again give time for migration.
>>
>> We could argue that required should also be a hard error, but we can't
>> do that quite yet, since there are some existing use cases and trees
>> that will start to error out, and I'd like to migrate them first.
>
>
> I don't seem to have any notes on this for some reason. I'm wondering if
> instead of modifiers, these should just be kconf types:
>
> non-hardware
> hardware
> required
> verify
>
> As you said, required is an alias to hardware, so it isn't really a
> modifier. And verify is less of a modifier and more of a verification
> step, so it doesn't matter if it's hardware or non-hardware.
>
> This would reduce the config space from 6 to 4, not a huge savings,
> but it would be much simpler to document.
Agreed, I'll put this into bugzilla and document what we'll do for
1.4 as the final syntax.
>
> I'm going to omit these from the docs for now though.
>
Sounds good. We'll nail them down first and then document it :)
Cheers,
Bruce
>>
>>>
>>> Can you use required with verify? Can you use both of them with both
>>> hardware and non-hardware?
>>
>> Any combination at all should work.
>>
>> Cheers,
>>
>> Bruce
>>
>>>
>>>
>>>>
>>>> [kconf_check: improve kernel audit report formatting]
>>>> [kconf_check: perform validity checks on non-hardware options]
>>>> [kconf_check: cleanups and verbose flag]
>>>>
>>>> The existing output was verbose and not always useful to the reader.
>>>> This change makes the output more compact, audits non-hardware options
>>>> and gives information
>>>>
>>>> [invalid (54)]: meta/cfg/preempt-rt/common-pc/invalid.cfg
>>>> This BSP sets config options that are not offered anywhere within this kernel
>>>>
>>>> Signed-off-by: Bruce Ashfield <bruce.ashfield at windriver.com>
>>>> ---
>>>> meta/recipes-kernel/kern-tools/kern-tools-native_git.bb | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb b/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
>>>> index ce94885..f2cd39f 100644
>>>> --- a/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
>>>> +++ b/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
>>>> @@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://git/tools/kgit;beginline=5;endline=9;md5=d8d1d729a70c
>>>>
>>>> DEPENDS = "git-native guilt-native"
>>>>
>>>> -SRCREV = "a802ee9c8d9334c0f7932dfd40d45599addb7c90"
>>>> +SRCREV = "6f68c9473b43c3e39755a72aef8733cbd0bf1a59"
>>>> PR = "r12"
>>>> PV = "0.1+git${SRCPV}"
>>>>
>>>>
>>>
>>
>
More information about the Openembedded-core
mailing list