AVerMedia AverTV Hybrid Volar HX (A827)

From LinuxTVWiki

Revision as of 19:12, 4 May 2011 by Ghent.Debian (Talk | contribs)
Jump to: navigation, search

Contents

Device Features

Vendor Device/Model Supported Pictures / URL E
AVerMedia AverTV Hybrid Volar HX (A827) Yes, by vendor [[1]] [2][3] Jump to the place where you can edit this entry

Specifications

Interface: USB 2.0 Supported Broadcast Formats: DVB-T, Analog, FM

This is what the USB DVB-T Database knows about this device:

did vendor device standard supported pic url hostinterface usbid hw tuner demodulator usbbridge fw comment E
avermedia-a827 AVerMedia AverTV Hybrid Volar HX (A827) DVB-T, ANALOG, FM Yes, by vendor [[4]] [5] [6] USB2.0 07ca:a827 none needed Jump to the place where you can edit this entry

Chips

  • Cypress CY7C68013A
  • NXP SAA7136E
  • NXP TDA18271HDC1
  • Afatech AF9013-N1

Getting it to work

Tested and worked on Fedora-11-i386, Kernel-2.6.29.4-167-PAE.fc11, Fedora 12 and Fedora 13 (both stock kernel) Dependencies needed (from installation DVD)

  • kernel,
  • kernel-headers,
  • kernel-devel,
  • gcc.

