Difference between revisions of "AVerMedia AVerTV Hybrid+FM PCI (A16AR)"

From LinuxTVWiki
Jump to: navigation, search
m (grammar!)
m (Added category: DVB-T PCI Cards)
 
(26 intermediate revisions by 3 users not shown)
Line 1: Line 1:
To determine whether you have it setup correctly or not run "<tt>dmesg | grep saa</tt>" and if you see this you need to do the following steps:
+
A [[DVB-T]] [[DVB-T PCI Cards|PCI card]] produced by [[AVerMedia]].
  
        [  39.847928] saa7130/34: v4l2 driver version 0.2.14 loaded
+
This card is supported under Linux, having been added to kernel 2.6.19.  
        [  39.848432] saa7133[0]: found at 0000:01:05.0, rev: 209, irq: 21, latency: 32, mmio: 0xe8002000
+
        [  39.848437] saa7133[0]: subsystem: 1461:2c00, board: UNKNOWN/GENERIC [card=0,autodetected] [/code]
+
If you see this then why are you looking at this guide!
+
        [  555.864000] saa7130/34: v4l2 driver version 0.2.14 loaded
+
        [  555.864000] saa7133[0]: found at 0000:01:05.0, rev: 209, irq: 21, latency: 32, mmio: 0xe8002000
+
        [  555.864000] saa7133[0]: subsystem: 1461:2c00, board: AVerMedia TV Hybrid A16AR [card=99,insmod option][/code]
+
  
==Getting it to work==
+
Note: There are actually two different [[AVerMedia]] cards that bear the identical name "AVerTV Hybrid+FM PCI", so one must be careful to distinguish between this one, the [[AVerMedia AVerTV Hybrid+FM PCI (A16AR)|A16AR]], and the other, the [[AVerMedia AVerTV Hybrid+FM PCI (A16D)|A16D]]. 
  
The avermedia drivers are built into the recent kernels (Since version 2.6.11 I think). For this step you need the right kernel options i believe. Ubuntu has them by default however if anyone wants to drop by and bless this wiki with some guidance please help!
+
{{Note|You may sometimes see this model referred to simply as the A16A. The trailing "R" likely is in reference to the "remote" controller}}
  
To make sure you have a A16AR type in "<tt>lspci -v</tt>" and you should see:
+
In addition, the [[AVerMedia AVerTV Hybrid+FM PCI (A16AR)|AVerTV Hybrid+FM PCI A16AR]] model is highly similar to the [[AVerMedia AVerTV DVB-T 777 (A16AR)]] card.
        01:05.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev d1)
+
        Subsystem: Avermedia Technologies Inc Unknown device 2c00
+
        Flags: bus master, medium devsel, latency 32, IRQ 21
+
        Memory at e8002000 (32-bit, non-prefetchable) [size=2K]
+
        Capabilities: <access denied>[/code]
+
  
Then type
+
==Overview/Features==
        sudo rmmod saa7134_alsa saa7134-dvb saa7134
