Up-to-date kernel for pandaboard
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
Get Roberts latest release from github
Now change into the new folder and get the latest torvalds mainline kernel source from kernel.org
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
and edit it
Though we are cross-compiling at that point, you have to uncomment the lines (around line 25 and 42)
#CC=arm-none-linux-gnueabi-
and
#LINUX_GIT=/path/to/source
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
LINUX_GIT=/home/user/stable-kernel/linux-stable
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:
146d145
< time fakeroot make -j${CORES} ARCH=arm KBUILD_DEBARCH=${DEBARCH} LOCALVERSION=-${BUILD} CROSS_COMPILE="${CCACHE} ${CC}" KDEB_PKGVERSION=${BUILDREV}${DISTRO} uImage
160c159
< 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”.
Enjoy!
This entry was posted by Gr3yh0und on 13/11/2011 at 20:13, and is filed under Embedded Systems. Follow any responses to this post through RSS 2.0.You can leave a response or trackback from your own site.