Home - andreimironenko/oe-davinci GitHub Wiki

Introduction and aim of the project

TI DM36X/DM81XX are very powerful video SOCs. Both processors have got ARM core, video cores and a DSP. Initially these processors were supported in TI Arago (Angstrom based) OE(Open Embedded) distribution. Unfortunately after Arago has migrated to Yocto project TI has dropped support of Davinci. The aim of this project is providing the previous generation of Arago OE distribution for TI Davinci processor family.

I know that there is a work in progress for getting kernel baseport to the mainstream linux but I can see some technical difficulties in this way. For example, getting up to date firmware for video cores and DSP. Although this is quite possible it might take significant amount of time. Therefore this project might help you to get immediately the linux distribution (although with a bit out of date 2.6.3X kernel) for the product based on TI Davinci family.

OpenEmbedded uses a task automation tool called BitBake to organize and execute tasks. Tasks include downloading, configuring, compiling, and packaging software, as well as dependency handling. The OpenEmbedded repository consists of a large collection of BitBake files (called “recipes”) that ultimately provide the instructions needed to build a cross-compilation toolchain, a Linux kernel, and a root filesystem image. OpenEmbedded is developed with Python, but only in rare cases you would need knowledge of Python. To write recipes and tasks you would only need some basic knowledge of the shell script, as they have bash-like syntacs. Arago distribution which

Acknowledgement and Credits

  • Texas Instrument for developing and releasing initial version of Arago OE project;
  • Texas Instrument for excellent support of open source community;
  • Hanover Displays Ltd for letting publish my work on Arago OE for Davinci;
  • Z3 Technologies for providing u-boot and linux port and helping with setting up this project;

Installation

This version of the Arago/Angstrom only runs on Ubuntu 12.04. The ISO image of the Ubuntu server can be found here. Reserve at least 100GB for the single build.

Update Ubuntu

  sudo apt-get update
  sudo apt-get upgrade

Install the following packages:

sudo apt-get install git-core
sudo apt-get install mtd-utils
sudo apt-get install u-boot-tools
sudo apt-get install quilt
sudo apt-get install autotools-dev
sudo apt-get install autoconf
sudo apt-get install libtool
sudo apt-get install fakeroot
sudo apt-get install texi2html
sudo apt-get install cvs
sudo apt-get install subversion
sudo apt-get install gawk
sudo apt-get install chrpath
sudo apt-get install openjdk-7-jdk:i386
sudo apt-get install gcc-4.6
sudo apt-get install g++-4.6
sudo apt-get install libc6:i386
sudo apt-get install mtd-utils	
sudo apt-get install liblatex-driver-perl
sudo apt-get install texlive-full
sudo apt-get install texlive-fonts-recommended
sudo apt-get install texlive-latex-recommended
sudo apt-get install texlive-latex-extra

Clone oe-davinci project

git clone git://github.com/andreimironenko/oe-davinci.git

Make symlinks for bb-get tool and URLs configurations

cd oe-davinci
ln -sf utils/bb-get.sh bb-get
ln -sf utils/devurls.conf
ln -sf utils/oedevurls.conf
ln -sf utils/oeurls.conf
ln -sf utils/producturls.conf

Installation of the build system might take some significant amount of time, it very much depends on the Internet connection speed. Reserve at least 30-40 minutes for this. First you must get the latest product release, the list of available products can be found in producturls.conf. At the moment the only available product is the console based gstreamer video player - gstplayer. To read the available releases run this command:

git ls-remote git://github.com/andreimironenko/gstplayer.git  

It will show some available releases. In my case the latest one is r04, so to get all software for this release

./bb-get install -r r04 gstplayer

As I mentioned before it will take sometime.

Build a product

After the installation has completed we can start a build. First step is setting up the environment by sourcing arago/setenv script:

source arago/setenv

start the build

bb -f -p gstplayer -m dm814x-z3

where -f indicates that this is a released/freezed build, -p defines a product, -m machine. In this case I'm building gstplayer product for dm814x-z3 machine.

Creating machine specific images

After build completion, OpenEmbedded creates (it can also create by default ext2, ext3 images) root file system tarball. From this tarball we can generate different images for different targets. For example the only storage available on Z3 module is row NAND flash, DM8148 EVM has got both NAND and SD card. So for Z3 build we need to create UBIFS image and for EVM ext3 image which can be written on SD card. The makerelease.sh does it for you and put the images into /opt/exports/oeadmin folder. To get files generated and exported perform these steps

cd arago-tmp/gstplayer/rel/deploy/eglibc/images/dm814x-z3/scripts
./makerelease.sh

Please refer for the machine specific section for details.

Supported machines

Useful links

Gstreamer plugins for DM814x

[VIC code mapping incorrectly in hdmi.c ] (http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/p/213836/755831.aspx)

TI Software Download

DM814X HOME Page

TI OpenMAX explained

Instructions how to create RAMFS image

U-Boot parameters

EZSDK Memory Map

Gstreamer pipeline examples for DM814x and DM816x

Draft pages