Yet another set of notes on building BeagleBone kernel

This is for building the current “production” 3.8 kernel. I’ll follow-up with building a mainline kernel in a few days. I’m only documenting this here temporarily to see if there really are any gaps in the kernel build documentation that are causing people to stumble. I got a query on #beagle yesterday that I haven’t been able to reproduce and I want to share all my steps here just in case someone can find out where some issue is at.

This was run on an Ubuntu 12.04 machine:

$ cat /etc/lsb-release
$ uname -a
Linux ip-10-228-35-177 3.2.0-54-virtual #82-Ubuntu SMP Tue Sep 10 20:31:18 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Here are the steps I took.

sudo apt-get install gcc-arm-linux-gnueabihf lzop pastebinit ncurses-dev
git clone git://
cd u-boot
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_evm_config
cp tools/mkimage ~/bin
git clone git://
cd kernel
git checkout 3.8
cd kernel
cp ../configs/beaglebone .config
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

I added the ALSA SoC drivers as modules to match the users’ supposedly desired configuration.

make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage dtbs modules
pastebinit .config

The resulting config file is at

About these ads

2 thoughts on “Yet another set of notes on building BeagleBone kernel”

  1. Hi Jason,

    A few questions regarding these instructions:

    Is the config file now “am335x_evm_defconfig” for the first make line?

    I see a mkimage.c and mkimage.h in tools, was this supposed to get made in the previous step?

    Thank you for your time!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s