HOWTO: Get An Avermedia DVB-T working under Linux
-------------------------------------------------

February 14th 2006

.. note::

   This documentation is outdated. Please check at the DVB wiki
   at https://linuxtv.org/wiki for more updated info.

   There's a section there specific for Avermedia boards at:
   https://linuxtv.org/wiki/index.php/AVerMedia


Assumptions and Introduction
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

It  is assumed that the reader understands the basic structure
of  the Linux Kernel DVB drivers and the general principles of
Digital TV.

One  significant difference between Digital TV and Analogue TV
that  the  unwary  (like  myself)  should  consider  is  that,
although  the  component  structure  of budget DVB-T cards are
substantially  similar  to Analogue TV cards, they function in
substantially different ways.

The  purpose  of  an  Analogue TV is to receive and display an
Analogue  Television  signal. An Analogue TV signal (otherwise
known  as  composite  video)  is  an  analogue  encoding  of a
sequence  of  image frames (25 per second) rasterised using an
interlacing   technique.   Interlacing  takes  two  fields  to
represent  one  frame.  Computers today are at their best when
dealing  with  digital  signals,  not  analogue  signals and a
composite  video signal is about as far removed from a digital
data stream as you can get. Therefore, an Analogue TV card for
a PC has the following purpose:

* Tune the receiver to receive a broadcast signal
* demodulate the broadcast signal
* demultiplex  the  analogue video signal and analogue audio
  signal. **NOTE:** some countries employ a digital audio signal
  embedded  within the modulated composite analogue signal -
  NICAM.)
* digitize  the analogue video signal and make the resulting
  datastream available to the data bus.

The  digital  datastream from an Analogue TV card is generated
by  circuitry on the card and is often presented uncompressed.
For  a PAL TV signal encoded at a resolution of 768x576 24-bit
color pixels over 25 frames per second - a fair amount of data
is  generated and must be processed by the PC before it can be
displayed  on the video monitor screen. Some Analogue TV cards
for  PCs  have  onboard  MPEG2  encoders  which permit the raw
digital  data  stream  to be presented to the PC in an encoded
and  compressed  form  -  similar  to the form that is used in
Digital TV.

The  purpose of a simple budget digital TV card (DVB-T,C or S)
is to simply:

* Tune the received to receive a broadcast signal.
* Extract  the encoded digital datastream from the broadcast
  signal.
* Make  the  encoded digital datastream (MPEG2) available to
  the data bus.

The  significant  difference between the two is that the tuner
on  the analogue TV card spits out an Analogue signal, whereas
the  tuner  on  the  digital  TV  card  spits out a compressed
encoded   digital   datastream.   As  the  signal  is  already
digitised,  it  is  trivial  to pass this datastream to the PC
databus  with  minimal  additional processing and then extract
the  digital  video  and audio datastreams passing them to the
appropriate software or hardware for decoding and viewing.

The Avermedia DVB-T
~~~~~~~~~~~~~~~~~~~

The Avermedia DVB-T is a budget PCI DVB card. It has 3 inputs:

* RF Tuner Input
* Composite Video Input (RCA Jack)
* SVIDEO Input (Mini-DIN)

The  RF  Tuner  Input  is the input to the tuner module of the
card.  The  Tuner  is  otherwise known as the "Frontend" . The
Frontend of the Avermedia DVB-T is a Microtune 7202D. A timely
post  to  the  linux-dvb  mailing  list  ascertained  that the
Microtune  7202D  is  supported  by the sp887x driver which is
found in the dvb-hw CVS module.

The  DVB-T card is based around the BT878 chip which is a very
common multimedia bridge and often found on Analogue TV cards.
There is no on-board MPEG2 decoder, which means that all MPEG2
decoding  must  be done in software, or if you have one, on an
MPEG2 hardware decoding card or chipset.


Getting the card going
~~~~~~~~~~~~~~~~~~~~~~

In order to fire up the card, it is necessary to load a number
of modules from the DVB driver set. Prior to this it will have
been  necessary to download these drivers from the linuxtv CVS
server and compile them successfully.

Depending on the card's feature set, the Device Driver API for
DVB under Linux will expose some of the following device files
in the /dev tree:

* /dev/dvb/adapter0/audio0
* /dev/dvb/adapter0/ca0
* /dev/dvb/adapter0/demux0
* /dev/dvb/adapter0/dvr0
* /dev/dvb/adapter0/frontend0
* /dev/dvb/adapter0/net0
* /dev/dvb/adapter0/osd0
* /dev/dvb/adapter0/video0

The  primary  device  nodes that we are interested in (at this
stage) for the Avermedia DVB-T are:

* /dev/dvb/adapter0/dvr0
* /dev/dvb/adapter0/frontend0

The dvr0 device node is used to read the MPEG2 Data Stream and
the frontend0 node is used to tune the frontend tuner module.

