Up-to-date kernel for pandaboard

13 Nov

Hey guys,

After getting a lot of traffic (according to google analytics) on the pandaboard kernel topic i recently decided to add another post about that.

As I’m currently stuck in my project with some strange USB driver problem, I had time to checkout all the new cool kernel stuff in the 3.X branch.
After drooling around in the web I found a link to Robert C. Nelsons stuff over at github.
It looks like he is really into kernel developing and also a fan of the OMAP branch which is great news for us noob or semi-noob guys. He is supplying a lot of scripts and patches that fix bugs in the original mainline stable kernel sources automagically (that’s the point!) for us.

In this post I’ll try to write a step-by-step guide in using his stuff.

So first, the kernel.

Go to your home directory

cd ~

Get Roberts latest release from github

git clone https://github.com/RobertCNelson/stable-kernel.git

Now change into the new folder and get the latest torvalds mainline kernel source from kernel.org

cd stable-kernel
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

This can take some time… So time for coffee!

To compile anything you need you have to setup a cross compiling toolchain or do it natively on the board (no good idea though)… I’m assuming that here.

Next is to rename the config file

mv system.sh.sample system.sh

and edit it

vim system.sh

Though we are cross-compiling at that point, you have to uncomment the lines (around line 25 and 42)
As you can see, you have to edit the last uncommented line and add the path to the kernel mainline sources. If you are using your home folder this would be something like

There are two possible ways in the stable-kernel folder:
* build_kernel.sh
* build_deb.sh

As the filename is implicating, one builds only the kernel and the other one makes a debian installer (.deb). As I’m currently using Ubuntu Oneiric on my pandaboard a deb file comes in very handy…
But the basic script only creates a zImage of the kernel, which I’m not using in uboot – so I added two lines to the build bash scripts:

diff build_deb.sh build_deb.sh.old 
<   make_menuconfig
>   #make_menuconfig

This will always execute the menuconfig option where you can edit the kernel settings and later also make the uImage required by uboot.

Last step is to get another cup of coffee or maybe a rig with more potential cpu power…


Currently, Robert has already ported version 3.1.1! Really great job!

After the script has finished you can use the new uImage and .deb file.
i.e. the uImage can be found in KERNEL/arch/arm/boot/ and the .tar.gz and .debs for kernel/header can be found in “deploy”.