1 .. SPDX-License-Identifier: GPL-2.0
3 HOWTO: Get An Avermedia DVB-T working under Linux
4 -------------------------------------------------
10 This documentation is outdated. Please check at the DVB wiki
11 at https://linuxtv.org/wiki for more updated info.
13 There's a section there specific for Avermedia boards at:
14 https://linuxtv.org/wiki/index.php/AVerMedia
17 Assumptions and Introduction
18 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 It is assumed that the reader understands the basic structure
21 of the Linux Kernel DVB drivers and the general principles of
24 One significant difference between Digital TV and Analogue TV
25 that the unwary (like myself) should consider is that,
26 although the component structure of budget DVB-T cards are
27 substantially similar to Analogue TV cards, they function in
28 substantially different ways.
30 The purpose of an Analogue TV is to receive and display an
31 Analogue Television signal. An Analogue TV signal (otherwise
32 known as composite video) is an analogue encoding of a
33 sequence of image frames (25 per second) rasterised using an
34 interlacing technique. Interlacing takes two fields to
35 represent one frame. Computers today are at their best when
36 dealing with digital signals, not analogue signals and a
37 composite video signal is about as far removed from a digital
38 data stream as you can get. Therefore, an Analogue TV card for
39 a PC has the following purpose:
41 * Tune the receiver to receive a broadcast signal
42 * demodulate the broadcast signal
43 * demultiplex the analogue video signal and analogue audio
44 signal. **NOTE:** some countries employ a digital audio signal
45 embedded within the modulated composite analogue signal -
47 * digitize the analogue video signal and make the resulting
48 datastream available to the data bus.
50 The digital datastream from an Analogue TV card is generated
51 by circuitry on the card and is often presented uncompressed.
52 For a PAL TV signal encoded at a resolution of 768x576 24-bit
53 color pixels over 25 frames per second - a fair amount of data
54 is generated and must be processed by the PC before it can be
55 displayed on the video monitor screen. Some Analogue TV cards
56 for PCs have onboard MPEG2 encoders which permit the raw
57 digital data stream to be presented to the PC in an encoded
58 and compressed form - similar to the form that is used in
61 The purpose of a simple budget digital TV card (DVB-T,C or S)
64 * Tune the received to receive a broadcast signal.
65 * Extract the encoded digital datastream from the broadcast
67 * Make the encoded digital datastream (MPEG2) available to
70 The significant difference between the two is that the tuner
71 on the analogue TV card spits out an Analogue signal, whereas
72 the tuner on the digital TV card spits out a compressed
73 encoded digital datastream. As the signal is already
74 digitised, it is trivial to pass this datastream to the PC
75 databus with minimal additional processing and then extract
76 the digital video and audio datastreams passing them to the
77 appropriate software or hardware for decoding and viewing.
82 The Avermedia DVB-T is a budget PCI DVB card. It has 3 inputs:
85 * Composite Video Input (RCA Jack)
86 * SVIDEO Input (Mini-DIN)
88 The RF Tuner Input is the input to the tuner module of the
89 card. The Tuner is otherwise known as the "Frontend" . The
90 Frontend of the Avermedia DVB-T is a Microtune 7202D. A timely
91 post to the linux-dvb mailing list ascertained that the
92 Microtune 7202D is supported by the sp887x driver which is
93 found in the dvb-hw CVS module.
95 The DVB-T card is based around the BT878 chip which is a very
96 common multimedia bridge and often found on Analogue TV cards.
97 There is no on-board MPEG2 decoder, which means that all MPEG2
98 decoding must be done in software, or if you have one, on an
99 MPEG2 hardware decoding card or chipset.
102 Getting the card going
103 ~~~~~~~~~~~~~~~~~~~~~~
105 In order to fire up the card, it is necessary to load a number
106 of modules from the DVB driver set. Prior to this it will have
107 been necessary to download these drivers from the linuxtv CVS
108 server and compile them successfully.
110 Depending on the card's feature set, the Device Driver API for
111 DVB under Linux will expose some of the following device files
114 * /dev/dvb/adapter0/audio0
115 * /dev/dvb/adapter0/ca0
116 * /dev/dvb/adapter0/demux0
117 * /dev/dvb/adapter0/dvr0
118 * /dev/dvb/adapter0/frontend0
119 * /dev/dvb/adapter0/net0
120 * /dev/dvb/adapter0/osd0
121 * /dev/dvb/adapter0/video0
123 The primary device nodes that we are interested in (at this
124 stage) for the Avermedia DVB-T are:
126 * /dev/dvb/adapter0/dvr0
127 * /dev/dvb/adapter0/frontend0
129 The dvr0 device node is used to read the MPEG2 Data Stream and
130 the frontend0 node is used to tune the frontend tuner module.
132 At this stage, it has not been able to ascertain the
133 functionality of the remaining device nodes in respect of the
134 Avermedia DVBT. However, full functionality in respect of
135 tuning, receiving and supplying the MPEG2 data stream is
136 possible with the currently available versions of the driver.
137 It may be possible that additional functionality is available
138 from the card (i.e. viewing the additional analogue inputs
139 that the card presents), but this has not been tested yet. If
140 I get around to this, I'll update the document with whatever I
143 To power up the card, load the following modules in the
146 * modprobe bttv (normally loaded automatically)
147 * modprobe dvb-bt8xx (or place dvb-bt8xx in /etc/modules)
149 Insertion of these modules into the running kernel will
150 activate the appropriate DVB device nodes. It is then possible
151 to start accessing the card with utilities such as scan, tzap,
154 The frontend module sp887x.o, requires an external firmware.
155 Please use the command "get_dvb_firmware sp887x" to download
156 it. Then copy it to /usr/lib/hotplug/firmware or /lib/firmware/
157 (depending on configuration of firmware hotplug).
159 Receiving DVB-T in Australia
160 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
162 I have no experience of DVB-T in other countries other than
163 Australia, so I will attempt to explain how it works here in
164 Melbourne and how this affects the configuration of the DVB-T
167 The Digital Broadcasting Australia website has a Reception
168 locatortool which provides information on transponder channels
169 and frequencies. My local transmitter happens to be Mount
172 The frequencies broadcast by Mount Dandenong are:
174 Table 1. Transponder Frequencies Mount Dandenong, Vic, Aus.
175 Broadcaster Channel Frequency
178 NINE VHF 8 191.625 MHz
179 SEVEN VHF 6 177.5 MHz
182 The Scan utility has a set of compiled-in defaults for various
183 countries and regions, but if they do not suit, or if you have
184 a pre-compiled scan binary, you can specify a data file on the
185 command line which contains the transponder frequencies. Here
186 is a sample file for the above channel transponders:
190 # Data file for DVB scan program
192 # C Frequency SymbolRate FEC QAM
193 # S Frequency Polarisation SymbolRate FEC
194 # T Frequency Bandwidth FEC FEC2 QAM Mode Guard Hier
195 T 226500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
196 T 191625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
197 T 219500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
198 T 177500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
199 T 536500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
201 The defaults for the transponder frequency and other
202 modulation parameters were obtained from www.dba.org.au.
204 When Scan runs, it will output channels.conf information for
205 any channel's transponders which the card's frontend can lock
206 onto. (i.e. any whose signal is strong enough at your
209 Here's my channels.conf file for anyone who's interested:
213 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
214 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
215 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
216 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
217 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
218 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
219 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
220 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
221 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
222 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
223 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
224 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
225 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
226 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
227 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
228 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
229 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
230 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
231 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
232 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
233 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
234 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
235 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
236 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
237 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
238 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
239 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
240 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
241 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
242 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
247 At present I can say with confidence that the frontend tunes
248 via /dev/dvb/adapter{x}/frontend0 and supplies an MPEG2 stream
249 via /dev/dvb/adapter{x}/dvr0. I have not tested the
250 functionality of any other part of the card yet. I will do so
251 over time and update this document.
253 There are some limitations in the i2c layer due to a returned
254 error message inconsistency. Although this generates errors in
255 dmesg and the system logs, it does not appear to affect the
256 ability of the frontend to function correctly.
261 dvbstream and VideoLAN Client on windows works a treat with
262 DVB, in fact this is currently serving as my main way of
263 viewing DVB-T at the moment. Additionally, VLC is happily
264 decoding HDTV signals, although the PC is dropping the odd
265 frame here and there - I assume due to processing capability -
266 as all the decoding is being done under windows in software.
268 Many thanks to Nigel Pearson for the updates to this document
269 since the recent revision of the driver.