[vdr] lcdproc and Logitech G15 (Illegal instruction) ?

Gregoire Favre gregoire.favre at gmail.com
Thu Nov 22 13:53:21 CET 2007


Hello,

is there something "special" to do in order to get lcdproc working on my
G15 lcd keyboard ?

Or maybe another LCD plugin ?

I got a really suspicious Illegal instruction when compiling with
gcc-4.3alpha of today so I tried with gcc-4.2.2 with same result.

With gcc-4.2.2 I used : -g -march=k8 -pipe
And with 4.3alpha : -g -O3 -march=core2 -DPIC -pipe -Wall

If I start vdr with -Plcdproc I get on the LCD :

"Welcome to V D R
 Video Disk Recorder
 Version : 1.5.12"

Then :

" Mute
  `black bar"

" Some epg info"

And then vdr quit with :
"Illegal instruction"

OK, then some gdb :

gdb ./vdr
GNU gdb 6.7.1
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) run -u greg -c /etc/vdr -l 3 -P'xine -r' -Plcdproc
Starting program: /usr/src/vdr-1.5.12/vdr -u greg -c /etc/vdr -l 3 -P'xine -r' -Plcdproc
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7fff1c1fd000
-------------------------
MakePrimaryDevice: 1
=========================
SetVideoFormat: 1
SetVolumeDevice: 255
frame: (0, 0)-(-1, -1), zoom: (1.00, 1.00)
SetVideoWindow: 0, 0, 720, 576, 720, 576
SetVolumeDevice: 255
SetAudioChannelDevice: 0
frame: (0, 0)-(-1, -1), zoom: (1.00, 1.00)
SetPlayMode: 1
[New LWP 27864]
[New LWP 27871]

Program received signal SIGILL, Illegal instruction.
[Switching to LWP 27871]
0x00002ad88fc4c0e3 in cLcd::GetTimeDateStat (this=0x82c840, string=0x44006b70 "", OutStateData=0x44006760)
    at lcd.c:586
586       if ( offset || !( ShowStates && ((t%LcdSetup.FullCycle) >= LcdSetup.TimeCycle) )) {
Current language:  auto; currently c++
(gdb) bt
#0  0x00002ad88fc4c0e3 in cLcd::GetTimeDateStat (this=0x82c840, string=0x44006b70 "", OutStateData=0x44006760)
    at lcd.c:586
#1  0x00002ad88fc4e4d1 in cLcd::Action (this=0x82c840) at lcd.c:846
#2  0x00000000004e9ab4 in cThread::StartThread (Thread=0x82c840) at thread.c:244
#3  0x0000003e99006067 in ?? () from /lib/libpthread.so.0
#4  0x0000003e984c5c7d in clone () from /lib/libc.so.6

Some difference with gcc-3.4.6 :

Program received signal SIGSEGV, Segmentation fault.
[Switching to LWP 9495]
cLcd::GetTimeDateStat (this=0x863840,
    string=0x44006c90 "success\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\n"..., OutStateData=0x44006c70) at lcd.c:588
588           snprintf(string,wid+1,"<%s %02d.%02d %02d:%02d:%02d>",
Current language:  auto; currently c++
(gdb) bt
#0  cLcd::GetTimeDateStat (this=0x863840, 
    string=0x44006c90 "success\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\nsuccess\n"..., OutStateData=0x44006c70) at lcd.c:588
#1  0x00002abce618f3af in cLcd::Action (this=0x863840) at lcd.c:846
#2  0x00000000005052a1 in cThread::StartThread (Thread=0x863840) at thread.c:244
#3  0x0000003e99006067 in ?? () from /lib/libpthread.so.0
#4  0x0000003e984c5c7d in clone () from /lib/libc.so.6

VDR 1.5.12 source :
ftp.cadsoft.de:/pub/people/kls/vdr/Developer/vdr-1.5.12.tar.bz2
graphlcd plugin : http://home.pages.at/linux/dvb.html

So it seems clear the plugin don't care about memory usage...

Did someone know how to fix it ?
-- 
Grégoire FAVRE  http://gregoire.favre.googlepages.com  http://www.gnupg.org
               http://picasaweb.google.com/Gregoire.Favre



More information about the vdr mailing list