Hi,

On Tue, Feb 18, 2025 at 09:43:56AM -0500, Bruce Ashfield wrote:
> On Tue, Feb 18, 2025 at 8:37 AM Mikko Rapeli <[email protected]>
> wrote:
> 
> > On Fri, Dec 20, 2024 at 05:22:50PM -0500, Bruce Ashfield wrote:
> > > On Fri, Dec 20, 2024 at 8:31 AM Mikko Rapeli via lists.yoctoproject.org
> > > <[email protected]> wrote:
> > >
> > > > On Fri, Dec 20, 2024 at 05:22:21AM -0800, Anton Antonov via
> > > > lists.yoctoproject.org wrote:
> > > > > On Fri, Dec 20, 2024 at 04:06 AM, Mikko Rapeli wrote:
> > > > >
> > > > > >
> > > > > > I don't think this feature should be genericarm64 specific. I
> > think it
> > > > > > should be defined similar to x86 one:
> > > > > >
> > > >
> > https://git.yoctoproject.org/yocto-kernel-cache/tree/features/intel-persistent-memory/intel-x86-64-pmem.cfg
> > > > > >
> > > > > >
> > > > > > and added to genericarm64 machine (and any other arm64 machine when
> > > > > > required) via MACHINE_FEATURES in the machine definition:
> > > > > >
> > > >
> > https://github.com/yoctoproject/poky/blob/master/meta-yocto-bsp/conf/machine/genericarm64.conf#L11
> > > > > > Ok, sounds sensible.
> > > > > > Can someone help me how to apply changes to kernel-meta git tree
> > via
> > > > > > patches in SRC_URI?
> > > > > > This way I can test the real thing and enable this via
> > > > MACHINE_FEATURES.
> > > > >
> > > > > AFAIR, when I tested my changes in yocto-kernel-cache  I used the
> > > > following approach:
> > > > > 1. The local  yocto-kernel-cache repo with my changes in "arm"
> > branch in
> > > > /path/to/yocto-kernel-cache
> > > > > 2. In my local.conf I had:
> > > > >
> > > > > SRC_URI:pn-linux-yocto = " git://
> > > >
> > git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH};protocol=https
> > <http://git.yoctoproject.org/linux-yocto.git;name=machine;branch=$%7BKBRANCH%7D;protocol=https>
> > > > <
> > http://git.yoctoproject.org/linux-yocto.git;name=machine;branch=$%7BKBRANCH%7D;protocol=https
> > >
> > > > ( git://
> > > >
> > git.yoctoproject.org/linux-yocto.git;name=machine;branch=$%7BKBRANCH%7D;protocol=https
> > > > ) \
> > > >
> > git:///path/to/yocto-kernel-cache;type=kmeta;name=meta;branch=arm;destsuffix=${KMETA};protocol=file"
> > > > SRCREV_meta:pn-linux-yocto = "${AUTOREV}"
> > > > >
> > > > > You can also create a inux-yocto_%.bbappend file in meta-yocto-bsp
> > with
> > > > the definitions above instead of using local.conf
> > > >
> > > > Yes this is the alternative. I was hoping to avoid this for testing
> > > > simple patches. I will come back to this next year due to holidays.
> > > >
> > >
> > > I have this in the kernel-yocto bbclass:
> > >
> > >          »       # was anyone trying to patch the kernel meta data ?, we
> > > need to do
> > >
> > >
> > > »       »       # this here, since the scc commands migrate the .cfg
> > > fragments to the
> > >
> > >
> > > »       »       # kernel source tree, where they'll be used later.
> > >
> > >
> > >
> > > »       »       check_git_config
> > >
> > >
> > >
> > > »       »       patches="${@" ".join(find_patches(d,'kernel-meta'))}"
> > >
> > >
> > >
> > > »
> > >
> > > So anything on the src_uri with a subdir of kernel-meta should be picked
> > up
> > > and detected as a patch to the meta-data.
> > >
> > > This is VERY lightly used, I'm not 100% sure that there aren't bugs
> > lurking.
> > >
> > > Alternatively, I suggest just adding a kernel-meta directory into your
> > layer
> > > and adding it to the SRC_URI, see the patch from today tweaking
> > > it to allow simpler processing of it. With a directory like that you can
> > > extend/clobber most fragments from the core kernel-cache repository.
> >
> > I figured out that both "subdir" and "patchdir" flags in SRC_URI patches
> > are needed
> > to apply a patch to kernel-meta. Without these the patch file is silently
> > ignored.
> > It is quite hard to debug this in the do_patch task implementation. Not
> > many
> > useful traces in logs etc.
> >
> 
> My pet peeve about hard to debug code .. and created by myself!
> 
> I'll have a look at this today and see if I can document it better, and
> split it out slightly and add some tracing.

I think the kernel classes are easy to debug but generic python based
do_patch not so. The logs show how patch files are found but that's it.
And modifying the generic do_patch results in world rebuilds.

Documenting this is enough for me.

Cheers,

-Mikko

> Bruce
> 
> 
> 
> >
> > So this works:
> >
> > --- a/meta/recipes-kernel/linux/linux-yocto_6.12.bb
> > +++ b/meta/recipes-kernel/linux/linux-yocto_6.12.bb
> > @@ -43,6 +43,15 @@ KBRANCH:class-devupstream = "v6.12/base"
> >  SRC_URI = "git://
> > git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH};protocol=https
> > <http://git.yoctoproject.org/linux-yocto.git;name=machine;branch=$%7BKBRANCH%7D;protocol=https>
> > \
> >             git://
> > git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.12;destsuffix=${KMETA};protocol=https
> > <http://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.12;destsuffix=$%7BKMETA%7D;protocol=https>
> > "
> >
> > +SRC_URI += "\
> > +    file://changes_to_test.patch;subdir=kernel-meta;patchdir=kernel-meta \
> > +"
> > +
> >  LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
> >  LINUX_VERSION ?= "6.12.13"
> >
> > Cheers,
> >
> > -Mikko
> >
> 
> 
> -- 
> - Thou shalt not follow the NULL pointer, for chaos and madness await thee
> at its end
> - "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#14792): 
https://lists.yoctoproject.org/g/linux-yocto/message/14792
Mute This Topic: https://lists.yoctoproject.org/mt/111250321/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to