C't-VDR - GraphLCD mit Serdisplib

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Serielle Displays (z.B. Optrex323) über die Bibliothek "Serdisplib" ansprechen
- getestet unter folgenden Versionen: vdrdevel-plugin-graphlcd_0.1.1-28 / serdisplib-1.95
- an einer neuen Version der Serdisplib (1.96) und der Debianisierung der graphlcd_0.1.2 wird derzeit gearbeitet


HowTo

Tobi's Source-Repositories in die Datei /etc/apt/sources.list eintragen: (auch möglich über "apt-setup")

deb-src  http://www.e-tobi.net/vdrdevel/sarge/experimental/ source vdr/
deb-src  http://www.e-tobi.net/vdrdevel/sarge/experimental/ source addons/
deb-src  http://www.e-tobi.net/vdrdevel/sarge/experimental/ source backports/
deb-src  http://www.e-tobi.net/vdrdevel/sarge/experimental/ source base/

Wenn die Datei von Hand editiert wurde "apt-get update" nicht vergessen.


Benötigte Pakete installieren:

apt-get install libgd-dev
apt-get install wget
apt-get install vdrdevel-dev
apt-get install vdrdevel-plugin-graphlcd
apt-get build-dep vdrdevel-plugin-graphlcd


Ordner für die Quellen anlegen:

cd
mkdir graphlcd_serdisplib
cd graphlcd_serdisplib


Benötigte Quellen downloaden und Bibliothek installieren:

apt-get source vdrdevel-plugin-graphlcd
wget http://mesh.dl.sourceforge.net/sourceforge/serdisplib/serdisplib-1.95.tar.gz
tar -xvzf serdisplib-1.95.tar.gz
cd serdisplib-1.95
make all
make install
dpkg-source -x vdrdevel-plugin-graphlcd_0.1.1-28.dsc
cd vdrdevel-plugin-graphlcd-0.1.1


Makefiles des GraphLCD-Plugins bearbeiten:

vi ./Makefile
...
# uncomment this for dynamic linking
STATIC_DRIVERS=1


### Allow user defined options to overwrite defaults:

--> Hier muss noch rein:  INCLUDE_SERDISPLIB=1

-include $(VDRDIR)/Make.config
ifdef INCLUDE_SERDISPLIB
DEFINES += -DINCLUDE_SERDISPLIB
endif # INCLUDE_SERDISPLIB
...
cd drivers
vi Makefile
...
INCLUDES += -I$(VDRDIR)/include

OBJS = device.o drivers.o fct.o port.o simlcd.o gu140x32f.o ...

--> Hier muss ebenfalls rein:  INCLUDE_SERDISPLIB=1

-include $(VDRDIR)/Make.config
ifdef INCLUDE_SERDISPLIB
DEFINES += -DINCLUDE_SERDISPLIB
...


Kompilieren des GraphLCD-Plugins:

dpkg-buildpackage -us -uc -tc -fakeroot
dpkg -i ../vdrdevel-plugin-graphlcd_0.1.1-28_i386.deb

Falls nicht auf dem VDR-System kompiliert wird, muss die .deb Datei natürlich erst mit "scp" auf den VDR-PC kopiert und dort installiert werden!


Konfiguration mittels /etc/vdrdevel/plugins/plugin.graphlcd.conf:

Hier wird dem Plugin mitgeteilt, welchen Treiber es laden muss. Mit "Optrex323" (Groß- und Kleinschribung ist egal) übergibt das Plugin die
Ansteuerung des LCDs an die /usr/local/lib/libserdisp.so.

-c optrex323 -d /dev/parport0"

Die Angabe weiterer Parameter (x=117 y=62 etc.) ist hier nicht nötig, weil diese als defaults gesetzt sind
(siehe ./drivers/serdisp.c: "if (strcasecmp("OPTREX323", drivername) == 0) {dsizex = 117; dsizey = 62; ...").
Bitte ebenfalls beachten, dass evtl. die Module "parport", "parport_pc" und "ppdev" noch geladen bzw. in die
Datei /etc/modules.conf (automatisches Laden beim booten) eingetragen werden müssen.


Neustart des vdrdevel:

/etc/init.d/vdrdevel restart

Die in der conf-Datei eingetragenen Parameter sollten dem vdrdevel nun beim Laden des GraphLCD-Plugins eins-zu-eins übergeben worden sein.
Überprüft werden kann dies mit dem Aufruf:

ps -elf | grep vdrdevel

Mögliche Fehler werden ggf. hier ausgegeben:

/var/log/syslog
/var/log/messages
/tmp/vdrdevel-err.*