Hallo,
Die Origen Gehäuse Display S10V, S14V und S16V haben schon ab Werk ein eingebautes Display (VF210 VFD) und IR-Modul (IR220 VFD/IR Module).
Diese Module kommen vom Deutschen Hersteller irtrans, der für diese Module auch Linux-Treiber/-Software zur Verfügung stellt.
Dieses HowTo beschreibt, wie ich die Hardware unter Debian/Ubuntu in Betrieb genommen habe und setzt sich zusammen aus den Punkten:
1.) Hardware-Installation und Kernel -Module
2.) Irserver von irtrans installieren
3.) Irserver in Betrieb nehmen
3.1) PowerON-Funktion
4.) LCD-Display installieren.
5.) Probleme mit LCDd
5.1) Versionen
5.2) Startreihenfolge
1.) Hardware-Installation und Kernel -Module
Um das USB-Modul nutzen zu können, werden die Kernel-Module "usbserial" und "ftdi_sio" benötigt. Sollten sie nicht schon bereits im Kernel mit drin sein, sind sie beim bei "make menuconfig" zu finden unter: "Device Drivers --> USB support --> USB Serial Converter support --> USB Serial Converter support" Dort zusätzlich noch "USB Generic Serial Driver" ankreuzen und "USB FTDI Single Port Serial Driver (EXPERIMENTAL)"
Auf Kernel-/Module kompilieren werde ich hier aber nicht näher eingehen.
Um sicher zu gehen, dass die Module automatisch beim Start des Systems geladen werden, die Module in die Datei /etc/modules eintragen:
Sind die Module vorhanden und geladen, wird im Idealfall nach Installation der Hardware (USB-Stecker auf Motherboard stecken) das Device /dev/ttyUSB0 automatisch vom Modul usbserial angelegt.
2.) Irserver von irtrans installieren
Die Software irserver wird von irtrans zur Verfügung gestellt und übernimmt die Ansteuerung des Displays und des IR-Moduls. Die Software läuft als Daemon und ersetzt lirc vollständig. Lirc wird für IR-Modul nicht mehr benötigt.
Zur Installations von irserver:
# temporäres Installationsverzeichnis anlegen:
mkdir irtrans-install
cd irtrans-install/
# Software downloaden:
wget http://www.irtrans.de/download/Server/Linux/irserver.tar.gz
# Auspacken:
tar --gzip -xvf irserver.tar.gz
# In der setup.sh des Irtrans-Paketes befinden sich noch Windows-Umlaute,
# daher kommt beim Ausführen noch folgende Meldung: "-bash: ./install.sh:
# /bin/sh^M: bad interpreter: Datei oder Verzeichnis nicht gefunden"
# Dieser Umbruch muss entfert werden. Dazu das tool dos2unix verwenden
# oder mit "tr":
# WICHTIG: Das ^M Zeichen muss mit Strg-v Strg-m eingegeben werden:
tr -d '^M' < install.sh > install.sh.tmp
mv install.sh.tmp install.sh
chmod +x install.sh
# Installieren
./install.sh
Alles anzeigen
Das Skript hat das Programm nach /usr/local/irtrans/ installiert.
Damit der irserver automatisch beim Start des Systems geladen wird, muss ein Startskript angelegt werden. Dazu eine Datei /etc/init.d/irserver anlegen mit folgendem Inhalt:
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/irtrans/irserver
NAME=irserver
DESC=irserver
DAEMON_OPTS="-daemon /dev/ttyUSB0"
set -e
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid --make-pidfile\
--exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid
echo "$NAME."
;;
restart|force-reload)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile \
/var/run/$NAME.pid
sleep 1
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid --make-pidfile\
--exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
exit 1
;;
esac
exit 0
Alles anzeigen
Anschließend ausführbar machen und symlink anlegen:
3.) Irserver in Betrieb nehmen
Wie gesagt, ersetzt der irserver lirc vollständig. Daher kann es jetzt deinstalliert werden, damit es keine Konflikte gibt (gleicher Server-Port). Auf die Deinstallation von lirc wird hier nicht näher eingegangen.
Mit dem Programm irclient können die Fernbedienungstasten angelernt werden. Dazu "/usr/local/irtrans/irclient localhost" aufrufen. Das Menü des Programms sollte selbsterklärend sein.
Ein kleiner Bug (oder auch gewollt) bei irserver: Die eingelernten Fernbedienungstasten werden an den VDR nur in Kleinbuchstaben übergeben. Was vom irserver empfangen wurde, kann mit dem Programm "irw" kontrolliert werden (nur gelernte Tasten) oder den irserver anstatt mit dem Startscript über die Konsole mit: "/usr/local/irtrans/irserver -loglevel 4 -codedump /dev/ttyUSB0" starten.
Anschließend die /var/lib/vdr/remote.conf editieren, um die Tasten den VDR-Funktionen zuzuordnen (auf Groß-/Kleinschreibung achten).
3.1) PowerON-Funktion
Beim irclient unter linux habe ich keine Funktion gefunden, um das PowerOn Command zu setzen. Um es trotzdem zu setzen, kann man folgendermaßen vorgehen:
- Den VDR mit einem Windows-PC über Netzwerk verbinden.
- Unter Windows die irtrans Software von http://www.irtrans.de/de/download/windows.php installieren.
- Software starten.
- IP-Adresse des VDRs eingeben.
- Im Menü unter "Modus --> Device Status" den Dialog "Set Modus" aufrufen.
- Dort unter "PowerON Remote/Command" den Fernbedienungsnamen und Tastennamen eintragen.
- Dann mit dem Button "Modus setzen" bestätigen.
- Programm beenden.
Und schon ist das PowerOn Command gesetzt.
4.) LCD-Display installieren.
Das LCD-Display wird vom LCDd-Server angesteuert. Dieser verbindet sich mit dem irserver, der dann das eigentliche Display anspricht. Daher muss der irserver vor dem LCDd gestartet werden. Der VDR wiederum verbindet sich über das lcdproc-plugin mit dem LCDd. Kann sich der VDR beim Start nicht mit dem LCDd verbinden, bricht der Start des VDRs mit einer Fehlermeldung ab.
Installation von LCDd und dem lcdproc-plugin mit:
Anschließend die Datei /etc/LCDd.conf editieren (Ich will die Kommentare nicht kürzen, daher ein etwas längeres Listing):
# LCDd.conf
#
# This file contains the configuration for the LCDd server.
[server]
# Server section with all kinds of settings for the LCDd server
Driver=irtrans
# Tells the server to load the given drivers. Multiple lines can be given.
# NOTE: You may activate several input (input only) drivers but only ONE output
# driver, which should be the first.
Bind=127.0.0.1
# Tells the driver to bind to the given interface
Port=13666
# Listen on this specified port; defaults to 13666.
#ReportLevel=5
# Sets the reporting level; defaults to 2 (warnings and errors only).
ReportToSyslog=no
# Should we report to syslog instead of stderr ? Default: no
WaitTime=5
# Sets the default time in seconds to displays a screen.
# User=
# User to run as. LCDd will drop its root priviledges,
# if any, and run as this user instead.
ServerScreen=no
# Enables the built-in server screen [Default: no]
# yes : always,
# no : when there are no other screens active.
Foreground=yes
# The server will stay in the foreground if set to true.
# Otherwise the server will fork to background and report
# to syslog
# TIP: The following options can also be modified from the
# server menu (which requires a driver that supports input)
Heartbeat=off
# The server has serveral heartbeat modes
# on Stays on all the time
# off Stays off all the time
# slash Rotating slash all the time
# open Can be controlled by all clients
InitialHeartbeat=off
# This sets the initial heartbeat state if the heartbeat mode is "open"
# Affects the server screen only ;)
# on Heartbeat activated
# off Heartbeat disabled
# slash Heartbeat replaced with a rotating slash
Backlight=on
# The server has serveral backlight modes
# on Stays on all the time
# off Stays off all the time
# open Can be controlled by all clients
InitialBacklight=on
# This sets the initial backlight state if the backlight mode is "open"
# Affects the server screen only ;)
BacklightBrightness=255
# This sets the backlight brightness in state "on"
# NOTE: Not all drivers/devices support setting the brightness this
# way. Some don't support switching the backlight on/off at all,
# some can switch the backlight on or off only. If the latter is
# the case BacklightBrightness must be > 0.
BacklightOffBrightness=0
# This sets the backlight brightness in state "off"
# NOTE: Not all drivers/devices support setting the brightness this
# way. Some don't support switching the backlight on/off at all,
# some can switch the backlight on or off only. If the latter is
# the case BacklightBrightness must be = 0.
# Driver sections are below this line, in alphabetical order
[irtrans]
#IrTrans driver
Arguments="-hostname localhost -lcdw 16 -lcdh 2 -backlight -timeout 1"
#hostname: IP / Hostname of irserver
#lcdw: Breite des LCD Displays (default=16)
#lcdh: Höhe des LCD Displays (default=4)
Alles anzeigen
5.) Probleme mit LCDd
5.1) Versionen
Bei mir lief der von den APT-Quellen installierte LCDd (Paket: lcdproc) nicht mit der oberen Konfig-Datei. Warum weiß ich auch nicht. Vielleicht habe ich etwas falsch gemacht und jemand anderes bekommt es hin. In diesem Fall, schreibt mir bitte.
Auf jeden Fall habe ich als Abhilfe den LCDd von der irtrans Seite kompiliert und verwendet.
Da das vdr-plugin-lcdproc aus den APT-Quellen (e-tobi) von lcdproc abhängt, wird lcdproc bei Installation von vdr-plugin-lcdproc automatisch mitinstalliert. Da ich keine Lust hatte das zu umgehen, oder eigene Pakete aus den Sourcen zu bauen, bleibt der lcdproc aus den APT-Quellen bei mir parallel zu dem selbstkompilierten lcdproc von irtrans auf dem System.
Kompilieren und installieren von lcdproc von irtrans:
cd /usr/src/
wget http://www.irtrans.de/download/Server/Linux/lcdproc.tar.gz
tar --gzip -xvf lcdproc.tar.gz
cd lcdproc/
make clean
make
make install
Der kompilierte LCDd wurde unter /usr/local/sbin/LCDd installiert. Damit diese Version beim Start des Systems genommen wird, das Startskript /etc/init.d/LCDd folgendermaßen anpassen:
5.2) Startreihenfolge
Der irserver muss als erstes gestartet werden, anschließend der LCDd, dann erst der VDR. Als ich den LCDd direkt nach dem Start von irserver gestartet hatte, konnte der LCDd keinen Port öffnen, bzw. sich nicht zu irserver verbinden. Als Abhilfe habe ich meine Startreihenfolge der Dienste so gesetzt:
root@vdr:/etc/rc2.d# ls
README S20irserver S21quotarpc S90vdradmin-am
S10sysklogd S20makedev S23ntp S90vdr-plugin-vdrrip
S11klogd S20openbsd-inetd S89anacron S99rc.local
S18portmap S20powernowd S89atd S99rmnologin
S20acpid S20rsync S89cron S99stop-bootlogd
S20ddclient S20samba S90LCDd
S20exim4 S20ssh S90vdr
root@vdr:/etc/rc2.d#
Nach dem Start von irserver, LCDd und VDR sollte dann hoffentlich alles funktionieren.
Gruß und viel Spass
Steffen