Hauppauge WinTV PVR 350 und MythTV installieren

Gargi

Ensign
Registriert
Okt. 2004
Beiträge
163
Da ich mir die besagte Hauppauge WinTV PVR350 hier bei MF zugelegt habe, vielleicht ein kleines Tutorial über das, was ich mit der Karte unter Linux anstelle. Vielleicht motiviert das den einen oder anderen, das mal nachzubasteln ;)


Bevor wir mit irgendeiner Installationsroutine loslegen, müssen wir den Kernel für diverse Kompiliervorgänge vorbereiten. Das erledigen wir in der Konsole mit einem

su
cd /usr/src/linux
make cloneconfig
make prepare-all



==============================================
==============================================
*******IVTV Module für Hauppauge installieren******
==============================================
==============================================

1) Zuerst müssen wir nun die Module für die Hauppauge WinTV PVR herunterladen. Download der Module unter:
http://ivtvdriver.org/index.php/Download

2) Nun entpacken wir das heruntergeladene Tar-Archiv mit einem
tar -zvxf ivtv-0.4.0.tar.gz
innerhalb unseres build-Verzeichnisses.

3) Dann wechseln wir in das durch das Entpacken neu entstandene Verzeichnis:
cd ivtv-0.4.0

4) Die Module werden dann wie gewohnt kompiliert und installiert:
make
su
make install


5) Als root benennen wir dann alte Kernemodule um:
cd /lib/modules/`uname -r`/kernel/drivers/media/video/
mv msp3400.ko msp3400.ko.old
mv tveeprom.ko tveeprom.ko.old
mv tuner.ko tuner.ko.old
mv tda9887.ko tda9887.ko.old


6) Nun erstellen wir im Verzeichnis etc/modprobe.d/ eine Textdatei "tv" mit folgendem Inhalt:
Code:
alias char-major-81 videodev
options i2c-algo-bit bit_test=1
alias char-major-81-0 ivtv
alias char-major-81-1 off
alias char-major-81-2 off
alias char-major-81-3 off
Zudem fügen wir in die Datei /etc/modprobe.conf.local die folgende Zeile ein:
Code:
alias char-major-81-0 ivtv

7) Der Treiber läd nun die Firmware in das EEPROM der Karte. Damit diese ordnungsgemäß funktioniert läd man sich die Firmware erstmal über
ftp://ftp.shspvr.com/download/wintv-pvr_150-500/inf/pvr_2.0.24.23035.zip
herunter und entpackt HcwMakoA.ROM und HcwFalcn.rom nach /usr/lib/hotplug/firmware
Dann
ftp://ftp.shspvr.com/download/wintv-pvr_250-350/inf/pvr_1.18.21.22254_inf.zip
in das utils Verzeichnis der Modulesourcen kopieren (das Verzeichnis "utils" findet Ihr in Euerem buildverzeichnis der entpackten Modulquellen, in den Ihr die Module bereits kompiliert habt) und dort
utils/ivtvfwextract.pl pvr_1.18.21.22254_inf.zip
ausführen.
ivtv-fw-enc.bin und ivtv-fw-dec.bin werden dadurch nach /lib/modules/ kopiert.
Nun kopiert bitte als root noch alle Dateien aus
/lib/modules/2.6.{euere-kernelversion}/ivtv
nach
/lib/modules/2.6.{euere-kernelversion}/extra
und lasst alle Module überschreiben. Alternativ sichert vorher alle Module aus dem Verzeichnis dort, sollte etwas schiefgehen. Danach ein
depmod -a
ausführen

8 ) Dann eventuelle laufende Module mit
/sbin/rmmod ivtv cx25840 tuner tveeprom msp3400 wm8775 tda9887 saa7115 saa7127
stoppen

9) Jetzt Module mit
/sbin/modprobe ivtv
starten

10) Danach müsst Ihr die PAL Auflösung an der Konsole einstellen:
ivtvctl --device=/dev/video0 -f width=720,height=576

