From OMAPpedia

Jump to: navigation, search


[edit] Introduction

GeeXboX is a embedded Linux distribution focused on multimedia and video playback. It is available for regular x86-based and PowerPC-based computers and ARM embedded devices. GeeXboX comes with its own multi-architectures toolchain and cross-compilation engine. It is fully customizable and provides 400+ multimedia packages. It relies on a state-of-the-art embedded Linux system: BusyBox, uClibc/Glibc/eGlibc, and media players such as MPlayer, Xine or Gstreamer. It can be configured to run with or without X Windowing system. Its frontend Media Center application is called Enna

[edit] References

[edit] ARM Supported Hardware

GeeXboX has its own toolchain and can be configured for endless configuration and ARM chips. By default, it generates ARMv7 compatible code, with Cortex-A8 and NEON optimizations but can be tuned for Cortex-A9 as well.

It currently fully support OMAP3-based boards, including (out-of-the-box):

And the following OMAP4-based boards (out-of-the-box):

Current hardware support includes: all basic peripherals, WiFi/FM chip, PowerVR SGX540 GPU and Ducati DSP.

Support for other OMAP-based boards might be added by kernel patches and extended configuration.

[edit] Featured Optimizations

GeeXboX features multiple software optimizations to get the best our of the available hardware capabilities.

[edit] Retrieving GeeXboX

Note: The development branch is where the development work takes place and you should use this if you're after to work with the latest cutting edge developments. It is possible trunk can suffer temporary periods of instability while new features are developed and if this is undesirable, it is recommended using one of the release branches. Use ONLY for development purposes.

GeeXbox uses Mercurial as a revision control system, so you will install the mercurial package for your host system. On an Ubuntu-based system this will be done with,

   # sudo apt-get install mercurial

Now, the first thing you will do is download the sources from Mercurial GeeXboX repository.

   # hg clone

[edit] Building Sources

Next, enter to geexbox directory and edit with your preferred editor the config/options file. Set


Finally build the distribution with

   # make flat

The result will be in geexbox-flat-devel-*.arm.eglibc directory

[edit] Installation on SD Card

First prepare the SD card the following way:

Then copy the uImage file to FAT32 partition

   # cp geexbox-flat-devel-*.arm.eglibc/boot/uImage   /media/boot

N.B: If running on IGEPv2 board, also copy the boot.ini file, it contains the whole U-Boot set of commands for automatic bootup.

   # cp geexbox-flat-devel-*.arm.eglibc/boot/boot.ini /media/boot

Next, edit the geexbox-flat-devel-*.arm.eglibc/etc/video file and enable/disable OpenGL support


Finally, copy the geexbox-flat-devel-*.arm.eglibc contents to EXT2 partition.

   # fakeroot cp -dpfa -R geexbox-flat-devel-*.arm.eglibc/* /media/rootfs/

[edit] Booting

If your board doesn't support automatic boot through boot.ini, you can setup the following U-Boot environment variables.

   setenv geexbox-args "console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait init=/linuxrc lang=en keymap=qwerty remote=default_remote receiver=default_receiver hdtv"
   setenv omap-args "omapfb.mode=dvi:1280x720MR-32@60 omapfb.vram=0:8M,1:4M mem=442M"
   setenv bootargs "${geexbox-args} ${omap-args}"

Adapt the resolution and memory to your given board.

Then boot the distribution from MMC:

   fatload mmc 0:1 80100000 uImage
   bootm 80100000

[edit] Troubleshooting

If you want to contribute to GeeXboX or need some help, you can subscribe to the development list (devel at

Personal tools