At  this  stage,  it  has  not  been  able  to  ascertain  the
functionality  of the remaining device nodes in respect of the
Avermedia  DVBT.  However,  full  functionality  in respect of
tuning,  receiving  and  supplying  the  MPEG2  data stream is
possible  with the currently available versions of the driver.
It  may be possible that additional functionality is available
from  the  card  (i.e.  viewing the additional analogue inputs
that  the card presents), but this has not been tested yet. If
I get around to this, I'll update the document with whatever I
find.

To  power  up  the  card,  load  the  following modules in the
following order:

* modprobe bttv (normally loaded automatically)
* modprobe dvb-bt8xx (or place dvb-bt8xx in /etc/modules)

Insertion  of  these  modules  into  the  running  kernel will
activate the appropriate DVB device nodes. It is then possible
to start accessing the card with utilities such as scan, tzap,
dvbstream etc.

The frontend module sp887x.o, requires an external   firmware.
Please use  the  command "get_dvb_firmware sp887x" to download
it. Then copy it to /usr/lib/hotplug/firmware or /lib/firmware/
(depending on configuration of firmware hotplug).

Receiving DVB-T in Australia
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I  have  no  experience of DVB-T in other countries other than
Australia,  so  I will attempt to explain how it works here in
Melbourne  and how this affects the configuration of the DVB-T
card.

The  Digital  Broadcasting  Australia  website has a Reception
locatortool which provides information on transponder channels
and  frequencies.  My  local  transmitter  happens to be Mount
Dandenong.

The frequencies broadcast by Mount Dandenong are:

Table 1. Transponder Frequencies Mount Dandenong, Vic, Aus.
Broadcaster Channel Frequency
ABC         VHF 12  226.5 MHz
TEN         VHF 11  219.5 MHz
NINE        VHF 8   191.625 MHz
SEVEN       VHF 6   177.5 MHz
SBS         UHF 29  536.5 MHz

The Scan utility has a set of compiled-in defaults for various
countries and regions, but if they do not suit, or if you have
a pre-compiled scan binary, you can specify a data file on the
command  line which contains the transponder frequencies. Here
is a sample file for the above channel transponders:

::

	# Data file for DVB scan program
	#
	# C Frequency SymbolRate FEC QAM
	# S Frequency Polarisation SymbolRate FEC
	# T Frequency Bandwidth FEC FEC2 QAM Mode Guard Hier
	T 226500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
	T 191625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
	T 219500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
	T 177500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
	T 536500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE

The   defaults   for   the  transponder  frequency  and  other
modulation parameters were obtained from www.dba.org.au.

When  Scan  runs, it will output channels.conf information for
any  channel's transponders which the card's frontend can lock
onto.  (i.e.  any  whose  signal  is  strong  enough  at  your
antenna).

Here's my channels.conf file for anyone who's interested:

::

	ABC HDTV:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:2307:0:560
	ABC TV Melbourne:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:561
	ABC TV 2:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:562
	ABC TV 3:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:563
	ABC TV 4:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:564
	ABC DiG Radio:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:2311:566
	TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1585
	TEN Digital 1:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1586
	TEN Digital 2:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1587
	TEN Digital 3:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1588
	TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1589
	TEN Digital 4:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1590
	TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1591
	TEN HD:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:514:0:1592
	TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1593
	Nine Digital:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:513:660:1072
	Nine Digital HD:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:0:1073
	Nine Guide:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:514:670:1074
	7 Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1328
	7 Digital 1:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1329
	7 Digital 2:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1330
	7 Digital 3:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1331
	7 HD Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:833:834:1332
	7 Program Guide:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:865:866:1334
	SBS HD:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:102:103:784
	SBS DIGITAL 1:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:81:785
	SBS DIGITAL 2:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:162:83:786
	SBS EPG:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:163:85:787
	SBS RADIO 1:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:201:798
	SBS RADIO 2:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:202:799

Known Limitations
~~~~~~~~~~~~~~~~~

At  present  I can say with confidence that the frontend tunes
via /dev/dvb/adapter{x}/frontend0 and supplies an MPEG2 stream
via   /dev/dvb/adapter{x}/dvr0.   I   have   not   tested  the
functionality  of any other part of the card yet. I will do so
over time and update this document.

There  are some limitations in the i2c layer due to a returned
error message inconsistency. Although this generates errors in
dmesg  and  the  system logs, it does not appear to affect the
ability of the frontend to function correctly.

Further Update
~~~~~~~~~~~~~~

dvbstream  and  VideoLAN  Client on windows works a treat with
DVB,  in  fact  this  is  currently  serving as my main way of
viewing  DVB-T  at  the  moment.  Additionally, VLC is happily
decoding  HDTV  signals,  although  the PC is dropping the odd
frame here and there - I assume due to processing capability -
as all the decoding is being done under windows in software.

Many  thanks to Nigel Pearson for the updates to this document
since the recent revision of the driver.
