|
|
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'''
| |