[vdr] VDR crash with DirectFB+softdevice in a Nova-t (Correct
mail version)
Nicolas Huillard
nhuillard at e-dition.fr
Thu Jun 2 11:16:55 CEST 2005
Scanning DVB and crash do not seem to be related.
It seems to crash in DirectFB, somewhere related to fusion (ie.
multi-application core).
Could you try to recompile DirectFB in single application core, and do
not load the fusion kernel module.
PS : you may be better helped on the directfb-users mailing-list if it's
really related to DirectFB...
Rose M a écrit :
> Sorry my last mail is not quite good. This is correct
> mail.
>
> Hello list!
>
> Firstly I have to say this mail is very long cause I
> attached lot of information to be helped.
> My problem is that I have vdr running in my system
> Fedora Core 2 with kernel 2.6.10. I could see image
> from some days (two or three maximum) but it's not
> quite often. The system can't begin to take image
> unless it has a full-scan made when computer is
> powered on, but also it crashes lots of times
> before,
> so related with this problem I use a script to get
> all
> working.
>
> My script consist in these lines:
>
> #commands and lines used:
> DVBDIR="../DVB"
> VDRPRG00="export LD_ASSUME_KERNEL=2.4.1"
> VDRPRG01="export LANG=en.US"
> VDRPRG02="export LC_TYPE=POSIX"
> VDRPRG="./vdr -P softdevice -P 'remote -i
> /dev/input/event3' -P femon -P subtitles"
>
> SCANCMD="../linuxtv-dvb-apps-1.1.0/util/scan/scan-all"
> LSMOD="`/sbin/lsmod | grep -n 'tda' | wc -l`"
> KILL="/usr/bin/killall -q -TERM"
>
> # Load driver if it hasn't been loaded already:
> if [ $LSMOD -eq 0 ] ; then
> (./terrestrial.sh; modprobe fusion;"$SCANCMD")
> fi
>
> PROB="`grep null /video/channels.conf|wc -l`"
>
> n1=0
>
> CHANLINES="`cat /video/channels.conf |wc -l`"
> #This is used to have a complete channels.conf to my
> config and not to be in a bug
> while ([ "$CHANLINES" -lt 10 ] && [ $n1 -lt 5 ] || [
> "$PROB" -gt 0 ] && [ $n1 -lt 5 ]) do
> "$SCANCMD"
> CHANLINES="`wc -l /video/channels.conf|cut -c1-2`"
> PROB="`grep null /video/channels.conf|wc -l`"
> n1=`expr $n1 + 1`
> done
>
> #Infinite bucle to have an scan in restart option
> and
> always vdr crushes and it could be "solved"
> while (true) do
> export LD_ASSUME_KERNEL=2.4.1
> export LANG=en.US
> export LC_TYPE=POSIX
> ./vdr -P softdevice -P 'remote -i
> /dev/input/event3' -P femon -P subtitles
> if test $? -eq 1; then (echo "Making a scan";
> "$SCANCMD") fi
> echo "Restarting VDR"
> done
>
>
> When I execute this script I take:
>
> -------------> ./script
> Inserting DVB modules into kernel
> saa7146: register extension 'dvb'.
> saa7146: register extension 'budget dvb'.
> saa7146: register extension 'budget_ci dvb'.
> saa7146: found saa7146 @ mem e2abee00 (revision 1,
> irq
> 5) (0x13c2,0x1011).
> DVB: registering new adapter (TT-Budget/WinTV-NOVA-T
>
> PCI).
> tda1004x: Detected Philips TDA10045H.
> tda1004x: Detected Philips TD1316 tuner.
> DVB: registering frontend 0:0 (Philips TDA10045H)...
> TT-Budget/WinTV-NOVA-T PCI adapter 0 has MAC addr =
> 00:d0:5c:23:19:fc
> saa7146: register extension 'budget dvb /w video
> in'.
>
>
> Then I make a full scan, cause if I don't do it, I
> can't get image in a long time or in a lot of
> crashes.
>
>
> This is the result of making a full scan in my area;
> then channels.conf:
>
> :Canals sintonitzats
>
> TVC;TV3:650000:I0B8C23D23M64T8G4Y0:T:27500:111:112,114:113:0:801:0:0:0
>
> TVC;K3/33:650000:I0B8C23D23M64T8G4Y0:T:27500:121:122,124:123:0:802:0:0:0
>
> TVC;3/24:650000:I0B8C23D23M64T8G4Y0:T:27500:131:132:123:0:803:0:0:0
> TVC;Canal
>
> Pilot:650000:I0B8C23D23M64T8G4Y0:T:27500:141:142,143:0:0:804:0:0:0
> Televisióspañ;TVE
>
> 1:794000:I0B8C23D12M64T8G4Y0:T:27500:101:103,104:102:0:1377:0:0:0
> Televisióspañ;TVE
>
> 2:794000:I0B8C23D12M64T8G4Y0:T:27500:201:203,204:202:0:1441:0:0:0
> ANTENA 3;ANTENA
>
> 3:794000:I0B8C23D12M64T8G4Y0:T:27500:301:303:302:0:1121:0:0:0
>
> SOGECABLE;CANAL+:794000:I0B8C23D12M64T8G4Y0:T:27500:501:503:0:1:1057:0:0:0
> GESTEVISION
>
> TELECINCO;TELECINCO:794000:I0B8C23D12M64T8G4Y0:T:27500:401:403:402:0:1185:0:0:0
> Veo TV 1536;Veo
>
> TV:834000:I0B8C23D12M64T8G4Y0:T:27500:301:302:0:0:1536:0:0:0
> Net TV 1825;Net
>
> TV:834000:I0B8C23D12M64T8G4Y0:T:27500:401:402:0:0:1825:0:0:0
>
>
> I get problems like these:
>
> -------------->FIRST
> [dfb] Enumeratig display Layers
> Layer 0 FBDev Primary Layer Type: graphics
> Caps: brightness contrast saturation surface
> Layer 1 Matrox Backend Scaler Type: graphics
> picture
> video
> Caps: brightness contrast deinterlacing
> dst_colorkey
> screen_location surface
> [dfb] width = 640, height = 480
> [dfb] got fmt = 0x00418c04 bpp = 32
> [dfb] Using this layer for OSD: (FBDev Primary Layer
> -
> [640x480])
> osdSurface::
> - videoonly
> - flipping
> (!!!) *** WARNING [letting unprivileged
> IDirectFBDisplayLayer::GetSurface() call pass until
> cooperative level handling is finished] ***
> [idirectfbdisplaylayer.c:159 in
> IDirectFBDisplayLayer_GetSurface()]
> videoSurface::
> - videoonly
> [dfb] Configuring CooperativeLevel for Overlay
> [dfb] Configuring ColorKeying
> [dfb] Configuring CooperativeLevel for OSD
> [dfb] Using this layer for OSD: FBDev Primary Layer
> [dfb] Using this layer for Video out: Matrox Backend
> Scaler
> [dfb] (re)configuring Videolayer to 720 x 576
> (720x576)
> [dfb] (re)configured 0x08100609
> [softdevice] Video Out seems to be OK
> [softdevice] Initializing Audio Out
> [softdevice] Audio out seems to be OK
> [softdevice] A/V devices initialized, now
> initializing
> MPEG2 Decoder
> cSoftDevice::MakePrimaryDevice
> (!) [ 2947: 5.522] --> Caught signal 8 (at
> 0xb7a6f097, integer divide by zero) <--
> (!) [ 2917: 5.560] --> Caught signal 11 (at
> 0x6c65644c, invalid address) <--
> (!) Direct/Thread: Killing 'Fusion Dispatch' (2922)!
> Floating point exception
>
> ---------------------------> SECOND
> [dfb] Enumeratig display Layers
> Layer 0 FBDev Primary Layer Type: graphics
> Caps: brightness contrast saturation surface
> Layer 1 Matrox Backend Scaler Type: graphics picture
> video
> Caps: brightness contrast deinterlacing dst_colorkey
> screen_location surface
> [dfb] width = 640, height = 480
> [dfb] got fmt = 0x00418c04 bpp = 32
> [dfb] Using this layer for OSD: (FBDev Primary Layer -
> [640x480])
> osdSurface::
> - videoonly
> - flipping
> (!!!) *** WARNING [letting unprivileged
> IDirectFBDisplayLayer::GetSurface() call pass until
> cooperative level handling is finished] ***
> [idirectfbdisplaylayer.c:159 in
> IDirectFBDisplayLayer_GetSurface()]
> videoSurface::
> - videoonly
> [dfb] Configuring CooperativeLevel for Overlay
> [dfb] Configuring ColorKeying
> [dfb] Configuring CooperativeLevel for OSD
> [dfb] Using this layer for OSD: FBDev Primary Layer
> [dfb] Using this layer for Video out: Matrox Backend
> Scaler
> [dfb] (re)configuring Videolayer to 720 x 576
> (720x576)
> [dfb] (re)configured 0x08100609
> [softdevice] Video Out seems to be OK
> [softdevice] Initializing Audio Out
> [softdevice] Audio out seems to be OK
> [softdevice] A/V devices initialized, now initializing
> MPEG2 Decoder
> cSoftDevice::MakePrimaryDevice
> (!) [ 3126: 1.870] --> Caught signal 8 (at
> 0xb7a6f097, integer divide by zero) <--
> [softdevice] allocating picture buffer for resolution
> 720x576
> (!) Fusion/Lock: invalid skirmish
> (!) Fusion/Lock: invalid skirmish
> (!) [ 3086: 1.952] --> Caught signal 11 (at 0x3c,
> invalid address) <--
> [softdevice] pp-filter fd:a couldn't be initialized,
> [softdevice] switching postprocessing off !
> [dfb] (re)configuring Videolayer to 720 x 576
> (720x576)
> (!) [ 3127: 1.967] --> Caught signal 11 (at 0x1c,
> invalid address) <--
> (!) Direct/Thread: Killing 'Fusion Dispatch' (3091)!
> Floating point exception
>
> ---------------------------->THIRD
> [dfb] Enumeratig display Layers
> Layer 0 FBDev Primary Layer Type: graphics
> Caps: brightness contrast saturation surface
> Layer 1 Matrox Backend Scaler Type: graphics picture
> video
> Caps: brightness contrast deinterlacing dst_colorkey
> screen_location surface
> [dfb] width = 640, height = 480
> [dfb] got fmt = 0x00418c04 bpp = 32
> [dfb] Using this layer for OSD: (FBDev Primary Layer -
> [640x480])
> osdSurface::
> - videoonly
> - flipping
> (!!!) *** WARNING [letting unprivileged
> IDirectFBDisplayLayer::GetSurface() call pass until
> cooperative level handling is finished] ***
> [idirectfbdisplaylayer.c:159 in
> IDirectFBDisplayLayer_GetSurface()]
> videoSurface::
> - videoonly
> [dfb] Configuring CooperativeLevel for Overlay
> [dfb] Configuring ColorKeying
> [dfb] Configuring CooperativeLevel for OSD
> [dfb] Using this layer for OSD: FBDev Primary Layer
> [dfb] Using this layer for Video out: Matrox Backend
> Scaler
> [dfb] (re)configuring Videolayer to 720 x 576
> (720x576)
> [dfb] (re)configured 0x08100609
> [softdevice] Video Out seems to be OK
> [softdevice] Initializing Audio Out
> [softdevice] Audio out seems to be OK
> [softdevice] A/V devices initialized, now initializing
> MPEG2 Decoder
> cSoftDevice::MakePrimaryDevice
> [softdevice] allocating picture buffer for resolution
> 720x576
> [softdevice] pp-filter fd:a couldn't be initialized,
> [softdevice] switching postprocessing off !
> [dfb] (re)configuring Videolayer to 720 x 576
> (720x576)
> [dfb] (re)configured 0x08100609
> [softdevice] picture buffer released
> (!) [ 3190: 6.539] --> Caught signal 11 (at 0x40,
> invalid address) <--
> (!) [ 3161: 6.613] --> Caught signal 11 (at 0x3c,
> invalid address) <--
> (!) Direct/Thread: Killing 'Fusion Dispatch' (3166)!
> Segmentation fault
>
> ----------> And I can continue
>
> If I make an ulimit -c unlimited to take core files
> and use gdb to solve the problem, but the only thing I
> get from debugging are results like 0xb7f0a31a,
> 0xb7fa2a26, 0xb7a6f097, 0x ffffe410...
>
> More info could be util related to DirectFB:
>
> ------------------->fbset -i:
>
> mode "1280x1024-60"
> # D: 106.735 MHz, H: 63.837 kHz, V: 59.997 Hz
> geometry 1280 1024 1280 3276 32
> timings 9369 224 32 32 4 136 4
> accel true
> rgba 8/16,8/8,8/0,8/24
> endmode
>
> Frame buffer device information:
> Name : MATROX
> Address : 0xdc000000
> Size : 16777216
> Type : PACKED PIXELS
> Visual : TRUECOLOR
> XPanStep : 8
> YPanStep : 1
> YWrapStep : 0
> LineLength : 5120
> MMIO Address: 0xdfdfc000
> MMIO Size : 16384
> Accelerator : Matrox G400
>
> ----------------------> dfbinfo
>
> ---------------------- DirectFB v0.9.21
> ---------------------
> (c) 2000-2002 convergence integrated
> media GmbH
> (c) 2002-2004 convergence GmbH
>
> -----------------------------------------------------------
>
> (*) DirectFB/Core: Multi Application Core. (with MMX
> support) (2005-01-26 13:42)(*) Direct/Memcpy: Using
> SSE optimized memcpy()
> (*) Direct/Thread: Running 'Fusion Dispatch'
> (MESSAGING, 32577)...
> (*) Direct/Thread: Running 'VT Switcher' (CRITICAL,
> 32582)...
> (*) Direct/Thread: Running 'Keyboard Input' (INPUT,
> 32589)...
> (*) DirectFB/Input: Keyboard 0.9 (convergence
> integrated media GmbH)
> (*) Direct/Thread: Running 'PS/2 Input' (INPUT,
> 32593)...
> (*) DirectFB/Input: IMPS/2 Mouse 0.9 (convergence
> integrated media GmbH)
> (*) DirectFB/Genefx: MMX detected and enabled
> (*) DirectFB/Graphics: Matrox G550 0.7 (convergence
> integrated media GmbH)
> (*) DirectFB/WM: Default 0.1 (Convergence GmbH)
>
>
> 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) Matrox Backend Scaler
> Type: GRAPHICS VIDEO STILL_PICTURE
> Caps: SURFACE SCREEN_LOCATION DEINTERLACING
> DST_COLORKEY BRIGHTNESS CONTRAST
>
>
> Input (00) Keyboard (primary
> keyboard)
> Type: KEYBOARD
> Caps: KEYS
>
> Input (01) IMPS/2 Mouse (primary
> mouse)
> Type: MOUSE
> Caps: AXES BUTTONS
--
NH
More information about the vdr
mailing list