C't-VDR - GraphLCD mit Serdisplib

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K
 
(28 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Serielle Displays (z.B. Optrex323) über die Bibliothek Serdisplib ansprechen'''<br>
+
'''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>
 
- 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
+
- an einer neuen Version der Serdisplib (1.96) und der Debianisierung der graphlcd_0.1.2 wird derzeit gearbeitet
  
  
 
+
'''Optrex323-Besitzer:'''
'''-- ACHTUNG --  Dieser Artikel ist derzeit in Arbeit !!  -- Ich bitte um etwas Geduld !'''
+
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.
  
  
Zeile 14: Zeile 15:
 
(auch möglich über "apt-setup")
 
(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>
  
::deb-src  http://www.e-tobi.net/vdrdevel/sarge/experimental/ source vdr/
+
Wenn die Datei von Hand editiert wurde "apt-get update" nicht vergessen.
::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 (1):'''
+
'''Benötigte Pakete installieren:'''
  
 
<pre>
 
<pre>
Zeile 33: Zeile 34:
 
apt-get build-dep vdrdevel-plugin-graphlcd
 
apt-get build-dep vdrdevel-plugin-graphlcd
 
</pre>
 
</pre>
 +
  
 
'''Ordner für die Quellen anlegen:'''
 
'''Ordner für die Quellen anlegen:'''
Zeile 42: Zeile 44:
 
</pre>
 
</pre>
  
'''Benötigte Pakete installieren (2):'''
+
 
 +
'''Benötigte Quellen downloaden und Serdisplib-Bibliothek installieren:'''
  
 
<pre>
 
<pre>
apt-get source vdrdevel-plugin-graphlcd
 
 
wget http://mesh.dl.sourceforge.net/sourceforge/serdisplib/serdisplib-1.95.tar.gz
 
wget http://mesh.dl.sourceforge.net/sourceforge/serdisplib/serdisplib-1.95.tar.gz
 
tar -xvzf 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
 
dpkg-source -x vdrdevel-plugin-graphlcd_0.1.1-28.dsc
cd vdrdevel-plugin-graphlcd-0.1.1
 
 
</pre>
 
</pre>
  
'''Makefiles bearbeiten:'''
+
 
 +
'''Makefiles des GraphLCD-Plugins bearbeiten:'''
  
 
<pre>
 
<pre>
 +
cd vdrdevel-plugin-graphlcd-0.1.1
 
vi ./Makefile
 
vi ./Makefile
 
</pre>
 
</pre>
Zeile 94: Zeile 103:
 
</pre>
 
</pre>
  
'''Kompilieren des Plugins:'''
+
<pre>
 +
cd ..
 +
</pre>
 +
 
 +
 
 +
'''Kompilieren und Installieren des GraphLCD-Plugins:'''
  
 
<pre>
 
<pre>
Zeile 100: Zeile 114:
 
dpkg -i ../vdrdevel-plugin-graphlcd_0.1.1-28_i386.deb
 
dpkg -i ../vdrdevel-plugin-graphlcd_0.1.1-28_i386.deb
 
</pre>
 
</pre>
Falls nicht auf dem VDR-System kompiliert wird, muss die .deb Datei natürlich erst mit "scp" auf den<br>
+
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!
VDR-PC kopiert und dort installiert werden!
+
 
  
 
'''Konfiguration mittels ''/etc/vdrdevel/plugins/plugin.graphlcd.conf'':'''
 
'''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>
 
<pre>
-c optrex323 -d /dev/parport0"
+
-c optrex323 -d /dev/parport0
 
</pre>
 
</pre>
 
Die Angabe weiterer Parameter (x=117 y=62 etc.) ist hier nicht nötig, weil diese als defaults gesetzt sind<br>
 
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>
 
(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>  
 
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.
+
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>
 +
 
 +
 
 +
----
 +
'''''<div align="center">Vielen Dank an Tobias Grimm und Wolfgang Astleitner für ihre hervorragende Arbeit!</div>'''''
 +
----
 +
 
 +
[[Kategorie:C't-VDR]]
 +
[[Kategorie:Graphlcd-plugin]]

Aktuelle Version vom 8. Dezember 2007, 12: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!