(yum install)

  • dialog
  • tvtime
  • mplayer (with all it's dependencies, including codecs).

(drivers from Avermedia website, as posted bellow)

  • July 2009 - 0.07 beta driver for i386 or x86_64 - tested on Fedora-11
  • January 2010 - 0.10 beta driver for i386 or x86_64 - tested on Ubuntu Karmic 910 and on ArchLinux(i386) with 2.6.33 kernel
  • May 2010 - 0.10 beta driver for x86_64 - works great on Fedora 13 (stock kernel)
  • November 2010 - 0.10 beta driver unusable for Fedora 14. Fedora 14 (kernel-2.6.35) correctly detects the Avermedia tuner, but that's all.
  • Avermedia's official answer is they stopped updating the driver for AverTV Hybrid Volar HX (A827).
  • So, driver needed for this device with Kernels greater than 2.6.33 !!!.
  • For me, the driver + kernel 2.6.35 seems to work. For 2.6.36, the functions "param_array_get" and "param_array_set" are not declared any more. Hex edit the binary files provided with the driver and replace the two occurences by "param_array_ops".
  • Appreciate your support. The driver fails to install on FC14 even with a manual install. Can you be more specific regarding your specifications for kernel 2.6.35?!



Getting it to work with 2.6.36, 2.6.37 and 2.6.38

For 2.6.36 hex edit file H826D-expert-install/aver/osdep_dvb.o_shipped and replace param_array_get and param_array_set by param_array_ops

For 2.6.37:

  • in file H826D-expert-install/aver/osdep.c replace init_MUTEX(tmp); by sema_init(tmp, 1); and init_MUTEX_LOCKED(tmp); by sema_init(tmp, 0);
  • in file H826D-expert-install/aver/osdep_dvb.c replace init_MUTEX(&p->feedlock); by sema_init(&p->feedlock, 1);
  • add #define VFL_TYPE_VTX 3 to top of file H826D-expert-install/aver/osdep_v4l2.c

Tested on Archlinux and Slackware 13.1

For 2.6.38 (with Big Kernel Lock (BKL) disabled by default) - Solution from AVerMedia_A828:

  • Apply the solution for 2.6.36 and 2.6.37 before.
1. In aver/osdep.c : 
	Replace : 
		void SysLockKernel()
		{
			lock_kernel();
		}

		void SysUnlockKernel()
		{
			unlock_kernel();
		}
         By
                static DEFINE_MUTEX(dvbdev_mutex);
		void SysLockKernel()
		{
			mutex_lock(&dvbdev_mutex);
		}

		void SysUnlockKernel()
		{
			mutex_unlock(&dvbdev_mutex);
		}
2. In aver/osdep_th2.c :
	2.a After : 
		#include "osdep_th2.h"
	    Add : 
		#include "osdep.h"
	2.b Replace : 
		lock_kernel();
	    By : 
		SysLockKernel();
	
	2.c and Replace : 
		unlock_kernel();
	    By:
		SysUnlockKernel();


Plug in the USB Volar HX ( A827 ) tuner. Install driver in normal mode, and should see the installation concluded succesfully. Next, the messages is to unplug the device (do so) and to replug it (do so) Next is the sound testing. Modify the parameters according with your area. You should hear a tv sound like (with or without station). The ideea is to get sound from the USB tuner. After that there is the h826d-tools the software wants to install. You can install it, but there is no need of it (some sh scripts tv-player, audio, radio-player).

The thing is after that, you should see in dmesg, the tuner loaded and then devices created video0 vbi1 radio0 and even adapter0 (for dvb) and of course the alsa emulation for the tuner:

  • A827 registered V4L2 device video0[video]
  • [ 4373.455456] A827 registered V4L2 device vbi1[vbi]
  • [ 4373.455486] A827 registered V4L2 device radio0[radio]
  • [ 4373.455835] A827 registered ALSA sound card 1
  • [ 4373.455844] DVB: registering new adapter (A827[0] DVB-T)
  • [ 4373.455847] A827[0] DVB-T registered DVB adapter 0
  • [ 4373.457303] DVB: registering adapter 0 frontend 0 (A827[0] DVB-T)...

A cat /proc/asound/cards should display 1: your system sound card (let's say ALC 826 analog device) and 2: the sound emulation of your usb tv tuner. Of course if you have a webcam installed, these devices will show up different: video1 and so on and they should work with no problem.

Analog TV and composite

I only tested on analog tv and composite. For video I used tvtime (scan and watch analog channels but no sound) and mplayer - watched analog tv channels with sound on alsa server (I removed pulse as I always do.) There is no need to start arecord, or aplay, or sox, or so if you are gonna use mplayer to watch TV, as mplayer supports ALSA directly, but in this case, you must specify the hardware id: Ex:

  • if dmesg shows your Volar HX as: A827 registered ALSA sound card 1, you should declare in mplayer commandline adevice=hw.1
  • if dmesg shows your Volar HX as: A827 registered ALSA sound card 2, you should declare in mplayer commandline adevice=hw.2

(Example:)

  • mplayer tv:// -driver=v4l2:device=/dev/video0:norm=PAL:chanlist=europe-east:input=0:channel=R9:alsa:adevice=hw.1:forceaudio:immediatemode=0 tv://

(Similar for mencoder) The only mention that it deserve to be made, is to install all the alsa-plugins. Enjoy!

DVB-T

Kaffeine works like a charm, Klear (which is app I use on another machine over a year) work up to 10 seconds, then takes 100% of 1 processor (fortunately today almost everyone has dual or quad), and you have no other choice then to close it (or kill it in some cases).

MPlayer and Xine work fine once you provide them channels.conf made by scan in theirs respective config direcotries. Switching programs in Gnome Mplayer may cause some troubles (if you use channels as playlist) so recommended way is to turn off (gnome) mplayer instance you are currently watching and then open another with different channel.

FM-radio

As written above, 0.10 beta driver for i386 or x86_64 makes /dev/radio0 device, I added user to video & audio group (even tried as root), but gnomeradio doesn't give a sound. That's probably some issue with mixer, as it is grayed. As in Windows both DVB-T and FM work, so there is obviously needed some tweaking to get FM radio working (haven't tried yet DVB radio either in Windows/linux).

USB-Interfaces

/proc/bus/usb/devices-output (shorter then lsusb -v):

T:  Bus=01 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  5 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=07ca ProdID=a827 Rev= 1.03
S:  Manufacturer=AVerMedia
S:  Product=AVerTV
S:  SerialNumber=300871601647
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:  If#= 0 Alt= 1 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=500us
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=82(I) Atr=01(Isoc) MxPS=3030 Ivl=125us
I:  If#= 0 Alt= 2 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=500us
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=82(I) Atr=01(Isoc) MxPS=2178 Ivl=125us
I:  If#= 0 Alt= 3 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=500us
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=82(I) Atr=01(Isoc) MxPS=2058 Ivl=125us
I:  If#= 0 Alt= 4 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=500us
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=82(I) Atr=01(Isoc) MxPS= 970 Ivl=125us
I:  If#= 0 Alt= 5 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=500us
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=82(I) Atr=01(Isoc) MxPS= 684 Ivl=125us
I:  If#= 0 Alt= 6 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=500us
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=82(I) Atr=01(Isoc) MxPS= 940 Ivl=125us

Drivers

You can download drivers for Linux i586/x86_64 here:

This is official beta version 0.10 for OpenSuSE, Mandriva, Fedora and Ubuntu but it will most probably work with any other distro as well.

Kernel driver status

  • Avermedia stopped developing the driver for newer kernels, as posted above.
  • Help appreciated!

This device is currently unsupported by drivers in the regular kernel http://www.linuxtv.org/pipermail/linux-dvb/2008-October/029714.html

Personal tools