linux/Documentation/dvb/avermedia.txt
<<
>>
Prefs
   1HOWTO: Get An Avermedia DVB-T working under Linux
   2           ______________________________________________
   3
   4   Table of Contents
   5   Assumptions and Introduction
   6   The Avermedia DVB-T
   7   Getting the card going
   8   Receiving DVB-T in Australia
   9   Known Limitations
  10   Further Update
  11
  12Assumptions and Introduction
  13
  14   It  is assumed that the reader understands the basic structure
  15   of  the Linux Kernel DVB drivers and the general principles of
  16   Digital TV.
  17
  18   One  significant difference between Digital TV and Analogue TV
  19   that  the  unwary  (like  myself)  should  consider  is  that,
  20   although  the  component  structure  of budget DVB-T cards are
  21   substantially  similar  to Analogue TV cards, they function in
  22   substantially different ways.
  23
  24   The  purpose  of  an  Analogue TV is to receive and display an
  25   Analogue  Television  signal. An Analogue TV signal (otherwise
  26   known  as  composite  video)  is  an  analogue  encoding  of a
  27   sequence  of  image frames (25 per second) rasterised using an
  28   interlacing   technique.   Interlacing  takes  two  fields  to
  29   represent  one  frame.  Computers today are at their best when
  30   dealing  with  digital  signals,  not  analogue  signals and a
  31   composite  video signal is about as far removed from a digital
  32   data stream as you can get. Therefore, an Analogue TV card for
  33   a PC has the following purpose:
  34
  35     * Tune the receiver to receive a broadcast signal
  36     * demodulate the broadcast signal
  37     * demultiplex  the  analogue video signal and analogue audio
  38       signal  (note some countries employ a digital audio signal
  39       embedded  within the modulated composite analogue signal -
  40       NICAM.)
  41     * digitize  the analogue video signal and make the resulting
  42       datastream available to the data bus.
  43
  44   The  digital  datastream from an Analogue TV card is generated
  45   by  circuitry on the card and is often presented uncompressed.
  46   For  a PAL TV signal encoded at a resolution of 768x576 24-bit
  47   color pixels over 25 frames per second - a fair amount of data
  48   is  generated and must be processed by the PC before it can be
  49   displayed  on the video monitor screen. Some Analogue TV cards
  50   for  PCs  have  onboard  MPEG2  encoders  which permit the raw
  51   digital  data  stream  to be presented to the PC in an encoded
  52   and  compressed  form  -  similar  to the form that is used in
  53   Digital TV.
  54
  55   The  purpose of a simple budget digital TV card (DVB-T,C or S)
  56   is to simply:
  57
  58     * Tune the received to receive a broadcast signal.
  59     * Extract  the encoded digital datastream from the broadcast
  60       signal.
  61     * Make  the  encoded digital datastream (MPEG2) available to
  62       the data bus.
  63
  64   The  significant  difference between the two is that the tuner
  65   on  the analogue TV card spits out an Analogue signal, whereas
  66   the  tuner  on  the  digital  TV  card  spits out a compressed
  67   encoded   digital   datastream.   As  the  signal  is  already
  68   digitised,  it  is  trivial  to pass this datastream to the PC
  69   databus  with  minimal  additional processing and then extract
  70   the  digital  video  and audio datastreams passing them to the
  71   appropriate software or hardware for decoding and viewing.
  72     _________________________________________________________
  73
  74The Avermedia DVB-T
  75
  76   The Avermedia DVB-T is a budget PCI DVB card. It has 3 inputs:
  77
  78     * RF Tuner Input
  79     * Composite Video Input (RCA Jack)
  80     * SVIDEO Input (Mini-DIN)
  81
  82   The  RF  Tuner  Input  is the input to the tuner module of the
  83   card.  The  Tuner  is  otherwise known as the "Frontend" . The
  84   Frontend of the Avermedia DVB-T is a Microtune 7202D. A timely
  85   post  to  the  linux-dvb  mailing  list  ascertained  that the
  86   Microtune  7202D  is  supported  by the sp887x driver which is
  87   found in the dvb-hw CVS module.
  88
  89   The  DVB-T card is based around the BT878 chip which is a very
  90   common multimedia bridge and often found on Analogue TV cards.
  91   There is no on-board MPEG2 decoder, which means that all MPEG2
  92   decoding  must  be done in software, or if you have one, on an
  93   MPEG2 hardware decoding card or chipset.
  94     _________________________________________________________
  95
  96Getting the card going
  97
  98   In order to fire up the card, it is necessary to load a number
  99   of modules from the DVB driver set. Prior to this it will have
 100   been  necessary to download these drivers from the linuxtv CVS
 101   server and compile them successfully.
 102
 103   Depending on the card's feature set, the Device Driver API for
 104   DVB under Linux will expose some of the following device files
 105   in the /dev tree:
 106
 107     * /dev/dvb/adapter0/audio0
 108     * /dev/dvb/adapter0/ca0
 109     * /dev/dvb/adapter0/demux0
 110     * /dev/dvb/adapter0/dvr0
 111     * /dev/dvb/adapter0/frontend0
 112     * /dev/dvb/adapter0/net0
 113     * /dev/dvb/adapter0/osd0
 114     * /dev/dvb/adapter0/video0
 115
 116   The  primary  device  nodes that we are interested in (at this
 117   stage) for the Avermedia DVB-T are:
 118
 119     * /dev/dvb/adapter0/dvr0
 120     * /dev/dvb/adapter0/frontend0
 121
 122   The dvr0 device node is used to read the MPEG2 Data Stream and
 123   the frontend0 node is used to tune the frontend tuner module.
 124
 125   At  this  stage,  it  has  not  been  able  to  ascertain  the
 126   functionality  of the remaining device nodes in respect of the
 127   Avermedia  DVBT.  However,  full  functionality  in respect of
 128   tuning,  receiving  and  supplying  the  MPEG2  data stream is
 129   possible  with the currently available versions of the driver.
 130   It  may be possible that additional functionality is available
 131   from  the  card  (i.e.  viewing the additional analogue inputs
 132   that  the card presents), but this has not been tested yet. If
 133   I get around to this, I'll update the document with whatever I
 134   find.
 135
 136   To  power  up  the  card,  load  the  following modules in the
 137   following order:
 138
 139     * modprobe bttv (normally loaded automatically)
 140     * modprobe dvb-bt8xx (or place dvb-bt8xx in /etc/modules)
 141
 142   Insertion  of  these  modules  into  the  running  kernel will
 143   activate the appropriate DVB device nodes. It is then possible
 144   to start accessing the card with utilities such as scan, tzap,
 145   dvbstream etc.
 146
 147   The frontend module sp887x.o, requires an external   firmware.
 148   Please use  the  command "get_dvb_firmware sp887x" to download
 149   it. Then copy it to /usr/lib/hotplug/firmware or /lib/firmware/
 150   (depending on configuration of firmware hotplug).
 151
 152Receiving DVB-T in Australia
 153
 154   I  have  no  experience of DVB-T in other countries other than
 155   Australia,  so  I will attempt to explain how it works here in
 156   Melbourne  and how this affects the configuration of the DVB-T
 157   card.
 158
 159   The  Digital  Broadcasting  Australia  website has a Reception
 160   locatortool which provides information on transponder channels
 161   and  frequencies.  My  local  transmitter  happens to be Mount
 162   Dandenong.
 163
 164   The frequencies broadcast by Mount Dandenong are:
 165
 166   Table 1. Transponder Frequencies Mount Dandenong, Vic, Aus.
 167   Broadcaster Channel Frequency
 168   ABC         VHF 12  226.5 MHz
 169   TEN         VHF 11  219.5 MHz
 170   NINE        VHF 8   191.625 MHz
 171   SEVEN       VHF 6   177.5 MHz
 172   SBS         UHF 29  536.5 MHz
 173
 174   The Scan utility has a set of compiled-in defaults for various
 175   countries and regions, but if they do not suit, or if you have
 176   a pre-compiled scan binary, you can specify a data file on the
 177   command  line which contains the transponder frequencies. Here
 178   is a sample file for the above channel transponders:
 179# Data file for DVB scan program
 180#
 181# C Frequency SymbolRate FEC QAM
 182# S Frequency Polarisation SymbolRate FEC
 183# T Frequency Bandwidth FEC FEC2 QAM Mode Guard Hier
 184T 226500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
 185T 191625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
 186T 219500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
 187T 177500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
 188T 536500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
 189
 190   The   defaults   for   the  transponder  frequency  and  other
 191   modulation parameters were obtained from www.dba.org.au.
 192
 193   When  Scan  runs, it will output channels.conf information for
 194   any  channel's transponders which the card's frontend can lock
 195   onto.  (i.e.  any  whose  signal  is  strong  enough  at  your
 196   antenna).
 197
 198   Here's my channels.conf file for anyone who's interested:
 199ABC HDTV:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64
 200:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:2307:0:560
 201ABC TV Melbourne:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_
 2024:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:65
 2030:561
 204ABC TV 2:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64
 205:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:562
 206ABC TV 3:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64
 207:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:563
 208ABC TV 4:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64
 209:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:564
 210ABC DiG Radio:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:Q
 211AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:2311:56
 2126
 213TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM
 214_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:158
 2155
 216TEN Digital 1:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:Q
 217AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1
 218586
 219TEN Digital 2:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:Q
 220AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1
 221587
 222TEN Digital 3:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:Q
 223AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1
 224588
 225TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM
 226_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:158
 2279
 228TEN Digital 4:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:Q
 229AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1
 230590
 231TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM
 232_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:159
 2331
 234TEN HD:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:T
 235RANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:514:0:1592
 236TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM
 237_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:159
 2383
 239Nine Digital:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QA
 240M_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:513:660:10
 24172
 242Nine Digital HD:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2
 243:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:0:1
 244073
 245Nine Guide:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_
 24664:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:514:670:1074
 2477 Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_6
 2484:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1328
 2497 Digital 1:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM
 250_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1329
 2517 Digital 2:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM
 252_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1330
 2537 Digital 3:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM
 254_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1331
 2557 HD Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QA
 256M_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:833:834:133
 2572
 2587 Program Guide:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3
 259:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:865:866:
 2601334
 261SBS HD:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:T
 262RANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:102:103:784
 263SBS DIGITAL 1:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:Q
 264AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:81:785
 265SBS DIGITAL 2:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:Q
 266AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:162:83:786
 267SBS EPG:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:
 268TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:163:85:787
 269SBS RADIO 1:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM
 270_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:201:798
 271SBS RADIO 2:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM
 272_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:202:799
 273     _________________________________________________________
 274
 275Known Limitations
 276
 277   At  present  I can say with confidence that the frontend tunes
 278   via /dev/dvb/adapter{x}/frontend0 and supplies an MPEG2 stream
 279   via   /dev/dvb/adapter{x}/dvr0.   I   have   not   tested  the
 280   functionality  of any other part of the card yet. I will do so
 281   over time and update this document.
 282
 283   There  are some limitations in the i2c layer due to a returned
 284   error message inconsistency. Although this generates errors in
 285   dmesg  and  the  system logs, it does not appear to affect the
 286   ability of the frontend to function correctly.
 287     _________________________________________________________
 288
 289Further Update
 290
 291   dvbstream  and  VideoLAN  Client on windows works a treat with
 292   DVB,  in  fact  this  is  currently  serving as my main way of
 293   viewing  DVB-T  at  the  moment.  Additionally, VLC is happily
 294   decoding  HDTV  signals,  although  the PC is dropping the odd
 295   frame here and there - I assume due to processing capability -
 296   as all the decoding is being done under windows in software.
 297
 298   Many  thanks to Nigel Pearson for the updates to this document
 299   since the recent revision of the driver.
 300
 301   February 14th 2006
 302
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.