~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to Documentation/dvb/avermedia.txt

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
HOWTO: 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
 
 
12
Assumptions 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
 
 
74
The 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
 
 
96
Getting 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
 
 
152
Receiving 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
 
184
T 226500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
 
185
T 191625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
 
186
T 219500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
 
187
T 177500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
 
188
T 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:
 
199
ABC 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
 
201
ABC TV Melbourne:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_
 
202
4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:65
 
203
0:561
 
204
ABC 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
 
206
ABC 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
 
208
ABC 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
 
210
ABC DiG Radio:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:Q
 
211
AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:2311:56
 
212
6
 
213
TEN 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
 
215
5
 
216
TEN Digital 1:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:Q
 
217
AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1
 
218
586
 
219
TEN Digital 2:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:Q
 
220
AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1
 
221
587
 
222
TEN Digital 3:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:Q
 
223
AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1
 
224
588
 
225
TEN 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
 
227
9
 
228
TEN Digital 4:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:Q
 
229
AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1
 
230
590
 
231
TEN 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
 
233
1
 
234
TEN HD:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:T
 
235
RANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:514:0:1592
 
236
TEN 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
 
238
3
 
239
Nine Digital:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QA
 
240
M_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:513:660:10
 
241
72
 
242
Nine 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
 
244
073
 
245
Nine Guide:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_
 
246
64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:514:670:1074
 
247
7 Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_6
 
248
4:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1328
 
249
7 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
 
251
7 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
 
253
7 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
 
255
7 HD Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QA
 
256
M_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:833:834:133
 
257
2
 
258
7 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:
 
260
1334
 
261
SBS HD:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:T
 
262
RANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:102:103:784
 
263
SBS DIGITAL 1:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:Q
 
264
AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:81:785
 
265
SBS DIGITAL 2:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:Q
 
266
AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:162:83:786
 
267
SBS EPG:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:
 
268
TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:163:85:787
 
269
SBS 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
 
271
SBS 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
 
 
275
Known 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
 
 
289
Further 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