Um die Hauppauge PVR 350 ansprechen zu können, bedarf es eines entsprechenden Treibers. Der ivtv-Treiber mit den Weiterentwicklungen von Chris Kennedy funktioniert in unserem Falle ausgezeichnet.
Inhaltsverzeichnis

Um die Hauppauge PVR 350 ansprechen zu können, bedarf es eines entsprechenden Treibers.
Der ivtv-Treiber mit den Weiterentwicklungen von Chris Kennedy funktioniert in unserem Falle ausgezeichnet.

Benötigte Dateien
Datei Beschreibung Download
ivtv-0.2.0-rc3b.tgz Die aktuelle und stabile Version des ivtv-Treibers. Download
pvr250_18_22035.exe Die Windows Treiber für die Hauppauge PVR350, aus dieser Datei wird die Firmware extrahiert und durch den ivtv Treiber in die Karte geladen. Download
Video-ivtv-0.13.tar.gz Ein Perl Package für den ivtv-Treiber, wird für den Test benötigt. Download
Video-Frequencies-0.03.tar.gz Ebenfalls ein Perl Paket, das für den Test benötigt wird. Download
ivtv-0.2.0-rc3b-kthreads.patch Ein Minipatch zur Korrektur zweier IFDEF Statements in ivtv-kthreads.c Download

Bei meiner Installation lege ich alle benötigten Dateien in das Verzeichnis /usr/local/src/pvr/archiv.

Installation des ivtv-Treibers

Die Installation des ivtv-Treibers ist seit der Version 0.2 sehr viel einfacher geworden, da der Treiber mittlerweile sehr viele Einstellungen automatisch erkennt und richtig konfiguriert.

  • Entpacken des Treibers:
    cd /usr/local/src/pvr
    tar xvzf archiv/ivtv-0.2.0-rc3.tgz
  • Patchen des Treibers:
    patch -p0
  • Übersetzen des Treibers:
    cd ivtv-0.2.0-r3b
    cd driver
    make
  • Installieren des Treibers:
    make install
  • Aktualisieren der Modulabhängigkeiten:
    modules-update; depmod -a
  • Übersetzen der Utilities:
    cd ../utils
    make
Einrichten des Treibers

Damit der Treiber einwandfrei funktionieren kann benötigt die Karte ihre Firmware.
Mit dem ivtv-Treiber kommt ein Tool, das die Firmware aus dem Windows-Archiv extrahiert.

  • Extrahieren der Firmware:
    emerge unzip
    perl ./ivtvfwextract.pl ../../archiv/pvr250_18_22035.exe
    Wenn alles geklappt hat ergibt ein ls -l /lib/modules
    pvr utils # ls -l /lib/modules/
    total 524
    drwxr-xr-x 4 root root 4096 Dec 13 21:56 2.4.26-gentoo-r13
    -rw-r–r– 1 root root 262144 Dec 15 08:40 ivtv-fw-dec.bin
    -rw-r–r– 1 root root 262144 Dec 15 08:40 ivtv-fw-enc.bin
    Die beiden Dateien ivtv-fw-* enthalten die Firmware.
Testen des Treibers
  • Laden des Treibers:
    modprobe ivtv
  • Prüfen des Ladevorgangs:
    dmesg
    Der Ladevorgang erzeugt jede Menge Output im syslog /var/log/messages.
    Steht am Ende kein Fehler sollte alles glatt gegangen sein (Beispieloutput-Laden ivtv-Treiber).
    Ein lsmod ergibt etwas folgendes:
    pvr utils # lsmod
    Module Size Used by Not tainted
    msp3400 19264 1 (autoclean)
    saa7127 7428 0 (autoclean) (unused)
    saa7115 7072 0 (autoclean) (unused)
    tuner 9672 1 (autoclean)
    tveeprom 7392 0 (autoclean) (unused)
    ivtv 784448 0 (unused)
    videodev 4384 9 [ivtv]]
    i2c-algo-bit 6600 1 [ivtv]]
    i2c-core 12804 0 [msp3400 saa7127 saa7115 tuner tveeprom i2c-algo-bit]]
    rtc 7336 0 (autoclean)
  • Test des Treibers: Um den Treiber zu testen habe ich einen Fernseher über das mitgelieferte
    Scart-Kabel mit der PVR 350 verbunden. Der Test an sich ist eine einfache Sache, hat man
    die notwendigen Perl Pakete installiert.

    emerge Config-IniFiles
    cd /usr/local/src/pvr
    tar xvzf archiv/Video-Frequencies-0.03.tar.gz
    cd Video-Frequencies-0.03/
    perl Makefile.PL
    make
    make test
    make install
    cd ../Video-ivtv-0.13/
    perl Makefile.PL
    make
    make test
    make install
    cd /usr/local/src/pvr/ivtv-0.2.0-rc3b/utils/
    perl ./ptune.pl -c 7 (schaltet auf Kanal 7, das ist bei uns das ZDF)
    dd if=/dev/video0 of=/dev/video16 bs=64k (nimmt alles was auf Kanal 7 reinkommt und gibt es über das Scart Kabel aus)Selbst wenn ich auf diese Weise lange Fernsehen schaue, ergibt sich lediglich eine CPU-Last von ca. 10%. An dieser Stelle erkannte ich warum es so wichtig ist einen MPEG2-Decoder auf der Fernsehkarte zu haben. ;-)