On Wed, 2005-05-18 at 19:27 +0200, Nicolas Huillard wrote:
I took the time make have softdevice working, and I'm really pleased of it. Join the softdevice-devel ML on BerliOS if you're interested.
Here's what I have done:
1. Patched my kernel (2.6.10) with the cle266 framebuffer patch from http://patcher2k.012webpages.com/ 2. Built a kernel with the cle266 framebuffer as a module and no VESA frambuffer 3. Grabbed DirectFB and DFB++ from CVS. 4. Built DirectFB as a debian package and installed the 3 or 4 packages it created (dependency on libflash-dev which didn't exist in Debian testing!). 5. Built DFB++ and installed to /usr/local 6. Grabbed softdevice from CVS 7. Built the softdevice plugin with a couple of tweaks to the Makefile for locations of libavcodec, DirectFB, etc. 8. Put the following in /etc/fb.modes (gleaned from various sources): mode "720x576 50Hz 16bit" geometry 720 576 720 576 16 timings 31208 144 40 32 10 128 3 bcast true endmode
mode "768x576-50i" geometry 872 576 872 576 16 timings 59550 24 102 0 0 80 1 laced true hsync high vsync high endmode
9. Put the following in /etc/directfbrc (gleaned from softdevice mailing list): mode=720x576 depth=32 pixelformat=ARGB disable-module=lirc disable-module=joystick disable-module=cle266 no-vt
If I modprobe the module and do a dfbinfo (as any user): laz@vdr-tng vdr-1.3.24 $ dfbinfo (*) DirectFB/Config: Parsing config file '/etc/directfbrc'.
---------------------- DirectFB v0.9.23 --------------------- (c) 2000-2002 convergence integrated media GmbH (c) 2002-2004 convergence GmbH -----------------------------------------------------------
(*) DirectFB/Core: Single Application Core. (2005-05-18 19:38) (*) Direct/Memcpy: Using SSE optimized memcpy() (*) Direct/Modules: suppress module 'joystick' (*) Direct/Modules: suppress module 'lirc' (*) DirectFB/Genefx: MMX detected and enabled (*) Direct/Modules: suppress module 'cle266' (*) DirectFB/Graphics: VIA/S3G UniChrome 0.4 (-) (*) DirectFB/Core/WM: Default 0.2 (Convergence GmbH) (!!!) *** UNIMPLEMENTED [fusion_reactor_set_lock] *** [../../../lib/fusion/reactor.c:802]
Screen (00) FBDev Primary Screen (primary screen) Caps: VSYNC POWER_MANAGEMENT
Layer (00) FBDev Primary Layer (primary layer) Type: GRAPHICS Caps: SURFACE BRIGHTNESS CONTRAST SATURATION
Layer (01) VIA Unichrome Video Type: GRAPHICS VIDEO STILL_PICTURE Caps: SURFACE OPACITY SCREEN_LOCATION DEINTERLACING DST_COLORKEY LEVELS SCREEN_POSITION SCREEN_SIZE
Layer (02) VIA Unichrome DVD Subpicture Type: GRAPHICS VIDEO STILL_PICTURE Caps: SURFACE OPACITY
All looked good until I tried to start vdr with -P'softdevice -vo dfb:' when I got: vdr: /home/vdr/plugins/libvdr-softdevice.so.1.3.24: undefined symbol: dts_frame
:-(
I needed to make another adjustment to the makefile, replacing the FFMPEGLIBS line with: FFMPEGLIBS = `ffmpeg-config --libs avcodec avformat postproc`
Now it's sorted and runs, although I can't see it because I'm testing it over ssh! I'll see if it is really working later on (looks good from the output).
CPU usage seems to sit around 43%, which seems higher than it was using X and xine but, presumably, it is less memory hungry like this, and also easier to start up!
;)
Cheers,
Laz