openSUSE 10.3 ships with IVTV and the IVTV Firmware. It's recommended to use the version that's included and install ivtv from YaST. It's available for both the 32 bit and the 64 bit platform.
- IVTV software included
- ivtv version 0.10.3 - available on the openSUSE 10.3 OSS installation source
- ivtv-firmware 0.10.3 - available on the openSUSE 10.3 NON-OSS installation source
- Files and directories on openSUSE
- Firmware = /lib/firmware
- IVTV settings = /etc/modprobe.d/tv
- Additional information
openSUSE 10.2 (2.6.18 kernel) ships with IVTV 0.8.0. It's recommended to use this version and install ivtv from YaST. I tried both the 32 bit and the 64 bit version and ivtv works out of the box.
check your card:
lspci | grep "video"
my output with my Hauppauge WinTV PVR-500 MCE
03:08.0 Multimedia video controller: Internext Compression Inc iTVC16 (CX23416) MPEG-2 Encoder (rev 01) 03:09.0 Multimedia video controller: Internext Compression Inc iTVC16 (CX23416) MPEG-2 Encoder (rev 01)
ivtv settings are stored in /etc/modprobe.d/tv
Do not edit this file, this is all done by YaST
alias char-major-81 videodev options i2c-algo-bit bit_test=1 # YaST configured TV card # Uog3.chCB1CyIbw9:WinTV PVR 150 alias char-major-81-0 ivtv # YaST configured TV card # ZvjX.sZc4ePByvkF:WinTV PVR 150 alias char-major-81-1 ivtv alias char-major-81-2 off alias char-major-81-3 off
Get the firmware from this location and extract it to /usr/local/lib/firmware/ or /lib/firmware.
Neither of these directories exist by default. Do you need to create one of them?
dmesg | grep ivtv
ivtv: ==================== START INIT IVTV ==================== ivtv: version 0.8.0 (tagged release) loading ivtv: Linux version: 126.96.36.199-34-default SMP mod_unload gcc-4.1 ivtv: In case of problems please include the debug 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-150 card (cx23416 based) ivtv0: loaded v4l-cx2341x-enc.fw firmware (262144 bytes) ivtv0: This is the first unit of a PVR500 tuner 1-0043: chip found @ 0x86 (ivtv i2c driver #0) tuner 1-0060: chip found @ 0xc0 (ivtv i2c driver #0) tuner 1-0061: chip found @ 0xc2 (ivtv i2c driver #0) cx25840 1-0044: cx25843-23 found @ 0x88 (ivtv i2c driver #0) wm8775 1-001b: chip found @ 0x36 (ivtv i2c driver #0) ivtv0: Encoder revision: 0x02060039 ..... ..... and more
Be sure to check your kernel version against the version in Stable release. Suse 10.1 comes with ivtv 0.7.0 but kernel 2.6.16, so compile ivtv 0.6.3 if this is the case for you.
Personally I had a contrary experience. Despite the fact that 0.7.0 is not the correct verion for the kernel 2.6.16 acc to IVTV, the yast installed 0.7.0 is the only version working in my setup (I was not able to tune any stations with the manually built 0.6.4 version). So, install ivtv from yast, then add the firmware.
- Extract the firmware.
- Rename the modules according to the firmware filenames
- Copy the modules to the firmware directory.
cp /lib/modules/v4l*.fw /lib/firmware
- Load the modules.
- Following the instructions in Module Options modify /etc/modprobe.conf.local.
- Reboot and check to make sure they loaded.
dmesg | grep ivtv
- It should look something like this...
ivtv: module not supported by Novell, setting U taint flag. ivtv: ==================== START INIT IVTV ==================== ivtv: version 0.6.3 (tagged release) loading ivtv: Linux version: 188.8.131.52-4-default 586 REGPARM gcc-4.1 ivtv: In case of problems please include the debug 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-150 card (cx23416 based) ivtv0: Unreasonably low latency timer, setting to 64 (was 32) tuner 0-0061: chip found @ 0xc2 (ivtv i2c driver #0) cx25840 0-0044: cx25843-23 found @ 0x88 (ivtv i2c driver #0) wm8775 0-001b: chip found @ 0x36 (ivtv i2c driver #0) ivtv0: loaded v4l-cx2341x-enc.fw firmware (262144 bytes) ivtv0: Encoder revision: 0x02040011 ivtv0: Allocate DMA encoder MPEG stream: 128 x 32768 buffers (4096KB total) ivtv0: Allocate DMA encoder YUV stream: 194 x 10800 buffers (2048KB total) ivtv0: Allocate DMA encoder VBI stream: 120 x 17472 buffers (2048KB total) ivtv0: Allocate DMA encoder PCM audio stream: 455 x 4608 buffers (2048KB total) ivtv0: Initialized Hauppauge WinTV PVR-150, card #0 ivtv: ==================== END INIT IVTV ====================
There are two ways to do this. You could use the ivtv drivers that are already installed (A) or you could recompile and use new drivers from the ivtv website (B).
(A) Using the Old Drivers
The drivers used in SUSE 10.0 came from ivtv version 0.3.7. That release has it's own set of firmware, which is here. You'll also need the ivtvfwextract tool, which you can pull from any ivtv release tar. Use the tool to pull the firmware out of the .exe file. Become root and execute-
- ./ivtvfwextract /path/to/firmware
- mkdir -p /usr/lib/hotplug/firmware
- cp /lib/modules/*.bin /usr/lib/hotplug/firmware
- modprobe ivtv
- dmesg | grep ivtv
Make sure that the output shows that the card was properly initialized. If this fails to work right or you continue to have problems, you may need to compile from source and use newer modules. Go to (B) -
(B) Installation From Source
Follow the howto and when you get to the part concerning removing old modules you need to also remove the old ivtv modules that came with the system.
cd /lib/modules/`uname -r`/extra/ mv ivtv.ko ivtv.ko.old mv ivtv-fb.ko ivtv-fb.ko.old mv ivtv-msp3400.ko ivtv-msp3400.ko.old mv ivtv-tda9887.ko ivtv-tda9887.ko.old mv ivtv-tuner.ko ivtv-tuner.ko.old mv ivtv-tveeprom.ko ivtv-tveeprom.ko.old mv wm8775.ko wm8775.ko.old mv saa7115.ko saa7115.ko.old mv saa7127.ko saa7127.ko.old
You can ensure you arn't picking up old modules by by looking at the dmesg output after doing the insmod step. If you see a line like the following...
# dmesg ... ivtv: ==================== START INIT IVTV ==================== ivtv: version 0.3.7 (c) loading ...
# dmesg ... ivtv: ==================== START INIT IVTV ==================== ivtv: version 0.x.x (tagged release) loading ...
Where 0.x.x is the version you are trying to install. Then you arn't picking up the right modules, see the troubleshooting page section on looking for old modules. Also if you see anything along the lines of "cx25840: invalid ioctl 40085618" in the dmesg output then you are likely mixing some of the new with some of the old modules. In the case of mixed modules things will look like they are working but you will only get sparse staic in the video.
The modules that come with SuSE 10.0 don't seem to work and when you run ivtvctl with them installed, ivtvctl will report something to the effect of "not an ivtv driver device"
SuSE 9.3 with the PVR 350 card installed
Follow the howto with the following exceptions:
- Add the following line to /etc/modprobe.conf.local:
alias char-major-81-0 ivtv
- place the firmware in /lib/firmware/
Reboot and that should do it!