LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - General (http://www.linuxquestions.org/questions/linux-general-1/)
-   -   Disfunctional DirectFB-0.9.25 and 1.0.0 (http://www.linuxquestions.org/questions/linux-general-1/disfunctional-directfb-0-9-25-and-1-0-0-a-546036/)

basileus 04-14-2007 12:21 PM

Disfunctional DirectFB-0.9.25 and 1.0.0
 
Hi!

I'm building a DVB box from the scratch using Gentoo (what else?). I intend to use vdr as my pvr software, using vdr-softdevice in DirectFB mode. I do not wish to use X, as it create a yet another set of problems and unnecessary complexity. I'm having trouble with the DirectFB versions distributed via portage. Basic framebuffer itself works like a charm, but DirectFB doesn't. I've already scoured through the web, usenet and README's but found nothing that I could use.

My hardware:

AMD Duron 750Mhz, 320MB memory, 80GB HD, Matrox G200, Technotrend C-1500 dvb-c card

Software:

Kernel 2.6.19-r5 (gentoo patched)
DirectFB 0.9.25.1 / DirectFB 1.0.0
DFB++ 0.9.23 / DirectFB 0.9.25

If I try launching _any_ DirectFB app (vdr w/ softdevice, mplayer, dfbg, dfb demo programs etc.) I get errors like this:

(*) DirectFB/Core: Single Application Core. (2007-04-14 16:37)
(!) Direct/Modules: Could not open module directory `/usr/lib/directfb-1.0-0/systems'!
--> No such file or directory
(!) DirectFB/core/system: No system found!
(#) DirectFBError [DirectFBCreate() failed]: No (suitable) implementation found!

/usr/lib/directfb-1.0.0 contains only these:

gfxdrivers inputdrivers interfaces wm

If I create a link from gfxdrivers to system, I will get this instead:

(*) DirectFB/Core: Single Application Core. (2007-04-14 16:37)
(!) Direct/Modules: Module 'libdirectfb_matrox.so' did not register itself after loading! Trying default module constructor...
(!) Direct/Modules: ... even did not register after explicitly calling the module constructor!
(!) DirectFB/core/system: No system found!
(#) DirectFBError [DirectFBCreate() failed]: No (suitable) implementation found!

If I have the link systems -> gfxdrivers, this is what strace gives me (only essential parts):

---snip---
open("/usr/lib/directfb-1.0-0/systems/libdirectfb_matrox.so", O_RDONLY) = 4
---snip---
open("/etc/ld.so.cache", O_RDONLY) = 4
---snip---
open("/lib/libsysfs.so.2", O_RDONLY) = 4
---snip---
write(2, "(!) Direct/Modules: Module \'libd"..., 127(!) Direct/Modules: Module 'libdirectfb_matrox.so' did not re
gister itself after loading! Trying default module constructor...
) = 127
write(2, "(!) Direct/Modules: ... even did"..., 95(!) Direct/Modules: ... even did not register after explicitly
calling the module constructor!
) = 95

If I install vanilla directfb-1.0.0 from http://www.directfb.org I don't get these messages. I have not yet thoroughly tested whether I could use vanilla directfb instead, but I'd rather not because using it will bring other problems along.

Here are some hopefully relevant pieces of information about my system:

/etc/make.conf:

USE="-ipv6 mmx sysfs X acpi alsa apache2 dbus directfb dvb fbcon ffmpeg hal lm_sensors matrox mp3 nls ogg pam sam
ba theora truetype unicode usb vorbis xv xvid"
VIDEO_CARDS="mga matrox"

/etc/portage/package.use:

media-video/vdr dvbplayer jumpplay debug cmdsubmenu setup-plugin submenu subtitles
media-video/mplayer X xv
dev-libs/DirectFB -fbcon -fusion jpeg mpeg png

/etc/portage/package.keywords:

sys-apps/hwinfo ~x86
sys-fs/sysfsutils ~x86
dev-libs/DirectFB ~x86
dev-libs/DFB++ ~x86

/etc/direcfbrc:

system=fbdev
fbdev=/dev/fb0
debug
busid=1:0:0
depth=16
hardware

/etc/fb.modes (created with GTF):

mode "80low"
# PCLK: 48.71 MHz, H: 48.32 kHz, V: 80.00 Hz
geometry 768 576 768 576 16
timings 20531 120 40 24 1 80 3
hsync low
vsync high
endmode
mode "80hz"
# PCLK: 88.50 MHz, H: 64.32 kHz, V: 80.00 Hz
geometry 1024 768 1024 768 16
timings 11299 176 64 32 1 112 3
hsync low
vsync high
endmode

lsmod|grep fb:

i2c_matroxfb 4096 0
i2c_algo_bit 7304 1 i2c_matroxfb
matroxfb_base 26016 2 i2c_matroxfb
matroxfb_DAC1064 10624 1 matroxfb_base
matroxfb_accel 4160 1 matroxfb_base
cfbcopyarea 3584 1 matroxfb_accel
cfbimgblt 2688 1 matroxfb_accel
cfbfillrect 3648 1 matroxfb_accel
matroxfb_Ti3026 5568 1 matroxfb_base
matroxfb_g450 5888 1 matroxfb_base
g450_pll 5440 2 matroxfb_DAC1064,matroxfb_g450
matroxfb_misc 10864 7 i2c_matroxfb,matroxfb_base,matroxfb_DAC1064,matroxfb_accel,matroxfb_Ti3026,matroxfb_g450,g450_pll

lspci -vv (only the Matrox card):

01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 AGP (rev 01) (prog-if 00 [VGA])
Subsystem: Matrox Graphics, Inc. Millennium G200 AGP
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 64 (4000ns min, 8000ns max), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 9
Region 0: Memory at dd000000 (32-bit, prefetchable) [size=16M]
Region 1: Memory at dfafc000 (32-bit, non-prefetchable) [size=16K]
Region 2: Memory at df000000 (32-bit, non-prefetchable) [size=8M]
Expansion ROM at dfae0000 [disabled] [size=64K]
Capabilities: [dc] Power Management version 1
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [f0] AGP version 1.0
Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW- AGP3- Rate=x1,x2
Command: RQ=32 ArqSz=0 Cal=0 SBA+ AGP+ GART64- 64bit- FW- Rate=x2

basileus 05-25-2007 01:39 AM

This comes a bit late, but I finally fixed the problem: I had during some of my tests removed the USE flag "fbcon", which was of course required for all this to function properly.


All times are GMT -5. The time now is 09:27 PM.