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

From LinuxTVWiki
Jump to: navigation, search
Line 4: Line 4:
  
 
==== Info ====
 
==== Info ====
[http://www.avermedia.com/cgi-bin/products_digitvtuner_hybridPCI(A16D).asp?show=1 Official Product Page]
 
  
 
No precompiled 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]
 
No precompiled 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]
Line 11: Line 10:
 
unlike their names feature different tuner chipset;  
 
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.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]
* while model A16D has no support in v4l and [http://www.avermedia.com/cgi-bin/support_driverbympdpro.asp?category=TV%20Card&category2=Hybrid&proname=12&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 [http://www.avermedia.com/cgi-bin/support_driverbympdpro.asp?category=TV%20Card&category2=Hybrid&proname=12&modelno=A16AR Driver download page].
 
   
 
   
 
Looking on the card we can find:
 
Looking on the card we can find:
Line 19: Line 18:
 
* Zarlink MT352 Digital Terrestrial TV Demodulator
 
* Zarlink MT352 Digital Terrestrial TV Demodulator
  
It seem that the card is quite similar to the  
+
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).
 
Cardbus version (E506R).
  

Revision as of 14:54, 23 February 2007

Avermedia

AVerMedia AverTV Hybrid+FM PCI A16D

Info

No precompiled or source linux driver from the Driver download page

Avermedia offers two "Hybrid+FM PCI" cards that, unlike their names feature different tuner chipset;

Looking on the card we can find:

  • Philips SAA7135HL PCI Audio/Video Broadcast Decoder
  • Xceive XC3018 Silicon Tuner
  • 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 audio.

Remote can be enabled as well: see remote controller section in this wiki.

Installation

As for the (E506R) there's some experimental code in

http://linuxtv.org/hg/~mrechberger/v4l-dvb-kernel

   $ hg clone http://linuxtv.org/hg/~mrechberger/v4l-dvb-kernel
   $ cd v4l-dvb-kernel/v4l

Adding A16D driver

in linux/drivers/media/video/saa7134/saa7134-cards.c at the end of "saa7134_board saa7134_boards[]" add:

 [SAA7134_BOARD_AVERMEDIA_A16D] = {
                .name           = "AVerMedia Hybrid TV/Radio (A16D)",
                .audio_clock    = 0x187de7,
                .tuner_type     = TUNER_XCEIVE_XC3028,
                .radio_type     = UNSET,
                .tuner_addr     = 0x61,
                .radio_addr     = ADDR_UNSET,
                .inputs         = {{
                        .name = name_tv,
                        .vmux = 1,
                        .amux = TV,
                        .tv   = 1,
                },{
                        .name = name_svideo, 
                        .vmux = 8,
                        .amux = LINE1,
                }},
                .radio = {     
                        .name = name_radio,
                        .amux = LINE1,
                },
       },

in linux/drivers/media/video/saa7134/saa7134-cards.c near the end of "pci_device_id saa7134_pci_tbl[]" add:

     },{
               .vendor       = PCI_VENDOR_ID_PHILIPS,
               .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
               .subvendor    = 0x1461, /* Avermedia Technologies Inc */
               .subdevice    = 0xf936,
               .driver_data  = SAA7134_BOARD_AVERMEDIA_A16D,

in linux/drivers/media/video/saa7134/saa7134-cards.c in "saa7134_board_init1(struct saa7134_dev *dev)" add:

  case SAA7134_BOARD_AVERMEDIA_A16D:
               /* power-up tuner chip */
               saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x80600100,0x80600100);
               saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00623100,0x00623100);
               /* probably above values still need tuning*/
               msleep(1);
               /* enable remote */
               dev->has_remote = SAA7134_REMOTE_GPIO;
               break;

in linux/drivers/media/video/saa7134/saa7134-input.c in "saa7134_input_init1(struct saa7134_dev *dev)" add:

       case SAA7134_BOARD_AVERMEDIA_777:
       case SAA7134_BOARD_AVERMEDIA_A16D:
               ir_codes = ir_codes_avermedia;
               mask_keycode = 0x02F200;
               mask_keydown = 0x000400;
               polling = 50; // ms
               saa_setl(SAA7134_GPIO_GPMODE0 >> 2, 0x100);
               saa_setl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x100);
               break;

in linux/drivers/media/video/saa7134/saa7134.h add:

   #define SAA7134_BOARD_AVERMEDIA_A16D 105

P.S.: I know, this is not the right way to write patches, but, right now, it's my best ;-).

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.

Install firmware for the XC3028 as reported for the em2880

As stated in this thread create /etc/modprobe.d/saa7134 containing:

   options saa7134 card=105 alsa=1 tuner=71
   install saa7134 /sbin/modprobe --ignore-install saa7134; /sbin/modprobe saa7134-dvb; /sbin/modprobe saa7134-alsa ;/sbin/modprobe xc3028-tuner

loading modules

Unfortunately things don't work if you load saa7134 before xc3028-tuner, so:

   $ modprobe xc3028-tuner
   $ modprobe saa7134

Thanks to SunnyBUG, the autor of the original article "CARDBUS Hybrid TV FM (E506R)" from which most of this was taken.

--Lucarasp 13:47, 23 February 2007 (CET)