\>>>>>>>>> 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.
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.
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
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
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.