DVB-S Karte und VDR unter Fedora6 installieren

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche


Neu.png Dieser Artikel wurde neu erstellt und bedarf evtl. noch einer Korrekturlesung. Danach kann diese Box entfernt werden.
Dieser Artikel ist Teil der HOWTO Sammlung


Inhaltsverzeichnis

Einleitung

Dieses HowTo beschreibt, wie eine digitale TV-Karte DVB-S Nexus von Hauppauge unter Fedora Core 6 und Fedora 7 eingerichtet wird. Es wird anhand der Basisinstallation von VDR-1.4.7 erläutert, wie man am PC-Monitor mit Hilfe von xawtv, TV schauen kann.

KDE-Benutzer können auch das TV-Programm kvdr-0.64 verwenden. Als Linux Kernel für FC6 dient die Version kernel-2.6.20-1.2952.fc6 und für Fedora 7 die Version kernel-2.6.21-1.3228.fc7.i686.rpm

VDR Menü

Budget-DVB-Karten

DVB-Empfangskarten ohne MPEG-Decoder bezeichnet man als Budget-Karten. Im Zusammenhang mit VDR können sie nur als zweite Empfangskarte neben einer Full-Featured-Karte verwendet werden.


xawtv installieren & konfigurieren

zvbi installieren

yum --enablerepo=extras-i386 install zvbi

xawtv und Abhängigkeiten herunterladen

Folgende Pakete werden für xawtv benötigt.

[root]# wget http://hany.sk/~hany/_data/RPM/doors-fc6/i386/xawtv-3.95-1.fc6.i686.rpm
[root]# wget http://hany.sk/~hany/_data/RPM/doors-fc6/i386/tv-fonts-1.1-1.fc6.noarch.rpm
[root]# rpm -ivh tv-fonts-1.1-1.fc6.noarch.rpm xawtv-3.95-1.fc6.i686.rpm


xawtv für Fedora 7 herunterladen und rpm Paket erstellen

[root]# wget http://dmitry.butskoy.name/xawtv/xawtv-3.95-1.src.rpm
[root]# rpmbuild --rebuild xawtv-3.95-1.src.rpm
[root]# rpm -ivh /usr/src/redhat/RPMS/i386/xawtv-3.95-1.fc7.i386.rpm


xawtv und Tastatursteuerung

Eintrag in der Datei ~/.xawtv

In das Homeverzeichnis wechseln und die Zeilen ab Tastaturkeys in die Datei .xawtv schreiben. Zum editieren der Datei kann ein beliebiger Editor verwendet werden, z.B. nano, kedit, vim usw.

[root]# cd ~
[root]# vim .xawtv

Tastaturkeys

[eventmap]
kbd-key-Return = vdr "HITK" "Ok"
kbd-key-Up = vdr "HITK" "Up"
kbd-key-Down = vdr "HITK" "Down"
kbd-key-M = vdr "HITK" "Menu"
kbd-key-BackSpace = vdr "HITK" "Back"
kbd-key-Left = vdr "HITK" "Left"
kbd-key-Right = vdr "HITK" "Right"
kbd-key-F1 = vdr "HITK" "Red"
kbd-key-F2 = vdr "HITK" "Green"
kbd-key-F3 = vdr "HITK" "Yellow"
kbd-key-F4 = vdr "HITK" "Blue"
kbd-key-KP_0 = vdr "HITK" "0"
kbd-key-KP_1 = vdr "HITK" "1"
kbd-key-KP_2 = vdr "HITK" "2"
kbd-key-KP_3 = vdr "HITK" "3"
kbd-key-KP_4 = vdr "HITK" "4"
kbd-key-KP_5 = vdr "HITK" "5"
kbd-key-KP_6 = vdr "HITK" "6"
kbd-key-KP_7 = vdr "HITK" "7"
kbd-key-KP_8 = vdr "HITK" "8"
kbd-key-KP_9 = vdr "HITK" "9"
kbd-key-F5 = vdr "HITK" "Play"
kbd-key-F6 = vdr "HITK" "Pause"
kbd-key-F7 = vdr "HITK" "Stop"
kbd-key-R = vdr "HITK" "Record"
kbd-key-F12 = vdr "HITK" "FastFwd"
kbd-key-F11 = vdr "HITK" "FastRew"
kbd-key-P = vdr "HITK" "Power"
kbd-key-F9 = vdr "HITK" "Channel+"
kbd-key-F10 = vdr "HITK" "Channel-"
kbd-key-KP_Add = vdr "HITK" "Volume+"
kbd-key-KP_Subtract = vdr "HITK" "Volume-"
kbd-key-$ = vdr "HITK" "Mute"
kbd-key-S = vdr "HITK" "Schedule"
kbd-key-C = vdr "HITK" "Channels"
kbd-key-T = vdr "HITK" "Timers"
kbd-key-G = vdr "HITK" "Recordings"
kbd-key-X = vdr "HITK" "Setup"
kbd-key-V = vdr "HITK" "Commands"
kbd-key-N = vdr "HITK" "None"


DVB Firmware installieren

Original Firmware installieren:

[root]# wget http://www.linuxtv.org/download/dvb/firmware/dvb-ttpci-01.fw-2622
[root]# mkdir /lib/firmware
[root]# mv dvb-ttpci-01.fw-2622 /lib/firmware/dvb-ttpci-01.fw

DVB-1.1.1 CVS installieren

Bei Passwort-Frage kann einfach ENTER gedrückt werden.

[root]# cd /usr
[root]# cvs -d :pserver:anonymous@linuxtv.org:/cvs/linuxtv login
[root]# cvs -d :pserver:anonymous@linuxtv.org:/cvs/linuxtv co dvb-kernel
[root]# ln -s dvb-kernel DVB

Benutzergruppe video neu anlegen

[root]# groupadd video

DVB Devices anlegen

Mit dem Script MAKEDEV-DVB.sh legen wir die DVB-Devices /dev/dvb* neu an und kopieren sie nach /etc/udev/devices.

[root]# cd /usr/DVB
[root]# ./MAKEDEV-DVB.sh
[root]# cp -rp /dev/dvb* /etc/udev/devices/

udev Regeln für DVB erstellen

Mit der folgenden udev Regel sollen nur Benutzer die der Benutzergruppe video angehören, auf die DVB-Karte zugreifen dürfen. Es ist wichtig, dass die eigene Regel vor der Standard Datei 50-udev.rules aufgerufen wird, da die Regeln in lexikalischer Reihenfolge abgearbeitet werden, dazu erstellt man sich eine Datei deren Zahl niedriger als die der Standard-Datei ist.

Die Standard Udev Regeln sind in /etc/udev/rules.d/50-udev.rules gespeichert, diese Datei sollte man nicht editieren, da diese bei einem UDEV-Update überschrieben wird, statt dessen erstellt man sich eine eigene:

[root]# touch /etc/udev/rules.d/52-vdr.rules

In der Datei /etc/udev/rules.d/52-vdr.rules folgende Zeile hinzufügen:

# DVB devices
KERNEL=="dvb*", GROUP="video", MODE="0660"

Zugriffsrechte setzen:

[root]# chmod 644 /etc/udev/rules.d/52-vdr.rules

Nun erstellen wir die Datei /etc/security/console.perms.d/96-vdr.perms, das beim Booten die DVB-Devices mit den korrekten Zugriffsrechten im Verzeichnis /dev/dvb/adapter0 erstellt.

[root]# touch /etc/security/console.perms.d/96-vdr.perms

mit folgendem Inhalt:

# DVB devices:
<vdrdvb>=/dev/dvb/adapter*/*
<console>  0660 <vdrdvb>     0660 root.video

Zugriffsrechte setzen:

[root]# chmod 644 /etc/security/console.perms.d/96-vdr.perms

Nun kann die Konfiguration mit dem Kommando udevtrigger neu eingelesen werden. Damit alle Benutzer, Zugriffsrechte auf die DVB-Karte haben, müssen diese in die Gruppe video aufgenommen werden.

Bestehenden Benutzer in die Gruppe video aufnehmen

Wenn bereits ein Benutzer existiert, dann kann dieser in die Gruppe video aufgenommen werden.

[root]# usermod -G video <Benutzername>

Benutzer neu anlegen und in die Gruppe video aufnehmen

Sollte noch kein Benutzer für VDR existieren, dann kann ein neuer Benutzer angelegt werden.

[root]# adduser <Benutzername> -G video

DVB Module über modprobe.conf laden

Eintrag in der /etc/modprobe.conf. Module werden beim nächsten Start geladen

alias char-major-81 dvb-ttpci
alias char-major-212 dvb-ttpci
alias /dev/dvb/* dvb-ttpci
alias /dev/dvb/adapter0/* dvb-ttpci
alias /dev/video* dvb-ttpci
install dvb-ttpci /sbin/modprobe --ignore-install dvb-ttpci; \
                 /sbin/modprobe stv0299


VDR installieren und konfigurieren

VDR 1.4.7 installieren

VDR wird als tar.bz2-File bereit gestellt.

[root]# wget ftp.cadsoft.de/vdr/vdr-1.4.7.tar.bz2
[root]# tar xfj vdr-1.4.7.tar.bz2 -C /usr/local/src

AIO Patch Installation

vdr-1.4.7-liemikuutio-1.13.diff.gz vdr-1.4.7-subtitles-0.5.0-and-ttxtsubs-0.0.5.diff.gz

[root]# cd /usr/local/src/
[root]# wget http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.4.7-liemikuutio-1.13.diff.gz
[root]# wget http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.4.7-subtitles-0.5.0-and-ttxtsubs-0.0.5.diff.gz
[root]# cd vdr-1.4.7
[root]# zcat ../vdr-1.4.7-liemikuutio-1.13.diff.gz
[root]# zcat ../vdr-1.4.7-subtitles-0.5.0-and-ttxtsubs-0.0.5.diff.gz

Weitere Plugins installieren

Hier können dann weitere Plugins wie z.B. text2skin, TvOnscreen, remote usw. installiert werden.

Konfigdateien kopieren und Video Ablageverzeichnis erstellen

[root]# mkdir /video
[root]# mkdir /VDRConf
[root]# cd /usr/local/src/vdr-1.4.7
[root]# cp *.conf /VDRConf

VDR kompilieren

[root]# make clean; make clean-plugins; make; make plugins NEWSTRUCT=1

VDR Startscript runvdr anpassen

# VDR needs to run in non-UTF8 locale
export LANG=de_DE.iso8859-1
export LC_CTYPE=de_DE.iso8859-1

version="1.4.7"
DVBDIR="/lib/modules/`uname -r`/build/"
DVB_INIT_DIR="/etc/init.d"
VDRPRG="/usr/local/src/vdr-$version/vdr"
VDRCMD="$VDRPRG -w 60 -t /dev/tty8 -L /usr/local/src/vdr-$version/PLUGINS/lib -c /VDRConf $* -v /video \
               -P sky"

LSMOD="`/sbin/lsmod | grep -w '^dvb' | wc -l`"
KILL="/usr/bin/killall -q -TERM"

# Load driver if it hasn't been loaded already:
# if [ $LSMOD -eq 0 ]; then
#    (cd $DVBDIR; make insmod)
  (cd $DVB_INIT_DIR; ./dvb start)
# fi

while (true) do
     su -c "$VDRCMD" $VDRUSR
     if test $? -eq 0 -o $? -eq 2; then exit; fi
     date
     echo "restarting VDR"
     $KILL $VDRPRG
     sleep 10
# (cd $DVBDIR; make rmmod; make insmod)
(cd $DVB_INIT_DIR; ./dvb stop; ./dvb start)
     date
     done

Startupscript für VDR

Die unten stehenden Zeilen ab Initscript vdrd als Datei vdrd mit dem Editor vim oder joe im Verzeichnis /etc/init.d erstellen und in die Dienste eintragen:

# cd /etc/init.d
# vi vdrd   # Zeilen eintragen und abspeichern
# chmod +x vdrd
# chkconfig --add vdrd

Initscript vdrd

#!/bin/bash
#
# init.d/vdrd
#
# Tags for Red Hat init configuration tools
# Provides:          VDR
# chkconfig: 35 81 81
# Description:        Start VDR

# Source function library.
. /etc/init.d/functions

prog=vdr
version="1.4.7"
VDR="/usr/local/src/vdr-"$version"/runvdr"
#XAWTV="exec /usr/bin/xawtv -c /dev/video0 -geometry 1024x768+100+30"
#KVDR="exec /usr/bin/kvdr -f -geometry 1024x768+100+30"

# First reset status of this service
RETVAL=0

start() {
       pid=`pidof $prog`
       if [ -z "$pid" ]
       then
               [ -x $VDR ] && $VDR > /dev/null 2>&1 &
               RETVAL=$?
       else
               echo "VDR already running"
       fi
       # Remember status and be verbose
       if [ $RETVAL -eq 0 ]; then
           action $"Starting $prog: " /bin/true
       else
           action $"Starting $prog: " /bin/false
       fi
}

stop() {
       #echo -n "Unloading DVB Modules"
       #cd /usr/DVB/build-2.6
       #./insmod.sh unload
       #killall vdr 2> /dev/null > /dev/null 2>&1
       killall "runvdr"
       killall "$prog"
       RETVAL=$?
       # Remember status and be verbose
       if [ $RETVAL -eq 0 ]; then
           action $"Stopping $prog: " /bin/true
       else
           action $"Stopping $prog: " /bin/false
       fi
}

restart() {
       ## Stop the service and regardless of whether it was
       ## running or not, start it again.
       $0 stop
       sleep 7
       $0 start
}

status() {
       ## list running vdr processes
       ps -fC $prog
       # Remember status and be quiet
       RETVAL=$?
}

case "$1" in
   start)
     start
       ;;
   stop)
       stop
       ;;
   restart)
       restart
       ;;
   status)
       status
       ;;
   *)
       echo "Usage: $0 {start|stop|status|restart}"
       exit 1
       ;;
esac
exit $RETVAL

VDR Dienst vdrd starten

# service vdrd start


Probleme

xawtv bringt kein Bild

Scannen der verfügbaren Video Devices

# xawtv -hwscan
This is xawtv-3.95, running on Linux/i686 (2.6.20-1.2948.fc6)
looking for available devices
port 355-355
   type : Xvideo, image scaler
   name : NV17 Video Texture

port 356-387
   type : Xvideo, image scaler
   name : NV05 Video Blitter

/dev/video0: OK                         [ -device /dev/video0 ]
   type : v4l2
   name : dvb
   flags: overlay capture[/code]

xawtv mit spezifischer Device starten

# /usr/bin/xawtv -noxv -nodga -c /dev/video0 -geometry 1024x768+200+30

VDR startet mit Fehlermeldung vdr: unknown user: 'vdr'

In der Datei /usr/local/src/vdr-1.4.7/runvdr die folgende Zeile abändern:

VDRPRG="/usr/local/src/vdr-$version/vdr -u root"

VDR Kompilierungsfehler

[root]# vdr.c:34:28: error: sys/capability.h: No such file or directory

Das Paket libcap-devel nachinstallieren.

[root]# yum install libcap-devel

Firmware wird nicht geladen

der folgende Eintrag in der Datei /etc/modprobe.d/blacklist-compat genügt, damit die Firmware geladen wird.

blacklist stradis

Wer zugleich einen aktuellen DVB-Kernel-Zweig benötigt, kann sich diesen mit den folgenden Kommandos einbinden: ( Wie man an das neue v4l-dvb Hg-Repository herankommt, steht unter http://linuxtv.org es wurde lediglich CVS durch Hg ersetzt.)

Wer ebenfalls das Problem hat, dass das System sich absolut weigert die Firmware zu laden, sollte wie folgt vorgehen:

[root]# yum update kernel kernel-devel --enablerepo=updates-testing
[root]# yum install mercurial
[root]# su -
[root]# hg clone http://linuxtv.org/hg/v4l-dvb

Das aktuelle v4l-dvb kompilieren

[root]# cd v4l-dvb
[root]# make && make install

danach den Rechner am besten neu starten.

weitere Links