Jump to: navigation, search

Linux kernel 3.12

Revision as of 22:23, 3 February 2014 by Elias (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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