Hi Aaron, 
  Here is a technote that describes how to do this. I've created a separate cloned copy of the linux-omap-2.6 project, so that changes are not accidently committed and you can work on the cloned copy in isolation to prepare patches, which you can added to your OE user.collection.

Each folder/subfolder will contain a KConfig file, so you will have to modify the KConfig file at the appropriate level.

Best regards,

Elvis

Technote Overo-021: How to quickly create patches for Overo OE


Overview

This document describes how to quickly create patches for Overo. For example, modifying a linux kernel file.


Procedure

Step 01.00: Checkout the linux-omap3-2.6.29 kernel project.

The following command will clone the linux-omap-2.6 project into a folder called linux-omap-2.6.

$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git

The following command will checkout the linux-omap3-2.6.29 branch. This is the one the Overo uses, along with some patches.

$ git checkout --track -b linux-omap3-2.6.29 origin/linux-omap3-2.6.29


Step 02.00: Create a cloned copy of the linux-omap3-2.6.29 project for creating your patches.

$ cd linux-omap-2.6
$ git clone . ../linux-omap-2.6-patches/linux-omap3-2.6.29-patches


Step 03.00: Apply all the overo specific files to bring it to the current baseline.

Look in the $OE_HOME/org.openembedded.dev/recipes/linux/linux-omap3-2.6.29 folder for the list of overo patches. You will find some more patches in the overo subfolder. Apply all the Overo specific patches.

$ cd ../linux-omap-2.6-patches/linux-omap3-2.6.29-patches
$ git apply dss2.patch


Step 04.00: Make changes to your files or create new files.

Use a text editor or eclipse to create, delete or modify files. 

You can simultaneously modify all your source files and the KConfig files here, as a set.


Step 05.00: Commit your changes.

$ git add .            # be careful not to add the output files. these are anyway located outside the current directory.
$ git commit -a -m "SPI: Added support for xyz device."    


Step 06.00: Create a patch file.

$ git diff > spi-device-support.patch


Step 07.00: Copy the patch file to your Overo OE user.collection folder.

Copy the file to $OE_HOME/user.collection/recipes/linux/linux-omap3-2.6.29 folder.

$ cp spi-device-support.patch $OE_HOME/user.collection/recipes/linux/linux-omap3-2.6.29


Step 08.00: Clean the previous kernel version.

$ cd $OE_HOME
$ bitbake -c clean linux-omap3-2.6.29


Step 09.00: Modify the linux-omap3.2.6.29 recipe file in your Overo OE user.collection folder.

Edit the recipe file.

$ vi $OE_HOME/user.collection/recipes/linux/linux-omap3-2.6.29.bb

Bump up the PR number, e.g. from PR=”rc1” to “rc2”.

Add a new entry to the SRC_URI_ section, and add the newly generated patch file.


Step 10.00: Build the kernel

$ cd $OE_HOME
$ bitbake linux-omap3-2.6.29


Step 11.00: Configure the kernel

$ cd $OE_HOME
$ bitbake -c menuconfig linux-omap3-2.6.29

Tweak the kernel configuration and copy the generated .config file, renamed as defconfig for the OE recipe.

$ cp $OE_HOME/tmp/work/overo-angstrom-linux-gnueabi/linux-omap3-2.6.29-rc1/git/.config \
     $OE_HOME/user.collection/recipes/linux/linux-omap3-2.6.29/overo/defconfig


Step 12.00: Rebuild the kernel with the new defconfig file.

$ cd $OE_HOME
$ bitbake -c clean linux-omap3-2.6.29
$ bitbake -c rebuild linux-omap3-2.6.29

The newly generated kernel image can be found in $OE_HOME/tmp/deploy/glibc/images/overo.


Step 13.00: If you want to merge cumulative commits into a single commit.

$ git reset --soft <commitid>


Step 14.00: To show a list of recent commits and their SHA1 hashes

$ git log


Step 15.00: To erase a recent commit from the record permanently

$ git reset --hard SHA1_HASH


Step 16.00: To hop back to an old state briefly

$ git checkout SHA1_HASH


Step 17.00: Change you user name and email address before submitting patches.

$ git config user.name "John Doe"
$ git config user.email john.doe@domain.com


Related Topics

None.


Related Links

01. git(1) - kernel.org docs.

01. Tell git your user name and email address - Guides - GitHub.