Jump to: navigation, search

Linux kernel 3.8

With Angstrom v2013.06 and v2013.12 comes Linuc kernel 3.8.13. This is how I compile the Linux kernel 3.8 for BeagleBone Black on my Ubuntu 12.04 32-bit box: Most of this is taken from http://beagleboard.org/linux.

Get the source and apply the patches

 git clone git://github.com/beagleboard/kernel.git 
 git checkout origin/3.8 -b 3.8
 cd kernel
 ./patch.sh
 cp configs/beaglebone kernel/arch/arm/configs/beaglebone_defconfig
 wget http://arago-project.org/git/projects/?p=am33x-cm3.git\;a=blob_plain\;f=bin/am335x-pm-firmware.bin\;hb=HEAD -O   kernel/firmware/am335x-pm-firmware.bin

Compile the necessary stuff

 make ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- beaglebone_defconfig
 make ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- -j4 uImage dtbs
 make ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- -j4 modules

Install the modules in in a local rootfs

 cd kernel
 mkdir rootfs
 make ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- INSTALL_MOD_PATH=./rootfs modules_install

Copy the stuff to the BagleBone Black

scp arch/arm/boot/uImage root@192.168.7.2:/boot/uImage-3.8.13

scp arch/arm/boot/dts/am335x-boneblack.dtb root@192.168.7.2:/boot/

rm rootfs/lib/modules/3.8.13-00658-g0060a3b/build

rm rootfs/lib/modules/3.8.13-00658-g0060a3b/source

scp -r rootfs/lib/modules/3.8.13-00658-g0060a3b/ root@192.168.7.2:/lib/modules/


Then reboot your bone



Get the compiler

If you do not have a toolchain set up, this might do the trick:

 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