# kernel-2.6.22 + ivtv Modul

## oliver2104

Hallo,

bin extra auf gentoo-sources-2.6.22-r5 umgestiegen, um meine

Hauppauge PVR-350 mit dem Kernel-eigenem ivtv Modul zu betreiben.

(d.h. vor allem möchte ich # mplayer /dev/video0 verwenden können)

hab nun das Howto auf www.ivtvdriver.org befolgt:

  Kernel configuration:  It is recommended to compile all as modules. 

    Ivtv will not be able to load the firmware (yet) if it is build in!!

  For kernel >=2.6.22

    * Loadable module support -> Automatic kernel module loading (CONFIG_KMOD)

    * Device Drivers -> Multimedia Devices -> Video For Linux (CONFIG_VIDEO_DEV)

    * Device Drivers -> I2C support (CONFIG_I2C)

    * Device Drivers -> Multimedia Devices -> Enable Video For Linux API 1 (DEPRECATED) (CONFIG_VIDEO_V4L1)

    * Conexant cx23416/cx23415 MPEG encoder/decoder support (CONFIG_VIDEO_IVTV)

dazu schon die erste Frage: wird das bttv-module (CONFIG_VIDEO_BT848) jetzt nicht mehr benötigt ?

und weiter gehts im Howto mit:

  Download and install:

    IVTV is part of kernel 2.6.22 so you will only have to download the userspace tools.

    No instalation of modules is needed except for ivtv-fb and saa717x if you need them.

    The first step is to Download the latest stable release of the driver.

    1.0.x for kernel >= 2.6.22

hab nun die aktuellste Version (ivtv-1.0.2) heruntergeladen, entpackt und kompiliert.

jetzt kommen im Howto Anweisungen für ältere Kernel Versionen:

    IVTV CARD INSTALLATION ALONE FOR KERNEL <= 2.6.15

    IVTV AND DVB CARD INSTALLATION TOGETHER FOR KERNEL <= 2.6.15

diese Anweisungen hab ich ignoriert. Und dann kommt:

    FINAL STEP

    Once that has been done you need to update module dependencies

    depmod -a

hab ich gemacht.

als nächstes muss die Firmware installiert werden. Hab firmware.tar.gz runtergeladen, entpackt und die

Dateien nach /lib/firmware kopiert.

Nun wirds spannend, denn das Modul wird geladen.

    Load the modules

    If you have an older version of ivtv loaded, you need to remove the modules before you can load the new modules.

    You also have to stop the application that's using the tuner cards before you can remove the modules.

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

    Once this is done, you should be able to load the module with

    /sbin/modprobe ivtv

Das Kommando modprobe ivtv braucht ca. 3 min bis der prompt komentarlos zurückkommt.

Da kommen schon erste Zweifel auf.

Im Howto wird jetzt empfohlen die Karte zu testen:

    Test the card

    cat /dev/video0 > test.mpg

    which will produce an MPEG2 file that you can play with mplayer.

Aber wenn ich das mache, kommt:

cat: /dev/video0: Kein passendes Gerät gefunden

Also was hab ich jetzt falsch gemacht ?

Bitte um Hilfe

----------

## firefly

öhm was sagt dmesg nach dem laden des moduls?

----------

## oliver2104

Danke

Gute Idee,

dmesg sagt folgendes:

Linux video capture interface: v2.00

ivtv:  ==================== START INIT IVTV ====================

ivtv:  version 1.0.0 (2.6.22-gentoo-r5 SMP mod_unload PENTIUM4 ) loading

ivtv0: Autodetected Hauppauge card (cx23415 based)

ivtv0: unable to open firmware v4l-cx2341x-enc.fw (must be 376836 bytes)

ivtv0: did you put the firmware in the hotplug firmware directory?

ivtv0: Retry loading firmware

ivtv0: unable to open firmware v4l-cx2341x-enc.fw (must be 376836 bytes)

ivtv0: did you put the firmware in the hotplug firmware directory?

ivtv0: Error initializing firmware

ivtv0: Error -19 on initialization

ivtv:  ====================  END INIT IVTV  ====================

an der Datei v4l-cx2341x-enc.fw  sollte es nicht liegen, die hat genau 376836 bytes.

also vielleicht falsches Verzeichnis. Hab jetzt das Internet durchstöbert, wo denn eigentlich

das Verzeichnis /firmware stehen sollte. Ist scheinbar von der kernel-version und der Distribution abhängig.

mittlerweile hab ich alle firmware-dateien in folgende Verzeichnisse kopiert:

/lib/firmware/

/usr/lib/firmware/

/usr/lib/hotplug/firmware/

/usr/local/lib/firmware/

bringt aber alles nichts, dmesg bleibt wie oben angeführt.

bin etwas ratlos.

----------

## sprittwicht

Öh, ganz blöde Frage: Hast du ivtv auch "von Hand" kompiliert?

Wenn ja, mach beides nochmal weg und dann: emerge ivtv.

Das installiert auch automatisch die Firmware (media-tv/pvr-firmware).

----------

## oliver2104

die Frage ist gar nicht so blöd, weil ich das ganze eher ungeschickt angegangen bin.

hab nämlich zuerst sowohl ivtv-1.0.2 als auch die neueste Firmware als *.tar.gz runtergeladen und kompiliert bzw. verwendet.

bin erst später draufgekommen, dass es ivtv und pvr-firmware auch als gentoo-source gibt.

hab dann beide pakete einfach "drüber emerged", die Probleme sind aber geblieben.

Insofern also eine gute Idee, alles rückgängig zu machen und es nur mit den gentoo-paketen allein neu zu versuchen.

Könnte mir vorstellen:

die gentoo-pakete mit  #emerge --unmerge ivt bzw. pvr-firmware zunächst wieder zu entfernen,

alle Dateien in sämtlichen /firmware Verzeichnissen zu löschen, 

wüsste aber jetzt nicht wie ich das manuell installierte ivtv (make, make install) spurlos wegmachen kann.

----------

## bbgermany

Hi,

die im Kerneltree vorhandenen Treiber benötigen schon passenden Firmware. Diese gibt es nur via: emerge -av ivtv. Da jedoch das Paket ivtv nicht sauber mit Kernelversionen >2.6.20 arbeitet, musst du dir nen Workaround basteln, so wie ich das gemacht habe.

1. gentoo-sources <=2.6.20 installieren

2. /usr/src/linux auf die gentoo-sources-2.6.20-r(irgendwas) setzen

3. ivtv installieren

4. den Link wieder ändern und den aktuellen Kernel 2.6.22 konfigurieren/compilieren/installieren

5. Booten und Modul laden. 

Nach den 5 Schritten funktionierte das Modul dann endlich bei mir. Worauf du auch achten solltest, ist, dass das Firmwarefile den richtigen Namen hat. In deinem Fall war das zwar schon so, jedoch die Dateigröße passte nicht.

MfG. Stefan

----------

## oliver2104

Hallo,

Danke für Deinen Tip.

Hab die PVR-350 schon einmal mit einem älteren Kernel zum Laufen gekriegt.

Welche Kernel-Version das damals war und wie das funktioniert hat weiss ich nicht mehr.

Weiss nur, war sehr mühsam und war irgendwie wie Alchemie (ein wenig davon und ein bisschen von dem)

und irgendwann hats funktioniert.

Beim nächsten Kernel-update war wieder alles weg.

Die ganze Bastelei wollt ich mir nicht wieder antun.

Und dann wird Kernel 2.6.22 mit ivtv angekündigt, hab mich gefreut und sogleich darauf umgestellt.

Aber auch hier geht anscheinend nichts ohne workarounds.

Versteh das Ganze nicht, wie kann man ivtv-Unterstützung ankündigen, ohne das es funktioniert ?

liebe Grüße,

Oliver

----------

## bbgermany

Hi,

es funktioniert schon, besser als früher. Wenn ich daran denke, was ich für Schwierigkeiten hatte, als ich das erste mal versucht mein PVR150MCE zum laufen zu bringen. Da hat die Firmware auch nicht mitgespielt. Wenn du eine Kopie von meiner lauffähigen Firmware haben möchtest, sende mir einfach eine PM mit deiner Email. Ich lass dir dann meine zukommen.

```
[   27.561100] ivtv:  ==================== START INIT IVTV ====================

[   27.561104] ivtv:  version 1.0.0 (2.6.22-gentoo-r2 SMP mod_unload ) loading

[   27.974189] hda_codec: Unknown model for ALC883, trying auto-probe from BIOS...

[   28.224384] ivtv0: Autodetected Hauppauge card (cx23416 based)

[   28.226438] ACPI: PCI Interrupt Link [APC2] enabled at IRQ 17

[   28.226451] ACPI: PCI Interrupt 0000:01:09.0[A] -> Link [APC2] -> GSI 17 (level, low) -> IRQ 17

[   28.987066] ivtv0: loaded v4l-cx2341x-enc.fw firmware (376836 bytes)

[   29.212017] ivtv0: Encoder revision: 0x02060039

[   29.261758] tveeprom 0-0050: Hauppauge model 26559, rev F089, serial# 9315478

[   29.261763] tveeprom 0-0050: tuner model is TCL MFPE05 2 (idx 89, type 38)

[   29.261767] tveeprom 0-0050: TV standards PAL(B/G) PAL(I) SECAM(L/L') PAL(D/D1/K) (eeprom 0x74)

[   29.261771] tveeprom 0-0050: audio processor is CX25843 (idx 37)

[   29.261773] tveeprom 0-0050: decoder processor is CX25843 (idx 30)

[   29.261777] tveeprom 0-0050: has radio, has no IR receiver, has no IR transmitter

[   29.261780] ivtv0: Autodetected Hauppauge WinTV PVR-150

[   29.276978] tuner 0-0043: chip found @ 0x86 (ivtv i2c driver #0)

[   29.277002] tda9887 0-0043: tda988[5/6/7] found @ 0x43 (tuner)

[   29.279992] tuner 0-0061: chip found @ 0xc2 (ivtv i2c driver #0)

[   29.308040] cx25840 0-0044: cx25843-24 found @ 0x88 (ivtv i2c driver #0)

[   32.530140] cx25840 0-0044: loaded v4l-cx25840.fw firmware (16382 bytes)

[   32.610332] wm8775 0-001b: chip found @ 0x36 (ivtv i2c driver #0)

[   32.654751] tuner 0-0061: type set to 38 (Philips PAL/SECAM multi (FM1216ME MK3))

[   32.977131] ivtv0: Registered device video0 for encoder MPEG (4 MB)

[   32.977336] ivtv0: Registered device video32 for encoder YUV (2 MB)

[   32.977482] ivtv0: Registered device vbi0 for encoder VBI (1 MB)

[   32.977599] ivtv0: Registered device video24 for encoder PCM audio (1 MB)

[   32.977850] ivtv0: Registered device radio0 for encoder radio

[   33.003611] ivtv0: Initialized Hauppauge WinTV PVR-150, card #0

[   33.003626] ivtv:  ====================  END INIT IVTV  ====================

```

MfG. Stefan

----------

