Friday, July 20, 2012

Mini How-to : Installation of Avermedia Green Volar HD under Linux



****************************************************************************************************
Edit 10/11/2012:

This how-to is outdated, if you have this device, i recommend you to install a kernel beginning on 3.5, this DVB adapter will automatically be taken in charge by new kernels.
The only required operation will be to download the firmware as usual.

In a few words:


For Ubuntu 12.04:

Go to http://kernel.ubuntu.com/~kernel-ppa/mainline/

Then choose your kernel, eg. http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.5.5-quantal/

32 bits kernel, download:
linux-headers-3.5.5-030505_3.5.5-030505.201210021510_all.deb
linux-headers-3.5.5-030505-generic_3.5.5-030505.201210021510_i386.deb
linux-image-3.5.5-030505-generic_3.5.5-030505.201210021510_i386.deb
linux-image-extra-3.5.5-030505-generic_3.5.5-030505.201210021510_i386.deb



64 bits kernel, download:
linux-headers-3.5.5-030505_3.5.5-030505.201210021510_all.deb
linux-headers-3.5.5-030505-generic_3.5.5-030505.201210021510_amd64.deb
linux-image-3.5.5-030505-generic_3.5.5-030505.201210021510_amd64.deb
linux-image-extra-3.5.5-030505-generic_3.5.5-030505.201210021510_amd64.deb


Then install:

$ sudo dpkg -i *.deb


Reboot.

Download firmware:

cd /lib/firmware
sudo wget http://xgazza.altervista.org/Linux/DVB/dvb-usb-af9035-02.fw


And you're done, just plug, and check your kernel log (command "dmesg")

****************************************************************************************************



So you bought this cheap DVB Tuner USB key and was thinking it would work under Linux with no efforts...well not absolutely in fact :-)

Let's see how to deal with this key, see my post on tvheadend and XBMC for more information on getting live TV using such DVB Tuners:
http://youresuchageek.blogspot.fr/2012/07/xbmc-pvr-how-to-enhance-your-xbmc-media.html

We will use v4l-DVB drivers from Linux TV:

First install some requirements:
For Ubuntu 12.04:

sudo apt-get install libdigest-sha-perl make gcc git patch patchutils libproc-processtable-perl linux-source linux-headers-`uname -r`


For Ubuntu 11.10 and previous:

sudo aptitude install libdigest-sha1-perl make gcc git patch patchutils libproc-processtable-perl linux-source linux-headers-`uname -r`


Download modules, when the process will begin to compile abort it with "ctrl+c", this is very unusual but we don't need the compilation to complete:

git clone git://linuxtv.org/media_build.git
cd media_build 
./build


So you aborted compilation, then we will compile and install DVB modules (NB: I you have double core processor using "make -j 2" will speed up the compilation, you may also use standard command with "make")

make allyesconfig
make -j 2
sudo make install


NOTE for Ubuntu kernel 3.2.0-26, compilation could fail, proceed with:
creating "media_build/linux/include/linux/v4l2-common.h" with the following content and relaunch compilation

#ifndef V4L2_COMMON_H
#define V4L2_COMMON_H

/* Hints for adjustments of selection rectangle */
#define V4L2_SEL_FLAG_GE        0x00000001
#define V4L2_SEL_FLAG_LE        0x00000002

/* Selection targets */

/* Current cropping area */
#define V4L2_SEL_TGT_CROP        0x0000
#define V4L2_SEL_TGT_CROP_ACTIVE        0x0000
/* Default cropping area */
#define V4L2_SEL_TGT_CROP_DEFAULT       0x0001
/* Cropping bounds */
#define V4L2_SEL_TGT_CROP_BOUNDS        0x0002
/* Current composing area */
#define V4L2_SEL_TGT_COMPOSE        0x0100
#define V4L2_SEL_TGT_COMPOSE_ACTIVE     0x0100
/* Default composing area */
#define V4L2_SEL_TGT_COMPOSE_DEFAULT    0x0101
/* Composing bounds */
#define V4L2_SEL_TGT_COMPOSE_BOUNDS     0x0102
/* Current composing area plus all padding pixels */
#define V4L2_SEL_TGT_COMPOSE_PADDED     0x0103

#endif //V4L2_COMMON_H


Download Firmware:

cd /lib/firmware
sudo wget http://xgazza.altervista.org/Linux/DVB/dvb-usb-af9035-02.fw


Plug your DVB USB Key and check kernel message, if you're ok you will get this kind of message:

dvb-usb: found a 'AVerMedia AVerTV Volar HD/PRO (A835)' in cold state, will try to load a firmware
dvb-usb: downloading firmware from file 'dvb-usb-af9035-02.fw'
af9035: firmware version=11.5.9.0
dvb-usb: found a 'AVerMedia AVerTV Volar HD/PRO (A835)' in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
DVB: registering new adapter (AVerMedia AVerTV Volar HD/PRO (A835))
dvb-usb: MAC address: 00:00:00:00:00:00
af9033: firmware version: LINK=11.5.9.0 OFDM=5.17.9.1
DVB: registering adapter 0 frontend 0 (Afatech AF9033 (DVB-T))...
tda18218: NXP TDA18218HN successfully identified.
Registered IR keymap rc-empty
input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:12.2/usb1/1-1/rc/rc0/input7
rc0: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:12.2/usb1/1-1/rc/rc0
dvb-usb: schedule remote query interval to 250 msecs.
dvb-usb: AVerMedia AVerTV Volar HD/PRO (A835) successfully initialized and connected.
usbcore: registered new interface driver dvb_usb_af9035

That's all you're done :-)

Some sources: