OMAPpedia PandaBoard
Ubuntu ARM
Related videos
PandaBoard Color Tracking
PandaBoard Face Detection
Embedded Computer Vision Platform with PandaBoard

last update 19/03/2012

Hello everyone,

On this page I explain how to install and configure PandaBoard with Ubuntu Server, OpenCV, Boost C++ Libraries and Playstation Eye camera.

Software version:
* Ubuntu Server 11.10 (is more faster than desktop version)
* OpenCV 2.3.1
* Boost C++ Libraries 1.46

Tip: I recommend to use sd card class 10 for better performance.

First, download ubuntu-11.10-preinstalled-server-armel+omap4.img.gz from (Preinstalled server image -> Texas Instruments OMAP4 preinstalled server image)

Copy the image to SD card, see instructions here

Setup a serial terminal, see instructions here

Connect a keyboard and mouse.
Connect your board on internet using Ethernet port.

Insert the SD card in your platform and turn on the board, wait a few seconds for boot, install and configure the operating system.

The Ubuntu Server has no graphical interface (GUI), so install LightDM and Ubuntu Desktop:
sudo apt-get install lightdm
sudo apt-get install --no-install-recommends ubuntu-desktop

Install OMAP4 Addons, see instructions here

SGX Video Acceleration

Install the following tools:
* chkconfig
* GIT (for OpenCV)
* SVN (optional)
* SSH Server (optional)
sudo apt-get install chkconfig git-core subversion openssh-server
PlayStation®Eye Camera
Connect your PS EYE camera, and run lsusb, make sure it was detected.

You can use guvcview to test the camera and display the frame rate:
sudo apt-get install gtk2-engines-pixbuf guvcview
guvcview -d /dev/video2 -p 1

Check if guvcview can display camera capture.

Tip: the gtk2-engines-pixbuf is to solving Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap"
Boost C++ Libraries
Install Boost C++ Libraries by
sudo apt-get install libboost.*1.46.1 libboost.*1.46-dev

Test if all is ok with this sample code (copy and paste in main.cpp file):
#include < boost/thread/thread.hpp >
#include < iostream >

void thread_function(){
std::cout << "Thread" << std::endl;

int main(int argc, char **argv){
std::cout << "-------------------------" << std::endl;
std::cout << "Test Boost Library v1.46 " << std::endl;
std::cout << "-------------------------" << std::endl;

boost::thread mythread(&thread_function);


return 0;
For compile, run:
g++ -o main main.cpp -lboost_thread

The output should be:
Test Boost Library v1.46
The instructions below is a summary of:

* How to install OpenCV 2.3.1 in Ubuntu 11.10 Oneiric Ocelot with Python support

* A Comprehensive Guide to Installing and Configuring OpenCV 2.3.1 on Ubuntu

* OpenCV Installation Troubleshooting Guide

* HOWTO: Install and use the latest FFmpeg and x264

I adapted the tips above to compile OpenCV in Pandaboard.

* Step 1
sudo apt-get update
sudo apt-get remove ffmpeg x264 libx264-dev libvpx0

* Step 2
sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg

* Step 3
sudo apt-get install build-essential checkinstall git cmake libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev texi2html yasm zlib1g-dev

* Step 4
Download and install x264
Get the most current source files, compile, and install.
git clone git://
cd x264
./configure --enable-static --enable-pic --enable-shared
sudo make install

* Step 5
Install libvpx
This is used to encode and decode VP8 video (WebM).
git clone
cd libvpx
./configure --enable-static --enable-pic (--enable-shared only supported on ELF for now)
sudo make install

* Step 6
Download and install ffmpeg version 0.7.x from (version >= 0.8.x is not compatible with OpenCV 2.3) and extract it to a folder. Then enter the folder and configure and build it:
cd ffmpeg
./configure --enable-shared --enable-libvpx --enable-pic --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab --disable-ffserver
sudo make install

* Step 7
Download and install libjpeg by entering the following command:
sudo apt-get install libjpeg62 libjpeg62-dev

* Step 8
Download and install install v4l (video for linux)
Download v4l-utils-*.*.*.tar.bz2 from (i used v4l-utils-0.8.5.tar.bz2)
Build v4l by entering the following commands in a terminal:
sudo make install

* Step 9
Download and install gtk by entering the following command:
sudo apt-get install libgtk2.0-0 libgtk2.0-dev

* Step 10
Download and install OpenCV – download OpenCV 2.3.1 from and extract it to a folder.
Then enter the folder and build it:
mkdir release
cd release

Check that the output of cmake includes the following text:
¦GTK+ 2.x: YES
¦GStreamer: YES
¦V4L/V4L2: Using libv4l

sudo make install

* Step 11
Configure Linux – add the following line to your .bashrc in order to tell linux where the shared libraries for OpenCV are located without having to enter it everytime you start a new terminal:
export LD_LIBRARY_PATH=/usr/local/lib
Using any text editor add the following lines to the end of your /etc/bash.bashrc file:

* Step 12

* Step 13
Test OpenCV with this example code (copy and paste in main.cpp file):
#include < stdio.h >
#include < cv.h >
#include < highgui.h >

int main(int argc, char **argv)
CvCapture *capture = 0;
IplImage *frame = 0;
int key = 0;

capture = cvCaptureFromCAM(2);

fprintf(stderr, "Cannot open initialize webcam!\n");
return 1;


while(key != 'q')
frame = cvQueryFrame(capture);

if(!frame) break;

cvShowImage("result", frame);

key = cvWaitKey(1);


return 0;
Compile and run:
g++ `pkg-config --cflags opencv` main.cpp -o main `pkg-config --libs opencv`