11) Einen Sender einstellen:
ivtv-tune --device=/dev/video0 -teurope-west -cE5

12) Jetzt können wir die Wiedergabe (Mplayer installieren!) testen:
mplayer /dev/video0

13) Einen Videostream testhalber aufnehmen:
cat /dev/video0 > testfile.mpg

Sollte die Karte nicht ansprechbar sein, dann an der Konsole
dmesg
eingeben und nach einer Fehlermeldung suchen. Ein korrekter Start müsste in etwa wie folgt aussehen:
Code:
ivtv:  ==================== START INIT IVTV ====================
ivtv:  version 0.4.0 (tagged release) loading
ivtv:  Linux version: 2.6.11.4-21.9-default gcc-3.3
ivtv:  In case of problems please include the d**** info
ivtv:  between the START INIT IVTV and END INIT IVTV lines when
ivtv:  mailing the ivtv-devel mailinglist.
ivtv0: Autodetected WinTV PVR 350 card (iTVC15 based)
ACPI: PCI interrupt 0000:02:0a.0[A] -> GSI 18 (level, low) -> IRQ 185
ivtv0: Unreasonably low latency timer, setting to 64 (was 32)
i2c-algo-bit.o: (0) scl=1, sda=1
i2c-algo-bit.o: (1) scl=1, sda=0
i2c-algo-bit.o: (2) scl=1, sda=1
i2c-algo-bit.o: (3) scl=0, sda=1
i2c-algo-bit.o: (4) scl=1, sda=1
i2c-algo-bit.o: ivtv i2c driver #0 passed test.
tuner (ivtv): chip found at addr 0xc2 i2c-bus ivtv i2c driver #0
ivtv0: i2c attach to card #0 ok [client=(tuner unset), addr=61]
tveeprom: module not supported by Novell, setting U taint flag.
tveeprom: ivtv version
tveeprom: Hauppauge: model = 48139, rev = K257, serial# = 7880779
tveeprom: tuner = Philips FM1216 ME MK3 (idx = 57, type = 38)
tveeprom: tuner fmt = PAL(B/G) PAL(I) SECAM(L/L') PAL(D/K) (eeprom = 0x74, v4l2 = 0x00400e17)
tveeprom: audio processor = MSP4418 (type = 19)
tveeprom: decoder processor = SAA7115 (type = 13)
ivtv0: i2c attach to card #0 ok [client=tveeprom, addr=50]
saa7115: module not supported by Novell, setting U taint flag.
saa7115 3-0021: saa7115 found @ 0x42 (ivtv i2c driver #0)
ivtv0: i2c attach to card #0 ok [client=saa7115, addr=21]
saa7127: module not supported by Novell, setting U taint flag.
saa7127 3-0044: saa7129 found @ 0x88 (ivtv i2c driver #0)
ivtv0: i2c attach to card #0 ok [client=saa7127, addr=44]
msp3400: module not supported by Novell, setting U taint flag.
msp34xx: ivtv version
msp34xx: init: chip=MSP3418W-B3, has NICAM support, simple (D) mode, simpler (G) no-thread mode
msp34xx: $Id$ compiled on: Dec  2 2005 01:37:50
ivtv0: i2c attach to card #0 ok [client=MSP3418W-B3, addr=40]
tda9887: module not supported by Novell, setting U taint flag.
tda9885/6/7: (ivtv) chip found @ 0x86
ivtv0: i2c attach to card #0 ok [client=tda9887, addr=43]
bootsplash: status on console 0 changed to on
saa7134[0]/audio: audio carrier scan failed, using 5.500 MHz [default]
ivtv0: loading /lib/modules/ivtv-fw-enc.bin
ivtv0: loading /lib/modules/ivtv-fw-dec.bin
ivtv0: Encoder revision: 0x02050032
ivtv0: Decoder revision: 0x02020023
ivtv0: Allocate DMA encoder MPEG stream: 128 x 32768 buffers (4096KB total)
ivtv0: Allocate DMA encoder YUV stream: 161 x 12960 buffers (2048KB total)
ivtv0: Allocate DMA encoder VBI stream: 80 x 26208 buffers (2048KB total)
ivtv0: Allocate DMA encoder PCM audio stream: 455 x 4608 buffers (2048KB total)
ivtv0: Create encoder radio stream
ivtv0: Allocate DMA decoder MPEG stream: 16 x 65536 buffers (1024KB total)
ivtv0: Allocate DMA decoder VBI stream: 512 x 2048 buffers (1024KB total)
ivtv0: Create decoder VOUT stream
ivtv0: Allocate DMA decoder YUV stream: 20 x 51840 buffers (1024KB total)
ivtv0: loading /lib/modules/ivtv_init_mpeg.bin
tuner: type set to 38 (Philips PAL/SECAM multi (FM1216ME MK3)) by ivtv i2c driver #0
ivtv0: Initialized WinTV PVR 350, card #0
ivtv:  ====================  END INIT IVTV  ====================


==============================================
==============================================
******************MythTV installieren******************
==============================================
==============================================

1) Zuerst installieren wir mittels YAST folgende Perl-Erweiterungen (falls noch nicht vorhanden):
perl-DateManip
perl-XML-Writer
perl-libwww-perl
perl-html-tree
perl-XML-XPath
perl-XML-Twig


2) Danach müssen wir uns folgenden Pakete aus dem Netz ziehen:
XMLTV von http://sourceforge.net/project/showfiles.php?group_id=39046
Danach geben wir in der Konsole folgende Befehle ein, um uns die MythTV Pakete in der aktuellsten Version herunter zu laden:
Code:
svn co http://svn.mythtv.org/svn/trunk/mythtv
svn co http://svn.mythtv.org/svn/trunk/mythplugins
svn co http://svn.mythtv.org/svn/trunk/myththemes

3) Jetzt bügeln wir einen kleinen Fehler in der Verlinkung der SuSE Distribution aus:
su
ln -s /usr/lib/qt3/bin/qmake /usr/bin/qmake
exit


