1
HOWTO: Get An Avermedia DVB-T working under Linux
2
______________________________________________
5
Assumptions and Introduction
8
Receiving DVB-T in Australia
12
Assumptions and Introduction
14
It is assumed that the reader understands the basic structure
15
of the Linux Kernel DVB drivers and the general principles of
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.
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:
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 -
41
* digitize the analogue video signal and make the resulting
42
datastream available to the data bus.
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
55
The purpose of a simple budget digital TV card (DVB-T,C or S)
58
* Tune the received to receive a broadcast signal.
59
* Extract the encoded digital datastream from the broadcast
61
* Make the encoded digital datastream (MPEG2) available to
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
_________________________________________________________
76
The Avermedia DVB-T is a budget PCI DVB card. It has 3 inputs:
79
* Composite Video Input (RCA Jack)
80
* SVIDEO Input (Mini-DIN)
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.
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
_________________________________________________________
96
Getting the card going
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.
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
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
116
The primary device nodes that we are interested in (at this
117
stage) for the Avermedia DVB-T are:
119
* /dev/dvb/adapter0/dvr0
120
* /dev/dvb/adapter0/frontend0
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.
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
136
To power up the card, load the following modules in the
139
* modprobe bttv (normally loaded automatically)
140
* modprobe dvb-bt8xx (or place dvb-bt8xx in /etc/modules)
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,
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).
152
Receiving DVB-T in Australia
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
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
164
The frequencies broadcast by Mount Dandenong are:
166
Table 1. Transponder Frequencies Mount Dandenong, Vic, Aus.
167
Broadcaster Channel Frequency
170
NINE VHF 8 191.625 MHz
171
SEVEN VHF 6 177.5 MHz
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
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
190
The defaults for the transponder frequency and other
191
modulation parameters were obtained from www.dba.org.au.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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:
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
_________________________________________________________
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.
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
_________________________________________________________
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.
298
Many thanks to Nigel Pearson for the updates to this document
299
since the recent revision of the driver.