Please note as of Wednesday, August 15th, 2018 this wiki has been set to read only. If you are a TI Employee and require Edit ability please contact x0211426 from the company directory.

Arago build recipe for OMAPL1

From Texas Instruments Wiki
Jump to: navigation, search

Important Note:

The software discussed on this site is available for download, but is no longer being actively developed. This wiki is in maintenance mode and the software is supported on OMAPL1x Processor E2E forum


This recipe can be used to create kernel and RFS for OMAPL1 platforms using arago-project.org based build system.

NOTE
This recipe always builds most recent version.

Pre-requisite

  • Install Code Sourcery 2009 q1 tool chain for cross compiling. You can download CS2009q1 from link
  • As this point of time, we recommend Ubuntu 8.04 distribution but nothing in Arago is distribution specific and other distribution will most likely work as long as the appropriate packages are installed.

Ubuntu 8.04

Install the following packages:

sudo apt-get install build-essential subversion  ccache sed wget cvs git-core coreutils unzip texinfo docbook-utils gawk help2man diffstat file g++ python-psyco texi2html  bison flex chrpath
sudo dpkg-reconfigure dash
select No when it asks you to install dash as /bin/sh

Recipe

  • Setup various proxies as applicable.
  • Add path to bin folder of Code Sourcery tool chain (typically ~/arm-2009q1/bin) to PATH variable.
  • Create a working folder and change to it:
mkdir ~/oe
chdir ~/oe
cd ~/oe
mkdir downloads
chdir downloads
# TODO: Place ti_cgt_c6000_6.1.9_setup_linux_x86.bin in this folder
md5sum ti_cgt_c6000_6.1.9_setup_linux_x86.bin > ti_cgt_c6000_6.1.9_setup_linux_x86.bin.md5
cd ..
  • Clone arago repositories:
cd ~/oe
git clone http://arago-project.org/git/arago.git
git clone http://arago-project.org/git/arago-bitbake.git
git clone http://arago-project.org/git/arago-oe-dev.git
  • Prepare environment for build:
cd ~/oe
cp arago/setenv.sample arago/setenv
cp arago/conf/local.conf.sample arago/conf/local.conf
source arago/setenv
  • Build
cd ~/oe
MACHINE=da850-omapl138-evm bitbake u-boot arago-gst-image
  • Generated files can be found at:
u-boot: ~/oe/arago-tmp/deploy/images/da850-omapl138-evm/u-boot-da850-omapl138-evm.bin
Kernel: ~/oe/arago-tmp/deploy/images/da850-omapl138-evm/uImage-da850-omapl138-evm.bin
RFS   : ~/oe/arago-tmp/deploy/images/da850-omapl138-evm/arago-gst-image-da850-omapl138-evm.tar.gz

Development Kernel

This is a development branch with patches which haven't yet been pushed and/or accepted upstream yet. This kernel can be used with the root filesystem built above via arago. Currently one must build this kernel version outside of Arago though it is possible to locally modify the bitbake recipe to point at this kernel if so desired.

LCDC Driver

The branch contains support support for DVI output, requires a custom adapter board, via the LCDC peripheral. It also includes support for double buffering of the LCDC framebuffer. Here is a recipe to build for DA850. Nevermind that the name of the git tree indicates DA830 as it supports both.

$ git clone git://arago-project.org/git/people/martin/linux-da830.git
$ git checkout -b test origin/fbdev_sekhar
$ cd linux-da830
$ make ARCH=arm da850_omapl138_defconfig
$ make ARCH=arm menuconfig
# From menuconfig select: System Type --> TI DaVinci Implementations -->
                                               TI DA850/OMAP-L138/AM18xx Reference Platform -->
                                                    Select UI board type (DVI Adapter board) 
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage

VPIF Driver

VPIF capture and display are present in the kernel and exposed via the Linux V4L2 interface. To build:

$ git clone git://arago-project.org/git/people/martin/linux-da830.git
$ git checkout -b test origin/fbdev_sekhar
$ cd linux-da830
$ make ARCH=arm da850_omapl138_defconfig
$ make ARCH=arm menuconfig

In menuconfig make these changes

System Type --->
    TI DaVinci Implementations --->
        [*] TI DA850/OMAP-L138/AM18xx Reference Platform
               Select UI board type (UI Expander board)  --->
                 (X) UI Expander board
              Select peripherals connected to UI expander board (Video Port Interface)  ---> 
                 (X) Video Port Interface  

Device Drivers  --->
    <*> Multimedia support  --->
        <*> Video For Linux
         [*]   Video capture adapters  --->
                  Encoders/decoders and other helper chips  --->
                    <*> Texas Instruments TVP514x video decoder  
                     -*- THS7303 Video Amplifier 
                     -*- ADV7343 video encoder 
                <*> DaVinci Video VPIF Display
                <*> DaVinci Video VPIF Capture
                -*- DaVinci VPIF Driver
$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage

Example

This example (Vpif_mmap_loopback.zip) requires the UI board from LogicPD which is shipped with the OMAP-L138 Developer's kit.

Include these boot args to configure the VPIF buffers.

vpif_capture.ch0_bufsize=831488 vpif_display.ch2_bufsize=831488

Attach a composite video source to the input at J6 on the UI card and a composite video sink to J4. The code might work for S-Video using different channels but I haven't tried that. Build the example code (attached) and run like so.

$ # Here m 1 --> PAL
$ #           0 --> NTSC
$ #          p 0 --> disable printing
$ ./vpif_mmap_loopback -m 1 -p 0  

This copies the input to the output for 20 seconds then stops. NB: the chroma component is not copied due to performance limitations (not sure root cause atm) so the resultant video sink is more gray than you might expect. Also if there is no video present on the input when the program is started then this error is printed and the program exists. i.e. make sure you have video input present before running the app.

VIDIOC_S_INPUT
: Invalid argument
Error in opening capture device for channel 0