4) Nun wechseln wir in das Sourceverzeichnis des Myth und übersetzen diesen mit folgenden Kompilierungsschritten:
cd mythtv
./configure
qmake mythtv.pro
make
su
make install
exit


5) Als nächstes übersetzen wir die Plugins. Ich habe nun nicht alle Plugins aktiviert, bzw. aufgrund zweier Kompilerfehler deaktiviert. Dies kann man in späteren Versionen eventuell wieder einschließen.
cd cd mythplugins
./configure --enable-transcode --enable-vcd --disable-mythbrowser --disable-opengl
qmake mythplugins.pro
make
su
make install
exit


6) Themes kompilieren:
cd myththemes
qmake myththemes.pro
su
make install
exit


7) Nun entpacken wir den XMLTV mit einem
tar -xvjf xmltv-0.5.41.tar.bz2
Danach wechseln wir in das XMLTV-Verzeichnis
cd xmltv-0.5.41
und starten die Konfiguration mit:
perl Makefile.PL
Nun müssen wir alle Fragen mit "NO" beantworten, außer wnn nach der Installation des tv_grab_de_tvtoday gefragt wird. Hier beantworten wir dies als einziges mit "YES".
Jetzt können wir wieder wie gewohnt fortfahren:
make
su
make install
exit

An der Stelle haben wir nun alle relevanten Programme übersetzt und installiert. Die nächsten Schritte beschäftigen sich dann mit der Konfiguration