+
Coincidently, the A16AR was originally the sole recipient of direct Linux support from AVerMedia -- however, said support wass/is very limited/constrained at best (binary drivers, listed as beta, and which apply only for Fedora 3 & 4, Mandriva 2006, and SUSE 10.0).
If you can't close them (which will likely happen because saa1734 will be used by any mixers and artsd)
+
 
        fuser -v /dev/snd/* /dev/dsp/*
+
Pictures of the card are available in the [http://www.linuxtv.org/pipermail/linux-dvb/2006-May/010165.html this mail list post] and duplicated in the resourceful [http://www.bttv-gallery.de/ bttv gallery]. Also see the AVerMedia [http://www.avermedia.com/avertv/product/ProductDetail.aspx?Id=42 AVerTV Hybrid+FM PCI (A16AR) product page].
 +
 
 +
===Components Used===
 +
The A16AR model consists of the following hardware components:
 +
* Philips TD1316A (tuner)
 +
* Philips TDA9887 (analog demodulator)
 +
* Philips SAA7135HL (A/V decoder)
 +
* Zarlink MT352 (DVB-T demodulator)
 +
 
 +
===Identification===
 +
If you have an A16AR then "<tt>sudo lspci -vv</tt>" should reveal:
 +
02:06.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev d1)
 +
Subsystem: Avermedia Technologies Inc Unknown device 2c00
 +
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
 +
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 +
Latency: 32
 +
Interrupt: pin A routed to IRQ 20
 +
Region 0: Memory at fddff000 (32-bit, non-prefetchable) [size=2K]
 +
Capabilities: [40] Power Management version 2
 +
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
 +
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
 +
 
 +
* Note above output from lspci shows the card NOT being properly/automagically detected/recognized! ... it would be nice if someone could provide the output from lspci where it shows the card being properly detected
 +
 
 +
==Making it work==
 +
 
 +
===Firmware===
 +
 
 +
===Drivers===
 +
 
 +
====If you're using a kernel >2.6.19 and the card is not automagically detected====
 +
If the card is not automagically detected, when you run "<tt>dmesg | grep saa</tt>"  you you will see:
 +
[  39.847928] saa7130/34: v4l2 driver version 0.2.14 loaded
 +
[  39.848432] saa7133[0]: found at 0000:01:05.0, rev: 209, irq: 21, latency: 32, mmio: 0xe8002000
 +
[  39.848437] saa7133[0]: subsystem: 1461:2c00, board: UNKNOWN/GENERIC [card=0,autodetected] [/code]
 +
In this case, you will need to arrange for the parameter 'card=99' to be passed to the kernel driver.
 +
If the driver was built as a kernel module, and if you want to test this parameter once without making any permanent change to your system, do the following steps.  Type:
 +
sudo rmmod saa7134_alsa saa7134-dvb saa7134
 +
 
 +
{{Note|For all those who do not know what sudo is, it is used to elevate one's self to root user.  rmmod removes loaded modules from memory.}}
 +
 
 +
If you can't remove the running modules from memory (which will likely happen because saa7134 will be used by any mixers and artsd)
 +
fuser -v /dev/snd/* /dev/dsp/*
 
and then  
 
and then  
        killall -9 <process names>.
+
killall -9 <process names>.
  
Now you need to load the correct modules
+
Now you need to reload the modules with the following:
        sudo modprobe saa7134 card=99
+
sudo modprobe saa7134 card=99
        sudo modprobe saa7134_alsa
+
sudo modprobe saa7134_alsa
        sudo modprobe saa7134-dvb
+
sudo modprobe saa7134-dvb
  
For all those who do not know what sudo is it is used to elevate ones self to root user :P used with Ubuntu.
+
Now you should be able load your favorite TV application and watch TV!
  
now load your favorite TV application and watch TV!
+
===Sample kernel output===
 +
If autodetection doesn't work but you have the correct "<tt>card=99</tt>" driver parameter set, then if you run "<tt>dmesg | grep saa</tt>"  you will see:
 +
saa7130/34: v4l2 driver version 0.2.14 loaded
 +
saa7133[0]: found at 0000:02:06.0, rev: 209, irq: 20, latency: 32, mmio: 0xfddff000
 +
saa7133[0]: subsystem: 1461:2c00, board: AVerMedia TV Hybrid A16AR [card=99,insmod option]
 +
saa7133[0]: board init: gpio is 2b600
 +
input: saa7134 IR (AVerMedia TV Hybrid as /class/input/input3
 +
saa7133[0]: i2c eeprom 00: 61 14 00 2c 00 00 00 00 00 00 00 00 00 00 00 00
 +
saa7133[0]: i2c eeprom 10: 00 ff 82 0e ff 20 ff ff ff ff ff ff ff ff ff ff
 +
saa7133[0]: i2c eeprom 20: 01 40 01 02 02 03 03 01 08 ff 00 a3 ff ff ff ff
 +
saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
saa7133[0]: i2c eeprom 40: ff 32 00 c0 86 1e ff ff ff ff ff ff ff ff ff ff
 +
saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
tuner 1-0043: chip found @ 0x86 (saa7133[0])
 +
tuner 1-0060: chip found @ 0xc0 (saa7133[0])
 +
saa7133[0]: registered device video0 [v4l2]
 +
saa7133[0]: registered device vbi0
 +
saa7133[0]: registered device radio0
 +
DVB: registering new adapter (saa7133[0])
  
I am yet to test this after a reboot but good luck!
+
====If you're using Debian GNU/Linux, a modular kernel >2.6.19, and the card is not automagically detected====
 +
Create a new file of any name in the directory <tt>/etc/modprobe.d</tt>, for example <tt>/etc/modprobe.d/tv-tuner-card</tt>, and add to it the line:
 +
options saa7134 card=99
 +
Then reboot the machine.
  
Also for anyone who is concerned about the similarities between this guide and the one on the Ubuntu forums they are both by me ;)
+
==External Links==
 +
* [http://www.avermedia.com/avertv/product/ProductDetail.aspx?Id=42 AVerTV Hybrid+FM PCI (A16AR) product page].
 +
* [http://www.avermedia.com/cgi-bin/support_driverbympdpro.asp?category=TV%20Card&category2=Hybrid&proname=12&modelno=A16AR AVer's binary Linux drivers for the card]
 +
[[Category:DVB-T PCI Cards]]

Latest revision as of 22:33, 3 May 2009

A DVB-T PCI card produced by AVerMedia.

This card is supported under Linux, having been added to kernel 2.6.19.

Note: There are actually two different AVerMedia cards that bear the identical name "AVerTV Hybrid+FM PCI", so one must be careful to distinguish between this one, the A16AR, and the other, the A16D.

Note: You may sometimes see this model referred to simply as the A16A. The trailing "R" likely is in reference to the "remote" controller

In addition, the AVerTV Hybrid+FM PCI A16AR model is highly similar to the AVerMedia AVerTV DVB-T 777 (A16AR) card.

Overview/Features

Coincidently, the A16AR was originally the sole recipient of direct Linux support from AVerMedia -- however, said support wass/is very limited/constrained at best (binary drivers, listed as beta, and which apply only for Fedora 3 & 4, Mandriva 2006, and SUSE 10.0).

Pictures of the card are available in the this mail list post and duplicated in the resourceful bttv gallery. Also see the AVerMedia AVerTV Hybrid+FM PCI (A16AR) product page.

Components Used

The A16AR model consists of the following hardware components:

  • Philips TD1316A (tuner)
  • Philips TDA9887 (analog demodulator)
  • Philips SAA7135HL (A/V decoder)
  • Zarlink MT352 (DVB-T demodulator)

Identification

If you have an A16AR then "sudo lspci -vv" should reveal:

02:06.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev d1)
Subsystem: Avermedia Technologies Inc Unknown device 2c00
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32
Interrupt: pin A routed to IRQ 20
Region 0: Memory at fddff000 (32-bit, non-prefetchable) [size=2K]
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
  • Note above output from lspci shows the card NOT being properly/automagically detected/recognized! ... it would be nice if someone could provide the output from lspci where it shows the card being properly detected

Making it work

Firmware

Drivers

If you're using a kernel >2.6.19 and the card is not automagically detected

If the card is not automagically detected, when you run "dmesg | grep saa" you you will see:

[   39.847928] saa7130/34: v4l2 driver version 0.2.14 loaded
[   39.848432] saa7133[0]: found at 0000:01:05.0, rev: 209, irq: 21, latency: 32, mmio: 0xe8002000
[   39.848437] saa7133[0]: subsystem: 1461:2c00, board: UNKNOWN/GENERIC [card=0,autodetected] [/code] 

In this case, you will need to arrange for the parameter 'card=99' to be passed to the kernel driver. If the driver was built as a kernel module, and if you want to test this parameter once without making any permanent change to your system, do the following steps. Type:

sudo rmmod saa7134_alsa saa7134-dvb saa7134
Note: For all those who do not know what sudo is, it is used to elevate one's self to root user. rmmod removes loaded modules from memory.

If you can't remove the running modules from memory (which will likely happen because saa7134 will be used by any mixers and artsd)

fuser -v /dev/snd/* /dev/dsp/*

and then

killall -9 <process names>.

Now you need to reload the modules with the following:

sudo modprobe saa7134 card=99
sudo modprobe saa7134_alsa
sudo modprobe saa7134-dvb

Now you should be able load your favorite TV application and watch TV!

Sample kernel output

If autodetection doesn't work but you have the correct "card=99" driver parameter set, then if you run "dmesg | grep saa" you will see:

saa7130/34: v4l2 driver version 0.2.14 loaded
saa7133[0]: found at 0000:02:06.0, rev: 209, irq: 20, latency: 32, mmio: 0xfddff000
saa7133[0]: subsystem: 1461:2c00, board: AVerMedia TV Hybrid A16AR [card=99,insmod option]
saa7133[0]: board init: gpio is 2b600
input: saa7134 IR (AVerMedia TV Hybrid as /class/input/input3
saa7133[0]: i2c eeprom 00: 61 14 00 2c 00 00 00 00 00 00 00 00 00 00 00 00
saa7133[0]: i2c eeprom 10: 00 ff 82 0e ff 20 ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 20: 01 40 01 02 02 03 03 01 08 ff 00 a3 ff ff ff ff
saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 40: ff 32 00 c0 86 1e ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tuner 1-0043: chip found @ 0x86 (saa7133[0])
tuner 1-0060: chip found @ 0xc0 (saa7133[0])
saa7133[0]: registered device video0 [v4l2]
saa7133[0]: registered device vbi0
saa7133[0]: registered device radio0
DVB: registering new adapter (saa7133[0])

If you're using Debian GNU/Linux, a modular kernel >2.6.19, and the card is not automagically detected

Create a new file of any name in the directory /etc/modprobe.d, for example /etc/modprobe.d/tv-tuner-card, and add to it the line:

options saa7134 card=99

Then reboot the machine.

External Links