BeagleBone Black kernal 4.1.4 debian 8.1 Jessie device tree manager

I have left the beaglebone black for almost a year since finishing the animeyes project last year. Returning to it again a few things have changed. Last year I was using Ubuntu 13.04 with kernal 3.8, since then my laptop has changed, I lost any OS images I had saved and I could not find any similar images online as they had all been surpased by newer builds. Enter a new kernal 3.14, it nolonger has device tree support. This makes enabling hardware interfaces such as UART and SPI much more complicated. Half the problem with looking for support online is that you have to work out which versions of kernel and os people are working with as it makes a dramatic difference to its relivance to you.

As quick as they take away they give back better than before… Thanks to a post here Robert C Nelson stated that kernel 4.1 has now re-introduced the device tree overlay and not only that but this git repo provides you with many overlays to setup your beaglebone for most tasks.

The readme instructions arent brillianty detailed but here is what I have used to get it all working. Debian 8.1 kernal 4.1 available from the http://elinux.org/BeagleBoardDebian#eMMC:_BeagleBone_Black”. As this comes with a recent kernal some of the readme instructions dont need applying.

First check your kernal has cape manager support with:

zcat /proc/config.gz | grep CONFIG_BONE_CAPEMGR
CONFIG_BONE_CAPEMGR=y

Ignore the kernal update you wont need it.

Check the device tree compiler version:

dtc --version
Version: DTC 1.4.1...

Then get the git repo:

git clone https://github.com/beagleboard/bb.org-overlays.git
cd bb.org-overlays
./install.sh

This installs all those nice handy easy to use overlays to help you set up your BBB. There are a few ways to impliment them but I am most used to the slots system:

debian@beaglebone:~$ cat /sys/devices/platform/bone_capemgr/slots
0: PF---- -1
1: PF---- -1
2: PF---- -1
3: PF---- -1

reveals empty by default…

debian@beaglebone:~$ sudo sh -c "echo 'BB-UART4' > /sys/devices/platform/bone_capemgr/slots"
debian@beaglebone:~$ cat /sys/devices/platform/bone_capemgr/slots
0: PF---- -1
1: PF---- -1
2: PF---- -1
3: PF---- -1
4: P-O-L- 0 Override Board Name,00A0,Override Manuf,BB-UART4

Now the new uart appears and can be access through /dev/ttyO4, note the ‘O’ not the number 0. You can test everything is working easily using pyserial in idle, pyserial.

Leave a Reply