8 ) mysql vorbereiten und einrichten:
Zunächst installieren wir über YAST die Pakete mysql und mysql-administrator. Zudem muss die Datenbank gestartet werden. Den Dämon aktivieren wir am besten über den Runlevel-Editor. Hierzu den YAST starten, danach "System" auswählen und den "Runlevel-Editor" anklicken. In der Liste "mysql" auswählen und den Button "Aktivieren" anklicken. Danach vergeben wir sofort ein Passwort für den Rootaccount:
mysqladmin -u root password "neues passwort"
{die Hochkommas können dabei weggelassen werden, es sei denn, das Passwort beinhaltet ein Leerzeichen}
Ebenso ein Passwort für den Localhost:
mysqladmin -u root -h "Hostname des Rechners" password "neues Passwort"
Nun füllen wir die Datenbank mit den mythtv-Einträgen. Hierzu in das Buildverzeichnis mythtv/database wechseln und dort folgenden Befehl eingeben:
mysql -p -u root < mc.sql
Nach der Passwortabfrage wird nun die Datenbank "mythconverg" angelegt. Nun rufen wir das Programm mysql-administrator auf und loggen uns mit unserem Root-Account dort ein. Unter dem Punkt "User Administration" legen wir einen User namens "mythtv" an. Unter "Schema Privileges" wählen wir dann die Datenbank "mythconverge" aus und fügen alle "available Privileges" zu den "assigned Privileges" hinzu. Danach über den Button "Apply Changes" speichern. Somit haben wir einen eigenen User angelegt, der Zugriff auf die Datenbank hat und wir müssen nicht innerhalb diverser Konfigurationsdateien mit dem Root-Account arbeiten.

9) Nun wird die Sache wirklich spannend. Wir starten nun zum ersten Mal ein Teil des MythTV. Hierzu müssen wir die erste Konfigurationshürde nehmen. An der Konsole gebt dazu
mythtv-setup
ein. Ihr werdet als erstes nach der Sprache gefragt und dann nach den Zugagngsdaten der Datenbank. Das Menü ist soweit selbsterklärend. Für den gefragten Rechnernamen könnt Ihr auch dessen IP eingeben. Wenn Ihr soweit alles ausgefüllt habt, hommt Ihr in das Konfigurationsmenü.

Menüpunkt 1 (Allgemeines): Hier arbeitet Euch durch die einzelnen Punkte durch. Stellt dabei die Video-Norm auf "PAL", den Sender auf "europe-west" und ein Verzeichnis ein, auf das Ihr Schreibzugriff habt. Hier werden dann Euere Videodaten gespeichert.

Menüpunkt 2 (TV-Karten): Dort wählt Ihr "Neue TV-Karte" aus. Beim Kartentyp dann die entsprechende Kartenvariante (analog, mpeg2-Karte etc). Das Videogerät wird in der Regel /dev/video0 sein. Solltet Ihr mehrere Karten einrichten, dann achtet bitte darauf, welches device Ihr jeweils gerade konfigurieren möchtet. Beim Standardeingang wählt Ihr "television" aus (bei der Hauppauge PVR ist es dann "tuner0"). Ihr klickt dann auf "Fertig" und danach verlasst das Menü einfach mit "ESC".

Menüpunkt 3 (Videoquellen): Hier "neue Videoquelle" auswählen. In der ersten Zeile vergebt Ihr einen Namen. Bei XMLTV Skript wählt Ihr "Germany" aus. Wenn Ihr hier auf fertig drückt, erscheint ein Ladebalken. An der Stelle "Alt+Tab" betätigen bis Ihr ein Konsolenfenster seht. Dort erfasst Ihr dann alle Sender. Danach wieder mit "Alt+Tab" in das MythTV Setup wechseln und das nächste Dialog-Fenster mit "OK" bestätigen. Mit "ESC" danach wieder zurück in das Hauptmenü.

Menüpunkt 4 (Verknüpfung): Zuerst wählt Ihr den Eingang aus, den Ihr mit der Videoquelle verknüpfen wollt. In unserem Fall ist es dann /dev/video0 -> tuner0 . Im nächsten Fenster wählt Ihr dann als Videoquelle den Namen der Liste aus, den Ihr unter Punkt 3 vergeben habt. Als Anfangskanal einfach die "E5" eingeben. Danach auf "Fertig".

Menüpunkt 5 (Sender bearbeiten): Hier auf "Channel Scanner" klicken. Als Videoquelle und Karte müssen wieder Euere Daten zu sehen sein. Bim "Scantyp" sollte "Full Scan" stehen. Danach klickt Ihr auf "Weiter". Jetzt läuft der Scan durch. Nach einer Weile sollten dann alle Kanäle eingetragen sein.

