Linux kernel 3.12
I'm writing down the steps that worked for me in order to compile the BeagleBoard kernel 3.12. 3.12 is mainline the time of this writing.
Get and patch the kernel:
git clone https://github.com/beagleboard/kernel.git 3.12 cd 3.12 git checkout origin/3.12 -b 3.12 ./patch.sh
Compile the kernel:
cd kernel cp ../configs/beaglebone .config mkdir rootfs make ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- LOADADDR=0x80008000 uImage dtbs make ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- modules make ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- INSTALL_MOD_PATH=./rootfs modules_install
Install the kernel on your BeagleBone:
scp arch/arm/boot/zImage root@192.168.7.2:/boot/zImage-3.12.1 scp arch/arm/boot/dts/am335x-bone*.dtb root@192.168.7.2:/boot/ rm rootfs/lib/modules/3.12*/build rm rootfs/lib/modules/3.12*/source scp -r rootfs/lib/modules/3.12* root@192.168.7.2:/lib/modules/
Log in, move link, sync and reboot:
ssh root@192.168.7.2 cd /boot/ rm zImage ln -s zImage-3.12.1 zImage sync reboot
Note
If you make any changes to the git tree under kernel, the make system will add a "-dirty" to the image name. To remove this, update the timestamp on .scmversion:
touch .scmversion
Thanks to Koen Kooi for this!
If you do not have a toolchain, you can get one from Angstrom:
wget http://www.angstrom-distribution.org/toolchains/angstrom-eglibc-i686-armv7a-vfp-neon-v2012.12-toolchain.gz gunzip angstrom-eglibc-i686-armv7a-vfp-neon-v2012.12-toolchain.gz sudo sh angstrom-eglibc-i686-armv7a-vfp-neon-v2012.12-toolchain.gz
When asked for install location, just say ok.
export PATH=/usr/local/oecore-i686/sysroots/i686-angstromsdk-linux/usr/bin/armv7a-vfp-neon-angstrom-linux-gnueabi/:$PATH