C't-VDR - GraphLCD mit Serdisplib

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K
 
(46 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
<nowiki>Passt dort sicher besser [[graphlcd-plugin]], weil:
+
'''Serielle Displays (z.B. Optrex323) über die Bibliothek "Serdisplib" ansprechen'''<br>
 +
- getestet unter folgenden Versionen: vdrdevel-plugin-graphlcd_0.1.1-28 / serdisplib-1.95<br>
 +
- an einer neuen Version der Serdisplib (1.96) und der Debianisierung der graphlcd_0.1.2 wird derzeit gearbeitet
  
  
* schon links stehen
+
'''Optrex323-Besitzer:'''
* schon ein paar driver aufgeführt wurden
+
Hier empfehle ich trotz nun schon vorhandener Version 0.1.3 bei Version 0.1.1 zu bleiben, weil es dort NICHT zu folgendem Anzeigefehler kommt:
* diese lib ohne das plugin nicht ''wirklich'' lauffähig ist
+
Ist der Zeitbalken aktiv, ist keine freie Pixelreihe mehr zwischen der Zeit, von wann bis wann eine Sendung geht und dem Sendernamen. Der Grund hierfür ist, dass offenbar seit Version 0.1.2 der Rahmen um den Sendernamen unten eine Pixelreihe mehr hat (vier statt drei), was bei 128x64 Displays kein Problem darstellt. Desweiteren hat man viel mehr Einstellmöglichkeiten für dieses Display im OSD als bei den neueren Versionen.
  
  
O.K. - Tobi meinte zwar hier, aber gut. Mach ich gerne. Wer bist du?</nowiki></br>
 
'''Serielle Displays (z.B. Optrex323) über die Bibliothek Serdisplib ansprechen'''<br>
 
- getestet unter folgenden Versionen: vdrdevel-plugin-graphlcd_0.1.1 / serdisplib-1.95<br>
 
- An einer neuen Version der Serdisplib (1.96) und der Debianisierung der graphlcd_0.1.2 wird derzeit gearbeitet
 
  
 +
== HowTo ==
  
'''-- ACHTUNG --  Dieser Artikel ist derzeit in Arbeit !!  -- Ich bitte um etwas Geduld !'''
+
'''Tobi's Source-Repositories in die Datei ''/etc/apt/sources.list'' eintragen:'''
 +
(auch möglich über "apt-setup")
  
 +
<pre>
 +
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/
 +
</pre>
  
== Installation ==
+
Wenn die Datei von Hand editiert wurde "apt-get update" nicht vergessen.
  
'''Tobi's Source-Repositories in die Datei ''/etc/apt/sources.list'' eintragen:'''
 
(auch möglich mit "apt-setup")
 
  
 +
'''Benötigte Pakete installieren:'''
  
::deb-src  http://www.e-tobi.net/vdrdevel/sarge/experimental/ source vdr/
+
<pre>
::deb-src  http://www.e-tobi.net/vdrdevel/sarge/experimental/ source addons/
+
apt-get install libgd-dev
::deb-src  http://www.e-tobi.net/vdrdevel/sarge/experimental/ source backports/
+
apt-get install wget
::deb-src  http://www.e-tobi.net/vdrdevel/sarge/experimental/ source base/
+
apt-get install vdrdevel-dev
 +
apt-get install vdrdevel-plugin-graphlcd
 +
apt-get build-dep vdrdevel-plugin-graphlcd
 +
</pre>
  
  
:(Wenn die Datei von Hand editiert wurde "apt-get update" nicht vergessen.)
+
'''Ordner für die Quellen anlegen:'''
  
 +
<pre>
 +
cd
 +
mkdir graphlcd_serdisplib
 +
cd graphlcd_serdisplib
 +
</pre>
  
'''Benötigte Pakete installieren (1):'''
 
  
:"apt-get install libgd-dev"<br/>
+
'''Benötigte Quellen downloaden und Serdisplib-Bibliothek installieren:'''
:"apt-get install wget"<br/>
+
:"apt-get install vdrdevel-dev"<br/>
+
:"apt-get install vdrdevel-plugin-graphlcd"<br/>
+
:"apt-get build-dep vdrdevel-plugin-graphlcd"<br/>
+
  
 +
<pre>
 +
wget http://mesh.dl.sourceforge.net/sourceforge/serdisplib/serdisplib-1.95.tar.gz
 +
tar -xvzf serdisplib-1.95.tar.gz
 +
cd serdisplib-1.95
 +
./configure
 +
make all
 +
make install
 +
cd ..
 +
apt-get source vdrdevel-plugin-graphlcd
 +
dpkg-source -x vdrdevel-plugin-graphlcd_0.1.1-28.dsc
 +
</pre>
  
'''Ordner für die Quellen anlegen:'''
 
  
:"cd"
+
'''Makefiles des GraphLCD-Plugins bearbeiten:'''
:"mkdir graphlcd_serdisplib"
+
 
:"cd graphlcd_serdisplib"
+
<pre>
 +
cd vdrdevel-plugin-graphlcd-0.1.1
 +
vi ./Makefile
 +
</pre>
 +
 
 +
<pre>
 +
...
 +
# 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
 +
...
 +
</pre>
 +
 
 +
<pre>
 +
cd drivers
 +
vi Makefile
 +
</pre>
 +
 
 +
<pre>
 +
...
 +
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
 +
...
 +
</pre>
 +
 
 +
<pre>
 +
cd ..
 +
</pre>
 +
 
 +
 
 +
'''Kompilieren und Installieren des GraphLCD-Plugins:'''
 +
 
 +
<pre>
 +
dpkg-buildpackage -us -uc -tc -fakeroot
 +
dpkg -i ../vdrdevel-plugin-graphlcd_0.1.1-28_i386.deb
 +
</pre>
 +
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<br>
 +
Ansteuerung des LCDs an die ''/usr/local/lib/libserdisp.so''.
 +
<pre>
 +
-c optrex323 -d /dev/parport0
 +
</pre>
 +
Die Angabe weiterer Parameter (x=117 y=62 etc.) ist hier nicht nötig, weil diese als defaults gesetzt sind<br>
 +
(siehe ''./drivers/serdisp.c'': "if (strcasecmp("OPTREX323", drivername) == 0) {dsizex = 117; dsizey = 62; ...").<br>
 +
Bitte ebenfalls beachten, dass evtl. die Module "parport", "parport_pc" und "ppdev" noch geladen bzw. in die <br>
 +
Datei ''/etc/modules.conf'' (automatisches Laden beim Booten) eingetragen werden müssen.
 +
 
 +
 
 +
'''Neustart des vdrdevel:'''
 +
 
 +
<pre>
 +
/etc/init.d/vdrdevel restart
 +
</pre>
 +
 
 +
Die in der conf-Datei eingetragenen Parameter sollten dem vdrdevel nun beim Laden des GraphLCD-Plugins eins-zu-eins übergeben worden sein.<br>
 +
Überprüft werden kann dies mit dem Aufruf:
 +
<pre>
 +
ps -elf | grep vdrdevel
 +
</pre>
 +
Mögliche Fehler werden ggf. hier ausgegeben:
 +
<pre>
 +
/var/log/syslog
 +
/var/log/messages
 +
/tmp/vdrdevel-err.*
 +
</pre>
  
  
'''Benötigte Pakete installieren (2):'''
+
----
 +
'''''<div align="center">Vielen Dank an Tobias Grimm und Wolfgang Astleitner für ihre hervorragende Arbeit!</div>'''''
 +
----
  
:"apt-get source vdrdevel-plugin-graphlcd"<br/>
+
[[Kategorie:C't-VDR]]
:"wget http://mesh.dl.sourceforge.net/sourceforge/serdisplib/serdisplib-1.95.tar.gz"<br
+
[[Kategorie:Graphlcd-plugin]]

Aktuelle Version vom 8. Dezember 2007, 11:00 Uhr

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


Optrex323-Besitzer: Hier empfehle ich trotz nun schon vorhandener Version 0.1.3 bei Version 0.1.1 zu bleiben, weil es dort NICHT zu folgendem Anzeigefehler kommt: Ist der Zeitbalken aktiv, ist keine freie Pixelreihe mehr zwischen der Zeit, von wann bis wann eine Sendung geht und dem Sendernamen. Der Grund hierfür ist, dass offenbar seit Version 0.1.2 der Rahmen um den Sendernamen unten eine Pixelreihe mehr hat (vier statt drei), was bei 128x64 Displays kein Problem darstellt. Desweiteren hat man viel mehr Einstellmöglichkeiten für dieses Display im OSD als bei den neueren Versionen.


[Bearbeiten] 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 Serdisplib-Bibliothek installieren:

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


Makefiles des GraphLCD-Plugins bearbeiten:

cd vdrdevel-plugin-graphlcd-0.1.1
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
...
cd ..


Kompilieren und Installieren 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.*



Vielen Dank an Tobias Grimm und Wolfgang Astleitner für ihre hervorragende Arbeit!