[yocto] modify a kernel patch

Bruce Ashfield bruce.ashfield at windriver.com
Tue May 8 12:20:03 PDT 2012


On 12-05-08 09:03 AM, Frans Meulenbroeks wrote:
> 2012/5/8 Bruce Ashfield<bruce.ashfield at windriver.com>:
>> On 12-05-08 03:18 AM, Frans Meulenbroeks wrote:
>>>
>>> 2012/5/7 Bruce Ashfield<bruce.ashfield at windriver.com>:
>>>>
>>>> On 12-05-07 03:29 PM, Frans Meulenbroeks wrote:
>>>>>
>>>>>
>>>>> 2012/5/7 Bruce Ashfield<bruce.ashfield at windriver.com>:

<snip>

>>>
>>> Not sure what I am doing wrong.
>>> Is there a small example or some doc on how to do this? or can someone
>>> give a few commands that would show how to modify an existing patch
>>> (or create a new one) with patch?
>>
>>
>> There are docs, but if guilt next, or guilt push -f aren't working, they
>> won't be of much use.
>>
>>
>>> (btw noticed that the patches are also in
>>> .git/refs/patches/...
>>> however the guilt doc says:
>>> In Guilt, all the patches are stored in .git/patches/$branch/, where
>>> $branch ...
>>
>>
>> That's an unmodified guilt, you can't commit and track the series if you
>> let guilt store information under .git, so I created a variable and
>> relocated it.
>>
>>
>>>
>>> Also tried to add a symlink from .git/patches to .git/refs/patches but
>>> that did not help either.
>>>
>>> Thanks for any suggestion!
>>
>>
>> I can easily give you the raw git commands to make this work, but the guilt
>> path is supposed to be the gentle entry to the process. We need to
>> diagnose what is happening .. and I need to see it happen in front of
>> me, so I can try a few things.
>>
>> Cheers,
>>
>> Bruce
>>
>
> Bruce,
>
> Thanks for your help.
> I'l try to make a small overlay based upon the standard denzil 7.0
> layer and send you the diffs.
> This will take a little bit of time as I want to verify here first
> that this still has the problem.

For anyone following along (all one of them), Frans and I have this
working now. It was a missing export of GUILT_BASE. I just sent a patch
to the list for it.

Without that patch, here's what I did in devshell:

Here's a log of what I did in devshell:

   >  export GUILT_BASE=meta
   >  guilt applied
links/files/lm75.patch
links/files/lm80.patch
links/files/mpc8313e-rdb-cardbus.patch
links/files/reboot.patch
links/files/eeprom.patch
links/files/do_mounts.patch

   >  guilt push -f
Applying patch..links/files/max7311.patch
Checking patch drivers/gpio/max7311.c...
Checking patch drivers/gpio/Kconfig...
Hunk #2 succeeded at 199 (offset 63 lines).
Checking patch drivers/gpio/Makefile...
error: while searching for:
obj-$(CONFIG_GPIO_SX150X)       += sx150x.o
obj-$(CONFIG_GPIO_VX855)        += vx855_gpio.o
obj-$(CONFIG_GPIO_ML_IOH)       += ml_ioh_gpio.o

error: patch failed: drivers/gpio/Makefile:42
Checking patch include/linux/max7311_gpio.h...
Applied patch drivers/gpio/max7311.c cleanly.
Applied patch drivers/gpio/Kconfig cleanly.
Applying patch drivers/gpio/Makefile with 1 rejects...
Rejected hunk #1.
Applied patch include/linux/max7311_gpio.h cleanly.
Patch applied.

   > <resolve conflict> (I used wiggle), but it's a trivial fix

   # guilt needs to know where the last commit is. When using guilt in
   # development mode, it does autotagging. But while doing a build it
   # doesn't. So we just tag the top:
   > git tag standard/default/syrcxx_top
   > guilt refresh
Patch links/files/max7311.patch refreshed
   >  cp meta/patches/standard/default/syrcxx/links/files/max7311.patch 
<your layer>
   >  guilt push -a
File series fully applied, ends at patch links/files/max7311.patch

Cheers,

Bruce

>
> Best regards, Frans




More information about the yocto mailing list