DSP Bridge

This will be an attempt to explain how to build a DSP Bridge for the BeagleBoard.

First we will need to download, extract and install some binaries from TI at from here. After installation you will find the files needed in lib/dsp.

Now we will need to build the kernel drivers:

git clone git://gitorious.org/~felipec/linux-omap/felipec.git
git checkout -b felipec v2.6.32-felipec1
cd linux-omap
make omap3_beagle_defconfig
make

The uImage will be built with the following commands:

make INSTALL_MOD_PATH=/media/rootfs modules_install

Next copy the binaries from the first step from lib/dsp to the root filesystem /lib/dsp on the SD.

modprobe bridgedriver base_img=/lib/dsp/baseimage.dof

If you get an error here then you may need to load the baseimage.dof dynamically. Now lets look at how to make the DSP do something.

gst-OpenMax

git clone git://github.com/felipec/libdspbridge.git
cd libdspbridge
make DESTDIR=rootfs install
git clone git://github.com/felipec/libomxil-ti.git
cd libomxil-ti
make BRIDGE_CFLAGS=-I../libdspbridge/inc BRIDGE_LIBS=-L../libdspbridge/lib DESTDIR=rootfs install

Inside ScratchBox…

git clone git://github.com/felipec/gst-openmax.git
cd gst-openmax
git checkout -b omap origin/omap
./autogen.sh --noconfigure
./configure --prefix=/usr
make DESTDIR=rootfs install

Kernel Boot Argument for the video settings will be changed to:

video=omapfb:vram:2M,vram:4M

Copy an .AVI file to the sd card (or download one over your network) then at the console enter these commands being sure to change the file name to your file:


gst-launch-0.10 filesrc location="your_file_here.avi" ! avidemux ! omx_mpeg4dec ! omapfbsink

BeagleBoard Android

This is not going to be a step by step guide or a resource so use this at your own risk…

Hardware needed: BeagleBoard, SD card (4gb, see partition info below), USB mini A cable, USB 2.o hub self-powered, USB keyboard, USB mouse, Serial cable/null modem (IDC10>DB9) see hacked cable description below, HDMI cable, Host PC, HDMI monitor.

See the BeagleBoard boot up tutorials at BeagleBoard.org

I hacked a serial cable together by just connecting the tx to the rx and vise versa on the host pc mobo and the BB. Make sure to connect the ground also.

SD card format:

First download an android distro pre-compiled for the Beagleboard target. An easy one http://labs.embinux.org/index.php/Main_Page

(Rowboat is a little more refined)

To Format SD do this

Copy MLO ,Uboot.bin, uImage to the FAT partition, then copy the root file system to the Ext3 partition.

Plug the SD into the Beagle and the rest of the supported cables such as Hub, HDMI etc… On the host computer you will need to start a terminal and run minicom, putty, Tera Term or Hyperterminal.  At the terminal prompt after the Beagle powers on and you get to a Uboot prompt. Type the following commands:

setenv bootargs console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p2 video=omapfb.mode=dvi:1280x720MR-24@50 init=/init rootfstype=ext3 rw rootdelay=1 nohz=off androidboot.console=ttyS2 ( I will explain these environment variables in a later post and also how to save them to make the Beagle boot like you want it to.)

mmc init

fatload mmc 0 0x80300000 uImage

bootm 0x80300000

After this you should see the Uboot terminal with out put. Please be patient as the first boot tends to be slightly longer and could take several minutes. After boot you can drop into the Android root and play with the adb#. You will need to issue a few commands to load market place apps. Next time let us examine the Uboot environment and I will provide pictures.

Android on 720p

Just a quick post to show that I have made an Android compile based on EMBinux work. Thanks to MRU and others on beagle IRC for pointing me in the right direction for keyboard/USB hub support.  Also, be sure to chmod the system directory or there will be errors. Logcat has much data for debugging. Changing to ttyS2 from the uboot terminal killed my minicom session. I hear putty is more stable or maybe I have a hardware/software problem on my development PC.

720p android

Does this look cool or what?