Geexbox
From CourvilleWiki
Modifications for the epia box
I use the geexbox mini media distribution on the machine under my TV: http://www.geexbox.org
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 devel@geexbox.org--2004 http://www.geexbox.org/arch tla get -A devel@geexbox.org--2004 geexbox--main--1 tla update
- in order to avoid crappy colors integrated kernel patch for via-framebuffer support from http://davesdomain.org.uk/viafb/ retreivable directly at http://davesdomain.org.uk/viafb/viafb-0.1.1b.patch. Also a proper fb.modes is required which can be found at http://davesdomain.org.uk/viafb/fb.modes
- I use the following fb mode:
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 endmode
- integrated kernel patch avoiding via-rhine after a suspend to resume pxe boot http://www.courville.org/code/epia/80_via-rhine-pxeboot.diff 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
packages/linux/config/linux.i386.conf Processor family -> (X) CyrixIII/VIA-C3 Device Drivers -> Graphics support -> <*> VIA CLE266 support (EXPERIMENTAL)
- probably more stuff could be integrated following what did epios http://www.epios.net/
- patched files:
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 :-(
- cvidix works with vesafb and not viafb
- best config for my tv is 1360x768 with cvidix or vidix but
- cvidix works with vesafb not with viafb
- vidix is broken on unichrome pro (cn400) and works on unichrome (cle266) when viafb is DISABLED (BTW never put vesafb with viafb)!!!
- 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>
MEMO
- 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