Verlasst nun das Setup durch mehrmaliges Drücken der "ESC" Taste.

10) Nun starten wir das Backend an der Konsole mit
mythbackend

11) An einem weiteren Konsolenfenster geben wir dann zum Auffüllen der Kanalliste in die Datenbank folgenden Befehl ein:
mythfilldatabase --manual
Das Auffüllen der Daten kann durchaus eine Weile dauern, da hier alles online abgearbeitet werden muss.

12) Soweit schonmal herzlichen Glückwunsch! Das Programm kann nun an der Konsole mit
mythtvfrontend
gestartet werden.

Hinweis zur Treiberversion 0.4.1 und höher: Der Treiber sucht nun nach einem anderen Firmwarenamen und ist auf das Hotplug-Verzeichnis angewiesen. Als Root dann folgendes eingeben:

cd /usr/lib/hotplug/firmware
ln -s ivtv-fw-dec.bin v4l-cx2341x-dec.fw
ln -s ivtv-fw-enc.bin v4l-cx2341x-enc.fw


Dann ist Mutti wieder brav ;)


Hinweis für die 10.1er Suse !!! Zum einen passt im momentanen Treibermodul (erhältlich unter http://ivtvdriver.org/ ) - zumindest für die 64bit Variante - 0.6.2 ein Headerfile irgendwo nicht ganz. Hierzu bitte /driver/ivtv-osd.c manuell aus dem cvs patchen. Dazu die Datei hier
http://ivtvdriver.org/viewcvs/ivtv/tags/0.6.2/driver/
herunterladen und überkopieren. Eine diff dazu werde ich nicht schreiben, denn das Umkopieren geht schneller ;)

Module: Folgende Module werden gebaut:

ivtv-fb.ko
ivtv.ko
saa717x.ko
upd64031a.ko
upd64083.ko
wm8739.ko


Diese finden sich dann nach dem make install unter /lib/modules/[kernel-version]/ivtv
Diese müssen dann nach
/lib/modules/[kernel-version]/kernel/drivers/media/video
kopiert werden. Sicherheitshalber die alten Module umbenennen:

cd /lib/modules/`uname -r`/kernel/drivers/media/video
mv ivtv-fb.ko ivtv-fb.ko.old
mv ivtv.ko ivtv.ko.old
mv saa717x.ko saa717x.ko.old
mv upd64031a.ko upd64031a.ko.old
mv upd64083.ko upd64083.ko.old
mv wm8739.ko wm8739.ko.old


