Saa7134

saa7134 is a video4linux kernel module which provides support for saa7134-based PCI TV tuner cards. For a complete list of cards that are supported by this driver, see. There are usually a few more cards supported than are listed in the documentation (whether due to deliberate omission or documentation lag). For the full list, see and its neighbors.

Kernel Configuration
You will have to configure your kernel to load the correct modules so that your hardware will work.

Video For Linux support can be compiled in your kernel (though you will have to reboot, if you do), or loaded as a module. However, the saa7134 module will need to be added as a module, since you will have to pass options when loading the driver. Note that you need first to add I2C support to see SAA7134 module in the kernel configuration.

Hardware Detection
The module will load fine even if you pass the wrong values, so just because it doesn't throw an error doesn't mean it will work correctly. You may need to do some trial and error, but it is worth it -- when setup correctly, the tuner delivers a nice picture.

To quote the v4l2 driver FAQ,

"Unfortunately it is impossible to detect the tuner type directly. For some TV cards it is known how to figure the exact tuner type indirectly, for example by parsing the configuration info within the card's eeprom. For most cards the drivers simply have a hardcoded default value. That catches most cases, but there are a few exceptions where the vendors ship the TV cards with different tuners depending on the region they are sold (PAL tuner in europe, NTSC tuner in the US) and there is no known way to figure what tuner the card actually has." card

There are two ways to detect the exact card and tuner type. One is using I2C to scan the bus, which may or may not work. The second way is to manually determine the card and tuner numbers.

i2c_scan
If you are running a recent kernel, a new option is available, using i2c to scan the card and tuner type. Ideally, all you need to do is load the module with i2c_scan=1 as an option, and it will be autodetected

Again, this may or may not work for you. If it does, make the option the default setting by adding to ,

(Re)generate the module configuration files with ,

And finally load the module,

If it doesn't work for you, you can always manually find the correct type by passing card and tuner options yourself.

Manually
There are two options that need to be passed when loading the modules: card and tuner.

You should be able to determine your card type by running ,

The output should include a line similar to the one below, saa7134[0] subsystem: xxxx:xxxx board: xxxxxxxxxx (saa7134) [card=yy, insmod option] ... tuner: type set to zz (xxxxxxxx) by saa7134[0] Where the card number is the one shown as yy and the tuner type the one shown as zz. Review for the card numbers. Once you find it, pass the option card=x where x is the card number when loading the module,

USE flags
Check if support for Video For Linux is compiled into the software. Add the "v4l" and/or "v4l2" USE flags, and re-emerge.

No sound
Run under user alsamixer and change level(up/down keys) or unmute channel CD or LINE IN("m" key).

Tuner not working
This is caused by some annoying race condition while loading the drivers for TV card and tuner. You can check if you have this problem if the FM radio outputs only static and tuning (with fmscan, for example) does not change anything.

Solution: The modules (saa7134, saa7134_dvb, and the tuner module tda1004x) have to be blacklisted and manually loaded, with delays (two seconds suffice) in between. Details are listed (in german) on this Ubuntu site.

Static audio
If you sometimes get static instead of normal audio when changing channel, and the only way to get audio back is to change channel a lot until it works, then your audio is probably being autodetected wrongly. Usually it is not autodetected, and just uses the last setting, but sometimes it autodetects as something random.

To work around, edit, and comment out all of mainscan except for "BGH" (or whatever you use in your country), and comment out all of saa7134_tvaudio except for V4L2_STD_PAL_BG (or whatever you use in your country) and recompile the kernel.

/usr/src/linux/drivers/media/video/saa7134/saa7134-tvaudio.c