AVerMedia AVerTV Hybrid+FM PCI (A16D)

From LinuxTVWiki

(Difference between revisions)
Jump to: navigation, search
(add link to v4l-dvb-experimental)
(Identification)
 
(26 intermediate revisions not shown)
Line 1: Line 1:
-
[http://linuxtv.org/v4lwiki/index.php/Avermedia Avermedia]
+
[[Image:AVerMedia_A16D_Front.jpg|thumb|AVerMedia A16D Front]]
 +
A [[DVB-T]] [[DVB-T PCI Cards|PCI card]] produced by [[AVerMedia]].
-
== AVerMedia AverTV Hybrid+FM PCI A16D ==
+
This card is supported under Linux, having since been added to kernel 2.6.26.
-
==== Info ====
+
{{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 (A16D)|A16D]], and the other, the [[AVerMedia AVerTV Hybrid+FM PCI (A16AR)|A16AR]].}}
-
Avermedia offers two "Hybrid+FM PCI" cards that,
 
-
unlike their names, feature different tuner chipset;
 
-
* model [http://www.avermedia.com/cgi-bin/products_digitvtuner_hybridPCI.asp?show=1 A16AR] has a good support in v4l and some bynary driver from [http://www.avermedia.com/cgi-bin/support_driverbympdpro.asp?category=TV%20Card&category2=Hybrid&proname=173&modelno=A16AR Driver download page]
 
-
* model [http://www.avermedia.com/cgi-bin/products_digitvtuner_hybridPCI(A16D).asp?show=1 A16D] has no support in v4l and no binary or source linux driver from the [http://www.avermedia.com/cgi-bin/support_driverbympdpro.asp?category=TV%20Card&category2=Hybrid&proname=173&modelno=A16D Driver download page].
 
-
[[Image:A16Dboard.jpg]]
+
{{Note|The kernel 2.6.26 only supports analogue mode. Please use the kernel 2.6.27 for DVB-T suport.}}
-
Looking on the card we can find:
 
-
* Philips SAA7135HL PCI Audio/Video Broadcast Decoder
+
==Overview/Features==
-
* Xceive XC3018 Silicon Tuner [[Image:xc3018.jpg]]
+
-
* Zarlink MT352 Digital Terrestrial TV Demodulator
+
-
Googlin' around it seem to me that Xceive XC3018 and 3028 are more than similar.
 
-
 
-
Also it seem that the card is quite similar to the
 
-
Cardbus version (E506R).
 
-
Analogue TV seems to work already, but without [[http://linuxtv.org/v4lwiki/index.php/AVerMedia_AverTV_Hybrid_FM_PCI_A16D#Audio_and_FM audio]].
+
===Components Used===
 +
The A16D model consists of the following hardware components:
 +
* Xceive XC3028 (tuner & analog demodulator)
 +
* Philips SAA7135HL (A/V decoder)
 +
* Zarlink MT352 (DVB-T demodulator)
-
Remote can be enabled as well: see [http://linuxtv.org/v4lwiki/index.php/Remote_controllers remote controller] section in this wiki.
+
===Identification===
 +
If you have an A16D correctly detected then "<tt>sudo lspci -vvnn</tt>" should be similar to:  
 +
(Example from Ubuntu 8.04 using 2.6.24-19-generic x86_64)
 +
03:07.0 Multimedia controller [0480]: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder [1131:7133] (rev d1)
 +
Subsystem: Avermedia Technologies Inc Unknown device [1461:f936]
 +
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 21
 +
Region 0: Memory at fdcfe000 (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-
-
==== Installation ====
+
* Note: the 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
-
As for the (E506R) there's some experimental code in
+
<pre>(From Gentoo, kernel 2.6.30-gentoo-r5 x86_64)
 +
04:05.0 Multimedia controller [0480]: Philips Semiconductors SAA7131/SAA7133/SAA7135 Video Broadcast Decoder [1131:7133] (rev d1)
 +
Subsystem: Avermedia Technologies Inc Hybrid+FM PCI (rev A16D) [1461:f936]
 +
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
 +
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
 +
Latency: 64
 +
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-
 +
</pre>
-
http://linuxtv.org/hg/~mrechberger/v4l-dvb-kernel
+
==Making it work==
-
    $ hg clone http://linuxtv.org/hg/~mrechberger/v4l-dvb-kernel
+
===Firmware===
-
    $ cd v4l-dvb-kernel/v4l
+
-
and in a newer repository
+
===Drivers===
-
http://mcentral.de/hg/~mrec/v4l-dvb-experimental/
+
===Sample kernel output===
 +
If you have an A16D correctly detected then the related dmesg output should be similar to:  
 +
(Example from Ubuntu 8.04 using 2.6.24-19-generic x86_64)
 +
[  63.704203] Linux video capture interface: v2.00
 +
[  63.752924] ACPI: WMI-Acer: Mapper loaded
 +
[  64.099345] saa7130/34: v4l2 driver version 0.2.14 loaded
 +
[  64.099459] ACPI: PCI Interrupt 0000:03:07.0[A] -> GSI 21 (level, low) -> IRQ 21
 +
[  64.099467] saa7133[0]: found at 0000:03:07.0, rev: 209, irq: 21, latency: 32, mmio: 0xfdcfe000
 +
[  64.099475] saa7133[0]: subsystem: 1461:f936, board: AVerMedia Hybrid TV/Radio (A16D) [card=137,autodetected]
 +
[  64.099485] saa7133[0]: board init: gpio is 2a200
 +
[  64.121124] input: saa7134 IR (AVerMedia Hybrid TV as /devices/pci0000:00/0000:00:14.4/0000:03:07.0/input/input6
 +
[  64.201694] ACPI: PCI Interrupt 0000:00:14.2[A] -> GSI 16 (level, low) -> IRQ 16
 +
[  64.236208] hda_codec: Unknown model for ALC882, trying auto-probe from BIOS...
 +
[  64.312889] saa7133[0]: i2c eeprom 00: 61 14 36 f9 00 00 00 00 00 00 00 00 00 00 00 00
 +
[  64.312897] saa7133[0]: i2c eeprom 10: ff ff ff ff ff 20 ff ff ff ff ff ff ff ff ff ff
 +
[  64.312902] saa7133[0]: i2c eeprom 20: 01 40 01 02 02 01 01 00 08 ff 00 0e ff ff ff ff
 +
[  64.312907] saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
[  64.312911] saa7133[0]: i2c eeprom 40: ff 65 00 ff c2 1e ff ff ff ff ff ff ff ff ff ff
 +
[  64.312915] saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
[  64.312919] saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
[  64.312923] saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
[  64.312927] saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
[  64.312931] saa7133[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
[  64.312935] saa7133[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
[  64.312939] saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
[  64.312944] saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
[  64.312948] saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
[  64.312952] saa7133[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
[  64.312956] saa7133[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 +
[  64.344915] tuner' 1-0061: chip found @ 0xc2 (saa7133[0])
 +
[  64.387946] xc2028 1-0061: creating new instance
 +
[  64.387952] xc2028 1-0061: type set to XCeive xc2028/xc3028 tuner
 +
[  64.444501] xc2028 1-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7
 +
[  64.460800] xc2028 1-0061: Loading firmware for type=BASE F8MHZ (3), id 0000000000000000.
 +
[  72.998152] (0), id 00000000000000ff:
 +
[  72.998156] xc2028 1-0061: Loading firmware for type=(0), id 0000000100000007.
 +
[  73.166017] SCODE (20000000), id 0000000100000007:
 +
[  73.166019] xc2028 1-0061: Loading SCODE for type=MONO SCODE HAS_IF_5320 (60008000), id 0000000800000007.
 +
[  73.605999] saa7133[0]: registered device video0 [v4l2]
 +
[  73.606016] saa7133[0]: registered device vbi0
 +
[  73.606032] saa7133[0]: registered device radio0
 +
[  73.606187] ACPI: PCI Interrupt 0000:01:05.1[B] -> GSI 19 (level, low) -> IRQ 19
 +
[  73.606833] PCI: Setting latency timer of device 0000:01:05.1 to 64
 +
[  73.770676] xc2028 1-0061: attaching existing instance
 +
[  73.770682] xc2028 1-0061: type set to XCeive xc2028/xc3028 tuner
 +
[  73.770686] DVB: registering new adapter (saa7133[0])
 +
[  73.770689] DVB: registering frontend 0 (Zarlink MT352 DVB-T)...
-
    $ hg clone http://mcentral.de/hg/~mrec/v4l-dvb-experimental/
+
==External Links==
-
    $ cd v4l-dvb-experimental/v4l
+
* [http://www.avermedia.com/avertv/product/ProductDetail.aspx?Id=25 AVerTV Hybrid+FM PCI (A16D) product page]
-
 
+
* [http://mcentral.de/wiki/index.php5/AVerMedia_AverTV_Hybrid_FM_PCI_A16D mrec's 3rd party driver]
-
==== Adding A16D driver ====
+
* [http://www.hardwareportal.ru/Multimedia/Aver.hybridfmpci/index.html Russian Review]
-
 
+
[[Category:DVB-T PCI Cards]]
-
A16D Definition has been added to the above v4l-dvb-kernel tree by Markus, so please jump to the [[http://www.linuxtv.org/v4lwiki/index.php/AVerMedia_AverTV_Hybrid_FM_PCI_A16D#building_and_installing install]] section!!
+
-
 
+
-
==== building and installing ====
+
-
 
+
-
    $ make
+
-
    $ make install
+
-
 
+
-
Unfortunately with Fedora core 6 modules are installed in /usr/src/2.6.xxxx/kernel/
+
-
while modprobe looks for updated modules in /usr/src/2.6.xxxx/updates/.
+
-
Maybe you need to give the correct path as an install options; by now I simply copied
+
-
patched modules over the old ones.
+
-
 
+
-
As stated in this [http://www.ubuntu-es.org/index.php?q=node/27239 thread] create /etc/modprobe.d/saa7134 containing:
+
-
 
+
-
    options saa7134 card=105 alsa=1 tuner=71
+
-
    install saa7134 /sbin/modprobe xc3028-tuner; /sbin/modprobe --ignore-install saa7134; /sbin/modprobe saa7134-dvb; /sbin/modprobe saa7134-alsa
+
-
 
+
-
(card=114 in case of using http://mcentral.de/hg/~mrec/v4l-dvb-experimental/)
+
-
 
+
-
Remember that things don't work if you load saa7134 before xc3028-tuner.
+
-
 
+
-
==== installing firmware ====
+
-
 
+
-
Install firmware for the XC3028 as reported for the [http://www.linuxtv.org/v4lwiki/index.php/Em2880#Installation em2880]
+
-
 
+
-
Firmware ver.3 and 4 worked with my card.
+
-
 
+
-
trying to let FM to work, you will get an error as reported by Damir:
+
-
 
+
-
    ..........
+
-
    [78693.955561] upload_firmware, Loading specific radio firmware:
+
-
    xc3028_specific_radio.fw
+
-
    [78693.963196] Loading configuration from file failed!
+
-
 
+
-
Radio's firmware is called by xc3028-tuner module, but it is not actually provided with the above firmware installation.
+
-
 
+
-
I did some testing trying to extract firmware from windows drivers, but with no luck.
+
-
 
+
-
==== loading modules ====
+
-
 
+
-
Load modules with :
+
-
 
+
-
    $ modprobe saa7134
+
-
 
+
-
Modules will also get loaded automatically at boot time.
+
-
 
+
-
==== Dvb-t ====
+
-
 
+
-
Digital terrestrial is not working at the moment: to implement this probably need adding xc3028+mt352 definition to saa7134-dvb module.
+
-
 
+
-
==== Audio and FM ====
+
-
 
+
-
Thanks Damir, I was adviced:
+
-
 
+
-
    TV works fine (except a fact that the sound must be processed with something
+
-
    like 'arecord -D hw:2,0 -r 32000 -c 2 -f S16_LE | sox -q -c 2 -r 32000 -w -t
+
-
    wav - -t alsa hw:0,0'), but FM radio doesn't.
+
-
 
+
-
I will investigate the above, but until now I'm not able to have TV audio nor FM from speakers!  :-(  Help's wellcome!!
+
-
 
+
-
----
+
-
 
+
-
cool so audio also works with it! FM needs an extra firmware which isn't implemented for your device so you won't have any luck with it.
+
-
 
+
-
[[User:MarkusRechberger|MarkusRechberger]] 22:26, 10 March 2007 (CET)
+
-
 
+
-
----
+
-
 
+
-
Thanks to [[User:SunnyBUG|SunnyBUG]], the autor of the original
+
-
article "CARDBUS Hybrid TV FM (E506R)" from which most of this was taken.
+
-
 
+
-
You can find the translated Italian version [http://lucarasp.altervista.org/php5/index.php?title=Video#AVerMedia_AverTV_Hybrid.2BFM_PCI_A16D Here ]
+
-
 
+
-
--[[User:Lucarasp|Lucarasp]] 13:47, 23 February 2007 (CET)
+
-
[[Link title]]
+

Latest revision as of 06:48, 4 January 2010

AVerMedia A16D Front

A DVB-T PCI card produced by AVerMedia.

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

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 A16D, and the other, the A16AR.


Note: The kernel 2.6.26 only supports analogue mode. Please use the kernel 2.6.27 for DVB-T suport.


Contents

Overview/Features

Components Used

The A16D model consists of the following hardware components:

  • Xceive XC3028 (tuner & analog demodulator)
  • Philips SAA7135HL (A/V decoder)
  • Zarlink MT352 (DVB-T demodulator)

Identification

If you have an A16D correctly detected then "sudo lspci -vvnn" should be similar to:

(Example from Ubuntu 8.04 using 2.6.24-19-generic x86_64)
03:07.0 Multimedia controller [0480]: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder [1131:7133] (rev d1)
	Subsystem: Avermedia Technologies Inc Unknown device [1461:f936]
	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 21
	Region 0: Memory at fdcfe000 (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: the 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
(From Gentoo, kernel 2.6.30-gentoo-r5 x86_64)
04:05.0 Multimedia controller [0480]: Philips Semiconductors SAA7131/SAA7133/SAA7135 Video Broadcast Decoder [1131:7133] (rev d1)
	Subsystem: Avermedia Technologies Inc Hybrid+FM PCI (rev A16D) [1461:f936]
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 64
	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-

Making it work

Firmware

Drivers

Sample kernel output

If you have an A16D correctly detected then the related dmesg output should be similar to:

(Example from Ubuntu 8.04 using 2.6.24-19-generic x86_64)
[   63.704203] Linux video capture interface: v2.00
[   63.752924] ACPI: WMI-Acer: Mapper loaded
[   64.099345] saa7130/34: v4l2 driver version 0.2.14 loaded
[   64.099459] ACPI: PCI Interrupt 0000:03:07.0[A] -> GSI 21 (level, low) -> IRQ 21
[   64.099467] saa7133[0]: found at 0000:03:07.0, rev: 209, irq: 21, latency: 32, mmio: 0xfdcfe000
[   64.099475] saa7133[0]: subsystem: 1461:f936, board: AVerMedia Hybrid TV/Radio (A16D) [card=137,autodetected]
[   64.099485] saa7133[0]: board init: gpio is 2a200
[   64.121124] input: saa7134 IR (AVerMedia Hybrid TV as /devices/pci0000:00/0000:00:14.4/0000:03:07.0/input/input6
[   64.201694] ACPI: PCI Interrupt 0000:00:14.2[A] -> GSI 16 (level, low) -> IRQ 16
[   64.236208] hda_codec: Unknown model for ALC882, trying auto-probe from BIOS...
[   64.312889] saa7133[0]: i2c eeprom 00: 61 14 36 f9 00 00 00 00 00 00 00 00 00 00 00 00
[   64.312897] saa7133[0]: i2c eeprom 10: ff ff ff ff ff 20 ff ff ff ff ff ff ff ff ff ff
[   64.312902] saa7133[0]: i2c eeprom 20: 01 40 01 02 02 01 01 00 08 ff 00 0e ff ff ff ff
[   64.312907] saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   64.312911] saa7133[0]: i2c eeprom 40: ff 65 00 ff c2 1e ff ff ff ff ff ff ff ff ff ff
[   64.312915] saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   64.312919] saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   64.312923] saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   64.312927] saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   64.312931] saa7133[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   64.312935] saa7133[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   64.312939] saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   64.312944] saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   64.312948] saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   64.312952] saa7133[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   64.312956] saa7133[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   64.344915] tuner' 1-0061: chip found @ 0xc2 (saa7133[0])
[   64.387946] xc2028 1-0061: creating new instance
[   64.387952] xc2028 1-0061: type set to XCeive xc2028/xc3028 tuner
[   64.444501] xc2028 1-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7
[   64.460800] xc2028 1-0061: Loading firmware for type=BASE F8MHZ (3), id 0000000000000000.
[   72.998152] (0), id 00000000000000ff:
[   72.998156] xc2028 1-0061: Loading firmware for type=(0), id 0000000100000007.
[   73.166017] SCODE (20000000), id 0000000100000007:
[   73.166019] xc2028 1-0061: Loading SCODE for type=MONO SCODE HAS_IF_5320 (60008000), id 0000000800000007.
[   73.605999] saa7133[0]: registered device video0 [v4l2]
[   73.606016] saa7133[0]: registered device vbi0
[   73.606032] saa7133[0]: registered device radio0
[   73.606187] ACPI: PCI Interrupt 0000:01:05.1[B] -> GSI 19 (level, low) -> IRQ 19
[   73.606833] PCI: Setting latency timer of device 0000:01:05.1 to 64
[   73.770676] xc2028 1-0061: attaching existing instance
[   73.770682] xc2028 1-0061: type set to XCeive xc2028/xc3028 tuner
[   73.770686] DVB: registering new adapter (saa7133[0])
[   73.770689] DVB: registering frontend 0 (Zarlink MT352 DVB-T)...

External Links

Personal tools