Difference between revisions of "How to get the Geexbox distribution"

From IGEP - ISEE Wiki

Jump to: navigation, search
 
(3 intermediate revisions by 2 users not shown)
Line 6: Line 6:
 
* OpenGL|ES acceleration
 
* OpenGL|ES acceleration
 
* DSP-accelerated media playback with GStreamer (work in progress)
 
* DSP-accelerated media playback with GStreamer (work in progress)
 +
 +
GeeXboX is currently being developed under the  [http://www.openbricks.org OpenBricks] project, an enterprise-grade embedded Linux framework that provides easy creation of custom distributions for industrial embedded devices.
  
 
This How-To is meant to be a starting point for people to learn install a GeeXboX image for IGEP v2 devices as quickly and easily as possible.
 
This How-To is meant to be a starting point for people to learn install a GeeXboX image for IGEP v2 devices as quickly and easily as possible.
Line 31: Line 33:
  
 
* The GeeXboX website ( http://www.geexbox.org )
 
* The GeeXboX website ( http://www.geexbox.org )
 +
* The OpenBricks website (http://www.openbricks.org )
 
* The Enna website ( http://enna.geexbox.org )
 
* The Enna website ( http://enna.geexbox.org )
  
Line 37: Line 40:
 
<span style="color: rgb(255, 0, 0);">'''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 we recommend using one of the release branches. '''Use ONLY for development purposes.'''</span>  
 
<span style="color: rgb(255, 0, 0);">'''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 we recommend using one of the release branches. '''Use ONLY for development purposes.'''</span>  
  
GeeXbox uses Mercurial as a revision control system, so you will install the mercurial package for your host syste. On an Ubuntu-based system this will be done with,
+
GeeXboX and OpenBricks use 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
 
  $ sudo apt-get install mercurial
  
Now, the first thing you will do is download the sources from Mercurial GeeXboX repository.
+
Now, the first thing you will do is download the sources from Mercurial OpenBricks repository (which is where bleeding-edge GeeXboX development is done).
  
  $ hg clone http://hg.geexbox.org/geexbox
+
  $ hg clone http://hg.openbricks.org/openbricks
  
Next, enter to geexbox directory and edit with your preferred editor the config/options file. Set
+
Next, configure OpenBrics to build a GeeXboX image for the OMAP3 platform. Run
  
  TARGET_ARCH=arm
+
  $ make menuconfig
TARGET_CPU=cortex-a8
 
SERVICES=yes
 
XORG_DRIVERS="omapfb"
 
PULSEAUDIO=no
 
GSTREAMER=yes
 
DEVTOOLS=yes
 
  
Finally build the distribution with
+
and set
  
  $ make flat
+
  Flavour -> GeeXboX
  
The result will be in geexbox-flat-devel-*.arm.eglibc directory
+
General Setup -> Target architecture (arm)
 +
              -> Target sub-architecture (ARMv7 / Cortex)
 +
              -> Target platform (OMAP3)
 +
              -> Target CPU (cortex-a8)
 +
              -> FPU optimizations (NEON)
 +
Settings -> Target Images -> Flat root
 +
Features -> Audio -> deselect PulseAudio (recommended, for now PulseAudio has been tested only on x86)
  
== Make a bootable MMC card with GeeXbox ==
+
If you want to enable OpenGL|ES acceleration set
  
First prepare the SD card the following way:
+
Features -> Enable non-free components
* create one boot FAT32 (type 0B) partition, any size, I took 8MB
+
Features -> Hardware Accelerators -> EGL
* create one rootfs EXT2 partition.
+
                                  -> OpenGL
 +
                                  -> OpenGL|ES
 +
                                  -> OpenVG
 +
                                  -> EGL provider (SGX)
 +
                                  -> OpenGL|ES provider (SGX)
 +
                                  -> OpenVG provider (SGX)
  
Then copy the uImage and boot.ini files to FAT32 partition
+
If you want to enable OpenMAX acceleration set
  
  $ cp geexbox-flat-devel-*.arm.eglibc/boot/boot.ini /media/boot
+
  Features -> Enable non-free components   
  $ cp geexbox-flat-devel-*.arm.eglibc/boot/uImage /media/boot
+
  Features -> Hardware Accelerators -> OpenMAX
 +
                                  -> OpenMAX provider (TI OpenMAX IL)
  
Next, edit the geexbox-flat-devel-*.arm.eglibc/etc/video file and disable the OpenGL support
+
If you want to enable TI DSP acceleration (lightweigth alternative to OpenMAX for DSP acceleration)
  
  OPENGL=no
+
  Features -> Enable non-free components
 +
Features -> Hardware Accelerators -> TI C64x DSP
  
Finally, copy the geexbox-flat-devel-*.arm.eglibc contents to EXT2 partition.
+
Optionally select other features or packages you may need.
  
$ fakeroot cp -dpfa -R geexbox-flat-devel-*.arm.eglibc/* /media/rootfs/
+
Exit and save the configuration, then build with
  
With default environment the IGEP v2 detects the boot.ini script which contains all the necessary instructions for the OS to auto-boot.
+
$ make
  
== Annex: Known issues and solutions ==
+
The resulting rootfs will be placed in the binaries directory directory
  
=== Requested 'dbus-1 >= 1.2.16' but version of dbus is 1.1.20 ===
+
== Make a bootable MMC card with GeeXbox ==
  
The libnih package fails, libnih is compiled for host and for target so your host system needs at least version 1.2.16 of dbus-1.
+
First prepare the SD card the following way:
 +
* create one boot FAT32 (type 0B) partition, any size, I took 8MB
 +
* create one rootfs EXT2 partition.
  
Distributions affected:
+
Then copy the uImage and boot.ini files to FAT32 partition (paths relative to the rootfs location)
  
* Ubuntu 8.04 LTS (Hardy Heron)
+
$ cp boot/boot.ini /media/boot
 +
$ cp boot/uImage /media/boot
  
=== BUILD    alsa make: *** [flat] Error 1 ===
+
Finally, copy the rootfs contents to EXT2 partition (paths relative to the rootfs location)
  
Error :
+
$ fakeroot cp -dpfa -R * /media/rootfs/
  
+ scripts/build alsa-lib
+
With default environment the IGEP v2 detects the boot.ini script which contains all the necessary instructions for the OS to auto-boot.
+ scripts/build alsa-utils
 
+ '[' no = yes ']'
 
make: *** [flat] Error 1
 
  
Append to packages/alsa/build
+
== Annex: Known issues and solutions ==
 
 
exit 0
 
 
 
Should be fixed in [http://hg.geexbox.org/geexbox/rev/9551cf55a78f r8303].
 
  
 
=== gzip: stdin: invalid compressed data--crc error ===
 
=== gzip: stdin: invalid compressed data--crc error ===

Latest revision as of 12:54, 19 October 2010

Overview

GeeXboX is a free embedded Linux distribution which aims at turning your computer into a so called HTPC (Home Theater PC) or Media Center. You can use it on a diskless computer, the whole system being loaded in RAM. Some points to note:

  • Whole system being loaded in RAM.
  • OpenGL|ES acceleration
  • DSP-accelerated media playback with GStreamer (work in progress)

GeeXboX is currently being developed under the OpenBricks project, an enterprise-grade embedded Linux framework that provides easy creation of custom distributions for industrial embedded devices.

This How-To is meant to be a starting point for people to learn install a GeeXboX image for IGEP v2 devices as quickly and easily as possible.

Requirements

  • A GNU/Linux-based host system.
  • A SD card

Feedback and Contributing

If you want to contribute to GeeXboX please subscribe to the development list (devel at geexbox.org).

Creating articles in the wiki is a collaborative process, at any point, if you see a mistake you can contribute to this article.

Please, use the discussion tab for user comments. This is useful to separate page content and the discussion thereof and also, if you don't want to give normal users the right to edit the page but still want user contributed notes.

Editing permissions are restricted to registered users. Register in the main IGEP site and you will have single sign-on.

Consult the User's Guide for information on using the wiki software.

There is a set of Wiki contribution guidelines.

References

How to build the development branch

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 we recommend using one of the release branches. Use ONLY for development purposes.

GeeXboX and OpenBricks use 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 OpenBricks repository (which is where bleeding-edge GeeXboX development is done).

$ hg clone http://hg.openbricks.org/openbricks

Next, configure OpenBrics to build a GeeXboX image for the OMAP3 platform. Run

$ make menuconfig

and set

Flavour -> GeeXboX
General Setup -> Target architecture (arm)
              -> Target sub-architecture (ARMv7 / Cortex)
              -> Target platform (OMAP3)
              -> Target CPU (cortex-a8)
              -> FPU optimizations (NEON)
Settings -> Target Images -> Flat root
Features -> Audio -> deselect PulseAudio (recommended, for now PulseAudio has been tested only on x86)

If you want to enable OpenGL|ES acceleration set

Features -> Enable non-free components
Features -> Hardware Accelerators -> EGL
                                  -> OpenGL
                                  -> OpenGL|ES
                                  -> OpenVG
                                  -> EGL provider (SGX)
                                  -> OpenGL|ES provider (SGX)
                                  -> OpenVG provider (SGX)

If you want to enable OpenMAX acceleration set

Features -> Enable non-free components     
Features -> Hardware Accelerators -> OpenMAX
                                  -> OpenMAX provider (TI OpenMAX IL)

If you want to enable TI DSP acceleration (lightweigth alternative to OpenMAX for DSP acceleration)

Features -> Enable non-free components
Features -> Hardware Accelerators -> TI C64x DSP

Optionally select other features or packages you may need.

Exit and save the configuration, then build with

$ make

The resulting rootfs will be placed in the binaries directory directory

Make a bootable MMC card with GeeXbox

First prepare the SD card the following way:

  • create one boot FAT32 (type 0B) partition, any size, I took 8MB
  • create one rootfs EXT2 partition.

Then copy the uImage and boot.ini files to FAT32 partition (paths relative to the rootfs location)

$ cp boot/boot.ini /media/boot
$ cp boot/uImage /media/boot

Finally, copy the rootfs contents to EXT2 partition (paths relative to the rootfs location)

$ fakeroot cp -dpfa -R * /media/rootfs/

With default environment the IGEP v2 detects the boot.ini script which contains all the necessary instructions for the OS to auto-boot.

Annex: Known issues and solutions

gzip: stdin: invalid compressed data--crc error

Error :

UNPACK   expat
gzip: stdin: invalid compressed data--crc error
tar: Child returned status 1
tar: Exiting with failure status due to previous errors
make: *** [flat] Error 2

Use gzrecover to recover the expat file

$ gzrecover sources/expat/expat-2.0.1.tar.gz
$ mv expat-2.0.1.tar.recovered expat-2.0.1.tar
$ gzip expat-2.0.1.tar
$ mv expat-2.0.1.tar.gz  sources/expat/

Distributions affected: