Analog-TV

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
Zeile 1: Zeile 1:
== a) Analog-TV mit einer pvr 250/350 ==
 
  
'''0) benoetigt:'''
 
pvr250(ohne video-out, FF Karte zus. nötig)/pvr350(mit video-out)
 
compiler, perl, wget
 
 
''Die Methode hier ist ganz sicher nicht fehlerlos!
 
Und auch nicht unbedingt für absolute linux-Anfänger geeignet.
 
 
Was hier so glatt aussieht hat jede Menge Stolpersteine.
 
Aber vielleicht ist der eine oder andre nützliche Tip mit bei.''
 
 
 
'''1) download der sources'''
 
 
mkdir ivtv_install && cd ivtv_install
 
 
wget http://cesnet.dl.sourceforge.net/sourceforge/ivtv/ivtv-0.1.9.tar.gz
 
 
wget http://heanet.dl.sourceforge.net/sourceforge/ivtv/Video-Frequencies-0.03.tar.gz
 
 
wget http://search.cpan.org/CPAN/authors/id/W/WA/WADG/Config-IniFiles-2.38.tar.gz
 
 
wget http://search.cpan.org/CPAN/authors/id/N/NI/NI-S/Tk-804.027.tar.gz
 
 
'''2) den ivtv Treiber installieren'''
 
 
tar -xzf ivtv-0.1.9.tar.gz
 
 
cd ivtv/utils
 
 
mounten des cdrom und extrahieren der Firmware von der Windows Treiber cd,
 
u.U. muss hier der komplette Pfad zur exe angeben werden
 
 
mount /dvd
 
 
./ivtvfwextract.pl /dvd
 
 
cd ..
 
 
den Patch aus dem vdr einspielen. vorher mit tar xfz vdr-1.3.11.tar.bz2 auspacken
 
 
patch -p2 < ../vdr-1.3.11/PLUGINS/src/analogtv/patches/ivtv-0.1.9.diff
 
 
cd driver
 
 
cp ../utils/videodev2.h .
 
 
make
 
 
make install
 
 
cd ../utils
 
 
make
 
 
make install
 
 
cd..
 
 
wir erstellen mit einem editor ein script namens "insmod.sh":
 
nach erstellen bitte unbedingt "chmod +x insmod.sh" ausführen
 
 
===============================================================
 
 
#/bin/bash
 
 
#______link to ivtv-0.1.9______________________
 
 
IVTV_DIR="/usr/src/ivtv_install/ivtv/driver"
 
 
#______________________________________________
 
 
I2C_DRIVERS="i2c-core i2c-algo-bit"
 
 
IVTV_UNLOAD_DRIVERS="tveeprom ivtv saa7115 msp3400 tuner videodev
 
i2c-algo-bit i2c-core"
 
 
case "$1" in
 
 
ivtv_start)
 
 
echo loading ivtv driver
 
 
cd $IVTV_DIR
 
 
for DRIVER in $I2C_DRIVERS ; do
 
 
modprobe $DRIVER
 
 
done
 
 
modprobe videodev
 
 
modprobe tuner type=29 pal=1
 
 
insmod msp3400.o once=1 simple=1
 
 
insmod saa7115.o
 
 
insmod ivtv.o video_nr=0 mpg_buffers=100
 
 
insmod tveeprom.o
 
 
;;
 
 
ivtv_stop)
 
 
echo unloading ivtv driver
 
 
for DRIVER in $IVTV_UNLOAD_DRIVERS ; do
 
 
rmmod $DRIVER
 
 
done
 
 
;;
 
 
*)
 
 
echo usage: $0 [ivtv_start/ivtv_stop]
 
 
exit 1
 
 
;;
 
 
esac
 
 
===============================================================
 
 
chmod +x insmod.sh
 
# jetzt laden wir den Treiber doch mal und gucken was rauskommt:
 
./insmod.sh ivtv_start
 
# und jetzt gucken wir mal was der kernel dazu sagt:
 
dmesg
 
..
 
tvee: tuner=LG TP18PSB11D (idx=48, type=29)
 
..
 
# aha, wir müssen also den treiber tuner mit type=29 laden!
 
# Dann entweder mit der 29 in die /etc/modules oder in das script da oben.
 
# also:
 
./insmod.sh ivtv_stop
 
# das script für den korrekten tuner modifizieren, dann
 
./insmod.sh ivtv_start
 
# okay, der Treiber sollte jetzt korrekt geladen sein.
 
cd ..
 
 
'''3) wir installieren etwas Zubehör:'''
 
tar -xzf Video-Frequencies-0.03
 
cd Video-Frequencies-0.03
 
perl Makefile.PL
 
make
 
make install
 
cd ..
 
 
tar -xzf Video-ivtv-0.12.tar.gz
 
cd Video-ivtv-0.12
 
perl Makefile.PL
 
make
 
make install
 
cd ..
 
 
tar -xzf Config-IniFiles-2.38.tar.gz
 
cd Config-IniFiles-2.38
 
perl Makefile.PL
 
make
 
make install
 
cd ..
 
 
tar -xzf Tk-804.027.tar.gz
 
cd Tk-804.027
 
perl Makefile.PL
 
make
 
make install
 
cd ..
 
 
# okay. wir haben alles und könnten ja mal testen.
 
 
'''4) der erste Test:'''
 
# wir stellen den Tuner auf PAL und stellen als Videosource den Tuner "Tuner0" ein:
 
 
test_ioctl -u 0xff -p4
 
 
# und gucken mal etwas fern. :o))
 
# ( hierzu muß aber der dvb-treiber entladen sein. )
 
 
mplayer /dev/video0
 
 
# hier sollte ein Bildrauschen zu sehen sein.
 
# aber wer will schon Rauschen?  Also: Sender tunen!
 
# in einer andren shell:
 
 
cd ivtv/utils
 
 
# falls du unter X arbeitest:
 
 
./ptune-ui.pl
 
 
# oder auch ohne X:
 
 
./ptune.pl --frequency=XXXXXX
 
 
# für die xx'se setzt man eine bekannte Frequenz ein, z.B. 133250
 
 
# okay, der Treiber geht, also eintragen:
 
# in die /etc/modules.conf:
 
 
# WinTV PVR 250/350
 
alias char-major-81 videodev
 
alias char-major-81-0 ivtv
 
options ivtv ivtv_debug=1 mpg_buffers=90
 
options tuner type=29
 
options msp3400 once=1 simple=1
 
add below ivtv msp3400 saa7115 tuner
 
 
'''5) der vdr mit analogtv'''
 
# hier am Beispiel für einen vdr-1.3.11 und vdr-analogtv-0.9.33
 
# downloaden:
 
# vdr-1.3.11.tar.bz2
 
# vdr-analogtv-0.9.33.tar.bz2
 
# und auspacken:
 
 
tar xfj vdr-1.3.11.tar.bz2
 
tar xfj vdr-analogtv-0.9.33.tar.bz2
 
mv analogtv-0.9.33 vdr-1.3.11/PLUGINS/src
 
cd vdr-1.3.11
 
patch -p1 < PLUGINS/src/analogtv/patches/vdr-1.3.0.patch
 
 
# hier noch falls nötig libdvb-0.5.4 installieren,
 
# siehe README im analogtv-Plugin
 
 
make REMOTE=LIRC
 
cd PLUGINS/src
 
ln -s analogtv-0.9.33 analogtv
 
cd ../..
 
make plugins
 
 
# okay, der erste Start mit analogtv
 
# aber erst mal erweitern wir die channels.conf um einen neuen Eintrag:
 
 
wirbels_test:133250:C0D45B6:C:0:1:2:0:A0:0:0:0:0
 
 
# und jetzt!
 
 
./vdr -c /etc/vdr -v /video0 -Panalogtv
 
 
# logisch, beim zappen auf diesen Kanal gibt nur Rauschen. War ja auch ne
 
# x-beliebige Frequenz! also: wir suchen Kanäle.
 
 
'''6) Kanalsuche nach Dumpfbackenart. Einfach alles stur absuchen.'''
 
# Wir erstellen mal wieder ein script. (jaaa, ich weiß!)
 
# nennen wir es einfach tune.sh
 
 
============================================================
 
#/bin/bash
 
# tune.sh
 
TUNE=/usr/src/Treiber/ivtv/utils/ptune.pl
 
 
let "F=48"
 
while [ $F -lt 84 ] ; do
 
let "FREQ=$F*1000 + 250"
 
$TUNE "--frequency=$FREQ"
 
echo "Channel name or return for skipping. Your input?"
 
read S
 
if [ "$S" != "" ] ; then
 
echo "$S:$FREQ:C0D45B6:C:0:1:2:0:A0:0:0:0:0" >> channels.conf
 
fi
 
let "F=$F+7"
 
done
 
 
let "F=105"
 
while [ $F -lt 169 ] ; do
 
let "FREQ=$F*1000 + 250"
 
$TUNE "--frequency=$FREQ"
 
echo "Channel name or return for skipping. Your input?"
 
read S
 
if [ "$S" != "" ] ; then
 
echo "$S:$FREQ:C0D45B6:C:0:1:2:0:A0:0:0:0:0" >> channels.conf
 
fi
 
let "F=$F+7"
 
done
 
 
let "F=175"
 
while [ $F -lt 295 ] ; do
 
let "FREQ=$F*1000 + 250"
 
$TUNE "--frequency=$FREQ"
 
echo "Channel name or return for skipping. Your input?"
 
read S
 
if [ "$S" != "" ] ; then
 
echo "$S:$FREQ:C0D45B6:C:0:1:2:0:A0:0:0:0:0" >> channels.conf
 
fi
 
let "F=$F+7"
 
done
 
let "F=303"
 
while [ $F -lt 860 ] ; do
 
let "FREQ=$F*1000 + 250"
 
$TUNE "--frequency=$FREQ"
 
echo "Channel name or return for skipping. Your input?"
 
read S
 
if [ "$S" != "" ] ; then
 
echo "$S:$FREQ:C0D45B6:C:0:1:2:0:A0:0:0:0:0" >> channels.conf
 
fi
 
let "F=$F+8"
 
done
 
============================================================
 
 
# Das Prinzip ist ebenso stumpf wie simpel.
 
# Den vdr auf eden Kanal "wirbels_test" stellen
 
# (siehe oben!) und dann das script ./tune.sh n einer zweiten shell starten.
 
# Das script tunt auf eine neue Frequenz, fragt dann nach dem Tunen
 
# "Channel name or return for skipping. Your input?"
 
# <Enter>, wenn kein Kanal gefunden wurde, ansonsten KANALNAME<Enter> tippen.
 
# Das ganze dann rund 80 mal..
 
# uffz. Eben die Holzfällermethode.
 
# Zum Schluß muß zu jedem Kanal noch die passende ID aus der Channelmap.h gesucht werden.
 
# Wie, verrät die README von analogtv.
 
# Und zum Schluß: alles an deine channels.conf anfügen
 
 
# Das sieht dann etwa so aus:
 
 
eine Beispiel channels.conf
 
:analog TV
 
ard:210250:C0D45B6:C:0:1:2:0:A0:28106:0:0:0
 
zdf:196250:C0D45B6:C:0:1:2:0:A0:28006:0:0:0
 
sat1:203250:C0D45B6:C:0:1:2:0:A0:46:0:0:0
 
 
# Anm.: Die Zahlen 46, 28006, 28106 stammen aus der channelmap.h
 
# des analogtv-Plugins und müssen per Hand eingetragen werden!
 
 
'''7) optional: epg für die analogen Kanäle'''
 
7.0 benötigt
 
# tvmovie2vdr-0.1.3.tar.bz2, perl
 
 
7.1) ein paar perl-Module nach der README des tvmovie2vdr installieren:
 
 
tar xfj tvmovie2vdr-0.1.3.tar.bz2
 
cd tvmovie2vdr-0.1.3
 
perl -MCPAN -e shell;
 
# (evtl. muss beim ersten Aufruf einiges konfiguriert werden,
 
# irgendwann hat man dan den cpan-prompt)
 
# anschließend:
 
 
install Date::Manip
 
install HTML::Entities
 
install LWP::UserAgent
 
install Compress::Zlib
 
quit
 
 
# die Datei config.pl entsprechend '''deinen'''
 
# Pfaden editieren:
 
$channelsfile = "/etc/vdr/channels.conf";
 
$epgfile = "/video0/epg.data";
 
 
7.2) die channels.pl editieren. Der schwierigste Teil.
 
 
# Hier hilft und das script printchannels.pl aus dem Ordner contrib.
 
cd contrib
 
 
# Allerdings gibt das script für analogtv falsche Frequenzen an,
 
# deswegen editieren wir es vorher:
 
 
if ( $source eq 'T' ) {
 
$frequency=substr($frequency, 0, 3);
 
}
 
if ( $source eq 'C' ) {
 
$frequency=substr($frequency, 0, 3);
 
}
 
$data = $nid>0 ? $tid : $frequency;
 
 
# Auf diese Art und Weise gibt das script nur die ersten drei Stellen der
 
# Frequenz bei Kabel und analog aus. Nun rufen wir das script auf:
 
 
./printchannels.pl -c /etc/vdr/channels.conf
 
# Das script gibt folgendes aus:
 
 
ard C-0-210-28106
 
zdf C-0-196-28006
 
sat1 C-0-203-46
 
 
# Diese Angaben brauchen wir für die channels.pl:
 
@chan{"ard.de"} = ["C-0-210-28106" ,"3" ,"001" ,"37" ,"ARD" ,"71"];
 
@chan{"zdf.de"} = ["C-0-196-28006" ,"3" ,"002" ,"36" ,"ZDF" ,"37"];
 
@chan{"sat1.de"} = ["C-0-203-46" ,"3" ,"005" ,"38" ,"Sat1" ,"39"];
 
 
3) das script muß gestartet werden.
 
 
# zuerst mal von Hand.
 
./tvm2vdr.pl -v
 
 
# Nachdem das script durchgelaufen ist, haben wir im vdr den epg.
 
# (der vdr muß laufen während das script läuft!)
 
 
4) das script muß regelmäßig gestartet werden.
 
 
# Da bietet sich nun eure Phantasie an, ein cronjob wäre hier ideal.
 
# Google hilft euch dabei weiter.
 
 
''wer's bis hierher geschafft hat, hat auf jeden Fall viel Arbeit und Nerven investiert. Hoffentlich mit Erfolg!''
 
 
 
== b) Analog-TV mit einer analogen Fernsehkarte ohne Hardware-Encoder ==
 
 
'''0) noch zu vervollständigen'''
 

Version vom 27. Juni 2004, 18:21 Uhr