\>>>>>>>>> I could not find a way to patch the kernel source before its is >>>>>>>>> built. >>>>>>>>> >>>>>>>>> I promise to update the Yocto wiki's How do I section when I have a >>>>>>>>> working solution for the following :-) >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> This should be covered in the existing documentation and also the >>>>>>>> more general bitbake/oe-core docs. >>>>>>>> >>>>>>>>> >>>>>>>>> Here is what I am trying to do: >>>>>>>>> >>>>>>>>> 1) Patch the kernel (add VID/PID to hid_ignore_list in >>>>>>>>> drivers/hid/hid-core.c and also to add the VID/PID to .h file) >>>>>>>>> 2) Build the kernel - no change here - standard kernel build >>>>>>>>> 3) Build a kernel module >>>>>>>>> >>>>>>>>> I have a meta layer where I am keeping my changes. I am guessing >>>>>>>>> that >>>>>>>>> I need to: >>>>>>>>> >>>>>>>>> a) write a bbappend file to accomplish #1 >>>>>>>>> b) write a recipe to accomplish #3 >>>>>>>>> >>>>>>>>> I have written recipes before, but just for libraries and autotools >>>>>>>>> based applications. Not for a kernel module. If there is a recipe >>>>>>>>> out >>>>>>>>> there for some other module, I would be happy to steal from it. >>>>>>>>> >>>>>>>>> Please advise how I can go about patching the kernel and if there >>>>>>>>> is >>>>>>>>> a >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> It's just like any other package. If your changes are simple, then >>>>>>>> generating patches and putting them on the SRC_URI via a bbappend in >>>>>>>> your layer is all you need. If you have complex changes, there are >>>>>>>> options >>>>>>>> to manage them via git or via feature descriptions. >>>>>> >>>>>> >>>>>> >>>>>> I tried this - attached at the end of this email are my bbappend file >>>>>> and my patches, when the recipe is bitbaked, it does not actually >>>>>> apply the patch. >>>>>> >>>>>> On a similar note - there seems to be a file in >>>>>> meta/recipes-kernel/linux/linux-yocto called >>>>>> tools-perf-no-scripting.patch >>>>>> >>>>>> However, it does not seem to be used anywhere - is this just crud or I >>>>>> am missing something? I was hoping to cheat off of the recipe that >>>>>> uses it. >>>>>> >>>>>>>>> recipe for a kernel module - please point me to it. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Darren validated and updated the kernel module example, so he'd >>>>>>>> probably >>>>>>>> got this closer at hand than I do. >>>>>>> >>>>>>> >>>>>>> >>>>>>> See the hello-mod example under meta/recipes-kernel/hello-mod >>>>>> >>>>>> >>>>>> >>>>>> Thank you for this recipe - it seems like this is exactly what I was >>>>>> looking for. I will cheat off of this as soon as I can patch my >>>>>> kernel. >>>>>> >>>>>> >>>>>> R E C I P E >>>>>> >>>>>> autif@fpbm:~/data/yocto/poky-edison-6.0/meta-koko/recipes/linux$ cat >>>>>> linux-yocto_3.0.bbappend >>>>>> FILESEXTRAPATHS_prepend := "${THISDIR}:" >>>>>> SRC_URI += " file://linux/drivers/hid/hid-core.c.diff \ >>>>>> file://linux/drivers/hid/hid-ids.h.diff " >>>>>> PR = "r3" >>>>>> autif@fpbm:~/data/yocto/poky-edison-6.0/meta-koko/recipes/linux$ >>>>>> >>>>>> P A T C H >>>>>> >>>>>> >>>>>> >>>>>> autif@fpbm:~/data/yocto/poky-edison-6.0/meta-koko/recipes/linux/linux/drivers/hid$ >>>>> >>>>> >>>>> >>>>> Taking a look at this (while I was cutting and pasting), this should >>>>> be in in the >>>>> a 'linux-yocto' subdirectory if you want bitbake to pickup the patch >>>>> and >>>>> make it >>>>> available to the linux-yocto recipe. >>>>> >>>>> i.e. >>>>> >>>>> ~/data/yocto/poky-edison-6.0/meta-koko/recipes/linux/linux-yocto/drivers/hid >>>>> >>>>> And don't use 'linux-yocto' in your file:// reference on the SRC_URI, >>>>> that part is >>>>> automatic. >>>> >>>> >>>> >>>> I tried this just now - here is what happens: >>>> >>>> Case - patch is in linux/linux-yocto/drivers/hid, SRC_URI ref is >>>> file://drivers/hid/file.diff >>>> Result: Fetcher failure for URL: 'file://drivers/hid/hid-core.c.diff >>> >>> >>> >>> If you get a fetcher failire, you have it in the wrong place. >>> >>> Note: this has nothing to do with the kernel and is a general >>> bitbake/oe-core question. >>> >>> >>>> >>>> Case - patch is in linux/linux-yocto/drivers/hid, SRC_URI ref is >>>> file://linux-yocto/drivers/hid/file.diff >>> >>> >>> >>> Interesting. I've never had to specify linux-yocto in my SRC_URIs, >>> so something strange it going on here. >>> >>> Does anyone else have ideas here ? >>> >>> >>> >>>> Result - my diff files are copied in a directory called linux-yocto in >>>> >>>> >>>> tmp/work/crownbay-poky-linux/linux-yocto-3.0.4+git1+d05450e4aef02c1b7137398ab3a9f8f96da74f52_1+2247da9131ea7e46ed4766a69bb1353dba22f873-r3 >>>> >>>> These patches are not applied in >>>> >>>> >>>> tmp/work/crownbay-poky-linux/linux-yocto-3.0.4+git1+d05450e4aef02c1b7137398ab3a9f8f96da74f52_1+2247da9131ea7e46ed4766a69bb1353dba22f873-r3/linux >>>> >>>> Here is what the work directory looks like >>>> >>>> >>>> >>>> autif@fpbm:~/ssd/minimal/tmp/work/crownbay-poky-linux/linux-yocto-3.0.4+git1+d05450e4aef02c1b7137398ab3a9f8f96da74f52_1+2247da9131ea7e46ed4766a69bb1353dba22f873-r3$ >>>> ls >>>> git license-destdir linux linux-crownbay-standard-build linux-yocto >>>> temp >>>> >>>> >>>> autif@fpbm:~/ssd/minimal/tmp/work/crownbay-poky-linux/linux-yocto-3.0.4+git1+d05450e4aef02c1b7137398ab3a9f8f96da74f52_1+2247da9131ea7e46ed4766a69bb1353dba22f873-r3$ >>>> >>>> >>>> I have attached the original set of files as a tar gzip. >>> >>> >>> >>> I'll take them for a spin. >>> >>> >>>> >>>>> (and yes, I see 'edison' was the branch now) >>>> >>>> >>>> >>>> Yes, I am using Yocto 1.0 - very soon I will migrate to M2 - pending >>>> tasks at hand :-) >>> >>> >>> >>> I'll have to dig up a 1.0 tree, since I don't have anything of that >>> vintage available to me. >>> >>> But I know that patched worked then, and am absolutely sure that it >>> works in 1.1 and master. >> >> >> OK, I switched to M2 release and now, I have a different error: >> >> Case - diff files are in recipes/linux/linux-yocto, SRC_URI is >> file://drivers/hid/hid-core.c.diff >> Result - ERROR: Function 'Fetcher failure for URL: >> 'file://drivers/hid/hid-core.c.diff'. Unable to fetch URL >> file://drivers/hid/hid-core.c.diff from any source.' failed >> >> >> Did, I misunderstood you when you said that I should rename the files >> dir to linux-yocto - the name of the recipe and remove it from the >> SRC_URI? > > > Every build that I do with my meta-kernel-dev has some out of tree > patches. It's a form of continual regression testing that I do out > of habit. > > My bbappend looks like this: > > SRC_URI = > "git://${KSRC_linux_yocto};protocol=file;nocheckout=1;branch=${KBRANCH},meta;name=machine,meta > \ > file://make.patch \ > file://subdir/make2.patch \ > file://subdir/make3.patch" > > >> pwd > /home/bruce/yocto/poky-extras/meta-kernel-dev/recipes-kernel/linux >> tree linux-yocto > linux-yocto > ├── make.patch > └── subdir > ├── make2.patch > └── make3.patch > > These are always applied to my build. > > Cheers, > > Bruce >
I will try that next. However, it seems like something is wrong with my setup may be. I was reading the log.do_patch file and it seems like bitbake is mixing my build and recipes directory. The recipe and logs are attached in this email. Once again, I have switched to M2 now. This is no longer with Yocto 1.0.
cant_patch_kernel.tar.gz
Description: GNU Zip compressed data
_______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto