BeagleBone Setup for BB-View

The BeagleBone Black (BBB) is a small single board computer, part of a series of open hardware OMAP boards by TI under the BeagleBoard name and based on the TI AM3358BZCZ100 Sitara ARM8 processor. The latest version carries 4GB FLASH memory and is capable of running a Debian Linux. The BBB I have was sourced from Element14 who have produced a compatible version of their own. There is a BeagleBoard community involved in the ongoing support and development of these boards.

BeagleBoard uses a piggyback extension system based on two 46 pin dual row headers, that accepts extension boards called capes,

BB-View is a resistive touchscreen for the BeagleBoards, also produced by Element14. It comes in 4.3" and 7" versions.

The BB-View presents a major problem in that it has no native support in Debian Linux. Various sources provide advice in recipe form to rebuild a kernel that includes support for BB-View. Unfortunately, unlike food recipes, the ingredients change over time.

In this document is a summary of resources and techniques for building a kernel that includes BB-View support.

Outcome

Since the outcome is negative, it is placed first.

The BB-View support in Linux is insufficient to enable it to be effectively used as a touchscreen. The calibration is extremely finicky and requires many attempts to complete successfully. After that, the touch effectiveness is very poor, and again requires many attempts to get a button press to be recognised. This is most likely a problem with the Linux drivers.

A change to the 4D Systems' BeagleBone Black 7.0" LCD Cape resolved all issues, with rapid calibration and button press responsiveness.

Resources

Element14 provides information on the BBB and BB-View cape in the form of user manuals, as well as Debian, Angstrom and TI SDK kernel source code and images patched for the BB-View. These are dated 10 June 2014. Instructions in the BB-View manual for patching Debian for BB-View may still work with these files.

Unpatched images from May 2014 are available from the BeagleBoard.org site for Debian standalone and Debian flasher for flashing to the on-board eMMC. These also have available (for now) the Debian Wheezy repositories for accessing the whole range of Debian applications for installing on the BBB. This latter is going to become more important as time progresses.

Another resource is the January 2014 instructions in the Element14 Community for patching the kernel. These will be needed for patching the kernel images from the BeagleBoard.org site. These instructions also still work.

The BeagleBoard.org site has kernel source that is adapted to the BeagleBoard. This includes work to patch the kernel for BB-View. Apparently kernels later than 3.18.X have lost the cape manager so this is the latest kernel version available for the BBB with cape support.

There are also a number of kernel releases for the BeagleBoard on the RCN-EE site.

Patching Kernel 3.8.13-bone37

These are the instructions given in January 2014 that still work with a version of Debian provided in May 2014.

  1. Download Robert Nelson's build scripts with git clone into a directory, such as bb-view.:

  2. Change to the linux-dev folder and change to the 3.8.13-bone37 release. This is quite early but the resulting kernel works OK:

    • git checkout 3.8.13-bone37 -b 3.8.13-bone37

  1. ./build_kernel.sh

  2. Unzip angstrom-source.zip from the Element14 site and copy the following files to bb-view/linux-dev/KERNEL/:

    • tar -zxf bb-black-kernel-3.8.13-bb-view.tar.bz2

    • cp ./kernel/kernel/drivers/input/touchscreen/ti_am335x_tsc.c ~/bb-view/linux-dev/KERNEL/drivers/input/touchscreen/

    • cp ./kernel/kernel/firmware/capes/BB-VIEW-LCD7-01-00A0.dts ~/bb-view/linux-dev/KERNEL/firmware/capes/

  1. Edit ~/bb-view/linux-dev/KERNEL/firmware/Makefile and add BB-VIEW-LCD7-01-00A0.dtbo \ near line 192.

  2. Go back to the linux-dev directory and:

    • ./tools/rebuild.sh

The zImage seems to be the only file needing overwriting in the BBB /boot/uboot directory. Edit the /boot/uboot/uEnv.txt file as follows:

cape_disable=capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN

cape_enable=capemgr.enable_partno=BB-VIEW-LCD7-01

Because the cape has no EEPROM this is needed to force the HDMI off and the LCD on.

Patching Kernel 3.8.13-bone50

This is an adaptation of the above instructions that draw on a later support for BB-View and are generally applicable to other BB kernel releases.

  1. Clone the BeagleBoard repository https://github.com/beagleboard/linux/ by git clone, and switch to the branch 3.8.12-bone69. Copy out into a safe location the following files that were modified for BB-View:

    • - drivers/input/touchscreen/ti_am335x_tsc.c

    • - firmware/capes/BB-VIEW-LCD4-01-00A0.dts

    • - firmware/capes/BB-VIEW-LCD7-01-00A0.dts

    • - drivers/iio/adc/ti_am335x_adc.c

    • - include/linux/mfd/ti_am335x_tscadc.h

  1. Download https://github.com/RobertCNelson/linux-dev.git with git clone into a directory bb-view.

  2. In the bb-view/linux-dev directory switch the branch to bone50 with

    • git checkout 3.8.13-bone50 -b 3.8.13-bone50

  1. ./build_kernel

  2. Copy out the above mentioned files to another safe place in case they need to be restored. Copy back the saved bone69 files.

  3. Edit ~/bb-view/linux-dev/KERNEL/firmware/Makefile and add BB-VIEW-LCD7-01-00A0.dtbo \ near line 192.

  4. As above since the bone69 version has additional capes, edit ~/bb-view/linux-dev/KERNEL/firmware/Makefile and add BB-VIEW-LCD7-01-00A0.dtbo \ somewhere near line 145 (look for the line BB-BONE-LCD7-01-00A2.dtbo \). The backslash causes the line to be included in the fw-shipped-$(CONFIG_CAPE_BEAGLEBONE) variable. If it's put on the end of the list, move the backslash to the previous line.

  5. Go back to linux-dev directory and do

    • ./tools/rebuild.sh

First created 17 May 2015
Last Modified 23 May 2015
Ken Sarkies 2015