In vorherigen Versionen gab es noch zusätzliche Module wie das tveeprom. Diese erstmal einfach beibehalten. Ich habe noch nicht herausgefunden, wieso diese Module fehlen, denn zum Start der Module werden sie verwendet:
Code:
tveeprom 5-0050: Hauppauge model 48139, rev K257, serial# 7880779
tveeprom 5-0050: tuner model is Philips FM1216 ME MK3 (idx 57, type 38)
tveeprom 5-0050: TV standards PAL(B/G) PAL(I) SECAM(L/L') PAL(D/D1/K) (eeprom 0x74)
tveeprom 5-0050: audio processor is MSP4418 (idx 25)
tveeprom 5-0050: decoder processor is SAA7115 (idx 19)
tveeprom 5-0050: has radio, has IR remote

Firmware:
Die Firmware erhält man über ivtvdriver.org fertig zusammengepackt und umbenannt unter folgendem Link: http://dl.ivtvdriver.org/ivtv/firmware/firmware.tar.gz
Die Files müssen dann unter entgegen der vorherigen Suse Version in das /lib/firmware kopiert werden.

Testing: Zum Testen erstmal als root (su) an der Konsole die alten Module stoppen:

/sbin/rmmod ivtv cx25840 tuner tveeprom msp3400 wm8775 tda9887 saa7115 saa7127

Danach die Karte wieder initialisieren:

/sbin/modprobe ivtv

Jetzt

dmesg

eingeben und checken, ob die Karte sauber initialisiert wurde. Würde die Firmware nicht gefunden werden, gibt es einen entsprechenden Output. Ansonsten sieht eine sauber initialisierte so aus:

Code:
ivtv:  ==================== START INIT IVTV ====================
ivtv:  version 0.6.2 (tagged release) loading
ivtv:  Linux version: 2.6.16.13-4-default gcc-4.1
ivtv:  In case of problems please include the d**** info between
ivtv:  the START INIT IVTV and END INIT IVTV lines, along with
ivtv:  any module options, when mailing the ivtv-users mailinglist.
ivtv0: Autodetected Hauppauge WinTV PVR-350 card (cx23415 based)
ACPI: PCI Interrupt 0000:01:08.0[A] -> Link [APC3] -> GSI 18 (level, low) -> IRQ 50
tveeprom 5-0050: Hauppauge model 48139, rev K257, serial# 7880779
tveeprom 5-0050: tuner model is Philips FM1216 ME MK3 (idx 57, type 38)
tveeprom 5-0050: TV standards PAL(B/G) PAL(I) SECAM(L/L') PAL(D/D1/K) (eeprom 0x74)
tveeprom 5-0050: audio processor is MSP4418 (idx 25)
tveeprom 5-0050: decoder processor is SAA7115 (idx 19)
tveeprom 5-0050: has radio, has IR remote
tuner 5-0061: chip found @ 0xc2 (ivtv i2c driver #0)
tda9887 5-0043: chip found @ 0x86 (ivtv i2c driver #0)
saa7115 5-0021: saa7115 found @ 0x42 (ivtv i2c driver #0)
saa7127 5-0044: saa7129 found @ 0x88 (ivtv i2c driver #0)
msp3400 5-0040: MSP4418G-B3 found @ 0x80 (ivtv i2c driver #0)
msp3400 5-0040: MSP4418G-B3 supports nicam and radio, mode is autodetect and autoselect
ivtv0: loaded v4l-cx2341x-enc.fw firmware (262144 bytes)
ivtv0: loaded v4l-cx2341x-dec.fw firmware (262144 bytes)
ivtv0: Encoder revision: 0x02050032
ivtv0: Decoder revision: 0x02020023
ivtv0: Allocate DMA encoder MPEG stream: 128 x 32768 buffers (4096KB total)
ivtv0: Allocate DMA encoder YUV stream: 161 x 12960 buffers (2048KB total)
ivtv0: Allocate DMA encoder VBI stream: 80 x 26208 buffers (2048KB total)
ivtv0: Allocate DMA encoder PCM audio stream: 455 x 4608 buffers (2048KB total)
ivtv0: Create encoder radio stream
ivtv0: Allocate DMA decoder MPEG stream: 16 x 65536 buffers (1024KB total)
ivtv0: Allocate DMA decoder VBI stream: 512 x 2048 buffers (1024KB total)
ivtv0: Create decoder VOUT stream
ivtv0: Allocate DMA decoder YUV stream: 20 x 51840 buffers (1024KB total)
ivtv0: loaded v4l-cx2341x-init.mpg firmware (155648 bytes)
tuner 5-0061: type set to 38 (Philips PAL/SECAM multi (FM1216ME MK3))
ivtv0: Initialized Hauppauge WinTV PVR-350, card #0
ivtv:  ====================  END INIT IVTV  ====================

Dann als normaler User die Karte einstellen:

ivtvctl --device=/dev/video0 -f width=720,height=576

Tuner setzen:

ivtv-tune --device=/dev/video0 -teurope-west -cE5

Und jetzt mittels Mplayer den Output ansehen:

mplayer /dev/video0

Gestreamt werden kann wie gewohnt mit

cat /dev/video0 > testfile.mpg


cu
Gargi
 

Ähnliche Themen

Antworten
12
Aufrufe
15.260
Zurück
Oben