Main Page‎ > ‎



Modifications for the epia box

I use the geexbox mini media distribution on the machine under my TV:

My epia box is diskless and I use a pxe boot configuration.

Here are the modifications I used to use on my LCD 16:9 TV (native resolution 1360x768).

  • retreive latest development release:
tla register-archive
tla get -A geexbox--main--1
tla update
mode "1360x768-60"
  # D: 85.034 MHz, H: 47.933 kHz, V: 60.294 Hz
  geometry 1360 768 1360 768 32
  timings 11760 252 16 23 1 126 3
  hsync high
  vsync high
  • integrated kernel patch avoiding via-rhine after a suspend to resume pxe boot Note that this patch is now integrated in geexbox mainstream.
  • added fbset (not the native dumb geexbox one) and DirectFB for enabling 1380x768 resolution (not working yet)
  • custom epia ezra c3 kernel configuration
Processor family -> (X) CyrixIII/VIA-C3             
Device Drivers -> Graphics support -> <*> VIA CLE266 support (EXPERIMENTAL)
patching file config/options
patching file packages/atitvout/build
patching file packages/fbset/build
patching file packages/fbset/config/fb.modes
patching file packages/fbset/install
patching file packages/fbset/unpack
patching file packages/fbset/url
patching file packages/linux/config/linux.i386.conf
patching file packages/linux/config/tvcard
patching file packages/linux/patches/90_viafb-0.0.3b.diff
patching file packages/lirc/config/lircd_marctv
patching file packages/lirc/config/lircd_marctv.conf
patching file packages/lirc/config/lircd_marctv.conf-before
patching file packages/lirc/config/lircd_marctv.conf-hauppauge350
patching file packages/lirc/config/lircd_tivo
patching file packages/lirc/config/lircd_tivo.conf
patching file packages/lirc/config/lircrc_marctv
patching file packages/lirc/config/lircrc_marctv-before
patching file packages/lirc/config/lircrc_marctv-hauppauge350
patching file packages/lirc/config/lircrc_tivo
patching file packages/lirc/install
patching file packages/MPlayer/config/mplayer.conf
patching file packages/network/config/network
patching file packages/network/config/nfs
patching file packages/s3switch/build
patching file packages/syslinux/config/isolinux.cfg
patching file packages/syslinux/install
patching file packages/tvout/config/tvout

The resulting global patch with a kernel using viafb is here. If you wish to still use the vesafb this is this one that works best: here.

Lessons learned

  • when configuring the kernel you need to enable one and only one of viafb and vesafb drivers
  • the processor is too light to allow smooth software scaling: we have to rely on hardware acceleration. Obervations and possible ways are detailed below:
    • viafb does not integrate yuv overlay thus we cannot rely on it to help
    • MPlayer contains vidix overlay acceleration code for unichrome vidix/drivers/unichrome_vid.c which supports only cle266 chipset (epiam) and not cn400 one (epiasp)
    • DirectFB has extensive hardware acceleration implemented in gfxdrivers/unichrome that we can rely on
  • epiasp specific: 1360x768 resolution is supported as a vesa mode in (32bpp, 16bpp): 184 16d (cf Vesa modes)
  • epiam specific: only 1368x768 mode is supported as a vesa mode in (32bpp, 16bpp): 900 877 which is not compatible with my tv :-(
  1. cvidix works with vesafb and not viafb
  2. best config for my tv is 1360x768 with cvidix or vidix but
    1. cvidix works with vesafb not with viafb
    2. vidix is broken on unichrome pro (cn400) and works on unichrome (cle266) when viafb is DISABLED (BTW never put vesafb with viafb)!!!
    3. 1360 is absent from unichrome (cle266) and 1368 mode that is the closest one present has timing issues on the tv
  • to get full resolution with mplayer use -vo fbdev2 -fs -zoom -xy <screen-width>


  • for applying patch:
diff -Naur geexbox-orig geexbox > geexbox-`date +%Y%m%d`.patch
tla add-id newfile
tla changes --diffs > geexbox-`date +%Y%m%d`.patch