blob: 49cd9c9353071cef0a06c76d8a8a866acfd64fc2 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001HOWTO: Get An Avermedia DVB-T working under Linux
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -03002-------------------------------------------------
Linus Torvalds1da177e2005-04-16 15:20:36 -07003
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -03004February 14th 2006
5
6.. note::
7
8 This documentation is outdated. Please check at the DVB wiki
9 at https://linuxtv.org/wiki for more updated info.
10
11 There's a section there specific for Avermedia boards at:
12 https://linuxtv.org/wiki/index.php/AVerMedia
13
Linus Torvalds1da177e2005-04-16 15:20:36 -070014
15Assumptions and Introduction
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -030016~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Linus Torvalds1da177e2005-04-16 15:20:36 -070017
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -030018It is assumed that the reader understands the basic structure
19of the Linux Kernel DVB drivers and the general principles of
20Digital TV.
Linus Torvalds1da177e2005-04-16 15:20:36 -070021
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -030022One significant difference between Digital TV and Analogue TV
23that the unwary (like myself) should consider is that,
24although the component structure of budget DVB-T cards are
25substantially similar to Analogue TV cards, they function in
26substantially different ways.
Linus Torvalds1da177e2005-04-16 15:20:36 -070027
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -030028The purpose of an Analogue TV is to receive and display an
29Analogue Television signal. An Analogue TV signal (otherwise
30known as composite video) is an analogue encoding of a
31sequence of image frames (25 per second) rasterised using an
32interlacing technique. Interlacing takes two fields to
33represent one frame. Computers today are at their best when
34dealing with digital signals, not analogue signals and a
35composite video signal is about as far removed from a digital
36data stream as you can get. Therefore, an Analogue TV card for
37a PC has the following purpose:
Linus Torvalds1da177e2005-04-16 15:20:36 -070038
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -030039* Tune the receiver to receive a broadcast signal
40* demodulate the broadcast signal
41* demultiplex the analogue video signal and analogue audio
42 signal. **NOTE:** some countries employ a digital audio signal
43 embedded within the modulated composite analogue signal -
44 NICAM.)
45* digitize the analogue video signal and make the resulting
46 datastream available to the data bus.
Linus Torvalds1da177e2005-04-16 15:20:36 -070047
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -030048The digital datastream from an Analogue TV card is generated
49by circuitry on the card and is often presented uncompressed.
50For a PAL TV signal encoded at a resolution of 768x576 24-bit
51color pixels over 25 frames per second - a fair amount of data
52is generated and must be processed by the PC before it can be
53displayed on the video monitor screen. Some Analogue TV cards
54for PCs have onboard MPEG2 encoders which permit the raw
55digital data stream to be presented to the PC in an encoded
56and compressed form - similar to the form that is used in
57Digital TV.
Linus Torvalds1da177e2005-04-16 15:20:36 -070058
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -030059The purpose of a simple budget digital TV card (DVB-T,C or S)
60is to simply:
Linus Torvalds1da177e2005-04-16 15:20:36 -070061
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -030062* Tune the received to receive a broadcast signal.
63* Extract the encoded digital datastream from the broadcast
64 signal.
65* Make the encoded digital datastream (MPEG2) available to
66 the data bus.
Linus Torvalds1da177e2005-04-16 15:20:36 -070067
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -030068The significant difference between the two is that the tuner
69on the analogue TV card spits out an Analogue signal, whereas
70the tuner on the digital TV card spits out a compressed
71encoded digital datastream. As the signal is already
72digitised, it is trivial to pass this datastream to the PC
73databus with minimal additional processing and then extract
74the digital video and audio datastreams passing them to the
75appropriate software or hardware for decoding and viewing.
Linus Torvalds1da177e2005-04-16 15:20:36 -070076
77The Avermedia DVB-T
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -030078~~~~~~~~~~~~~~~~~~~
Linus Torvalds1da177e2005-04-16 15:20:36 -070079
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -030080The Avermedia DVB-T is a budget PCI DVB card. It has 3 inputs:
Linus Torvalds1da177e2005-04-16 15:20:36 -070081
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -030082* RF Tuner Input
83* Composite Video Input (RCA Jack)
84* SVIDEO Input (Mini-DIN)
Linus Torvalds1da177e2005-04-16 15:20:36 -070085
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -030086The RF Tuner Input is the input to the tuner module of the
87card. The Tuner is otherwise known as the "Frontend" . The
88Frontend of the Avermedia DVB-T is a Microtune 7202D. A timely
89post to the linux-dvb mailing list ascertained that the
90Microtune 7202D is supported by the sp887x driver which is
91found in the dvb-hw CVS module.
Linus Torvalds1da177e2005-04-16 15:20:36 -070092
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -030093The DVB-T card is based around the BT878 chip which is a very
94common multimedia bridge and often found on Analogue TV cards.
95There is no on-board MPEG2 decoder, which means that all MPEG2
96decoding must be done in software, or if you have one, on an
97MPEG2 hardware decoding card or chipset.
98
Linus Torvalds1da177e2005-04-16 15:20:36 -070099
100Getting the card going
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300101~~~~~~~~~~~~~~~~~~~~~~
Linus Torvalds1da177e2005-04-16 15:20:36 -0700102
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300103In order to fire up the card, it is necessary to load a number
104of modules from the DVB driver set. Prior to this it will have
105been necessary to download these drivers from the linuxtv CVS
106server and compile them successfully.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700107
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300108Depending on the card's feature set, the Device Driver API for
109DVB under Linux will expose some of the following device files
110in the /dev tree:
Linus Torvalds1da177e2005-04-16 15:20:36 -0700111
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300112* /dev/dvb/adapter0/audio0
113* /dev/dvb/adapter0/ca0
114* /dev/dvb/adapter0/demux0
115* /dev/dvb/adapter0/dvr0
116* /dev/dvb/adapter0/frontend0
117* /dev/dvb/adapter0/net0
118* /dev/dvb/adapter0/osd0
119* /dev/dvb/adapter0/video0
Linus Torvalds1da177e2005-04-16 15:20:36 -0700120
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300121The primary device nodes that we are interested in (at this
122stage) for the Avermedia DVB-T are:
Linus Torvalds1da177e2005-04-16 15:20:36 -0700123
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300124* /dev/dvb/adapter0/dvr0
125* /dev/dvb/adapter0/frontend0
Linus Torvalds1da177e2005-04-16 15:20:36 -0700126
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300127The dvr0 device node is used to read the MPEG2 Data Stream and
128the frontend0 node is used to tune the frontend tuner module.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700129
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300130At this stage, it has not been able to ascertain the
131functionality of the remaining device nodes in respect of the
132Avermedia DVBT. However, full functionality in respect of
133tuning, receiving and supplying the MPEG2 data stream is
134possible with the currently available versions of the driver.
135It may be possible that additional functionality is available
136from the card (i.e. viewing the additional analogue inputs
137that the card presents), but this has not been tested yet. If
138I get around to this, I'll update the document with whatever I
139find.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700140
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300141To power up the card, load the following modules in the
142following order:
Linus Torvalds1da177e2005-04-16 15:20:36 -0700143
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300144* modprobe bttv (normally loaded automatically)
145* modprobe dvb-bt8xx (or place dvb-bt8xx in /etc/modules)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700146
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300147Insertion of these modules into the running kernel will
148activate the appropriate DVB device nodes. It is then possible
149to start accessing the card with utilities such as scan, tzap,
150dvbstream etc.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700151
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300152The frontend module sp887x.o, requires an external firmware.
153Please use the command "get_dvb_firmware sp887x" to download
154it. Then copy it to /usr/lib/hotplug/firmware or /lib/firmware/
155(depending on configuration of firmware hotplug).
Linus Torvalds1da177e2005-04-16 15:20:36 -0700156
157Receiving DVB-T in Australia
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300158~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Linus Torvalds1da177e2005-04-16 15:20:36 -0700159
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300160I have no experience of DVB-T in other countries other than
161Australia, so I will attempt to explain how it works here in
162Melbourne and how this affects the configuration of the DVB-T
163card.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700164
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300165The Digital Broadcasting Australia website has a Reception
166locatortool which provides information on transponder channels
167and frequencies. My local transmitter happens to be Mount
168Dandenong.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700169
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300170The frequencies broadcast by Mount Dandenong are:
Linus Torvalds1da177e2005-04-16 15:20:36 -0700171
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300172Table 1. Transponder Frequencies Mount Dandenong, Vic, Aus.
173Broadcaster Channel Frequency
174ABC VHF 12 226.5 MHz
175TEN VHF 11 219.5 MHz
176NINE VHF 8 191.625 MHz
177SEVEN VHF 6 177.5 MHz
178SBS UHF 29 536.5 MHz
Linus Torvalds1da177e2005-04-16 15:20:36 -0700179
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300180The Scan utility has a set of compiled-in defaults for various
181countries and regions, but if they do not suit, or if you have
182a pre-compiled scan binary, you can specify a data file on the
183command line which contains the transponder frequencies. Here
184is a sample file for the above channel transponders:
Linus Torvalds1da177e2005-04-16 15:20:36 -0700185
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300186::
Linus Torvalds1da177e2005-04-16 15:20:36 -0700187
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300188 # Data file for DVB scan program
189 #
190 # C Frequency SymbolRate FEC QAM
191 # S Frequency Polarisation SymbolRate FEC
192 # T Frequency Bandwidth FEC FEC2 QAM Mode Guard Hier
193 T 226500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
194 T 191625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
195 T 219500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
196 T 177500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
197 T 536500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700198
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300199The defaults for the transponder frequency and other
200modulation parameters were obtained from www.dba.org.au.
201
202When Scan runs, it will output channels.conf information for
203any channel's transponders which the card's frontend can lock
204onto. (i.e. any whose signal is strong enough at your
205antenna).
206
207Here's my channels.conf file for anyone who's interested:
208
209::
210
211 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
212 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
213 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
214 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
215 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
216 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
217 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
218 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
219 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
220 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
221 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
222 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
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:1591
224 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
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:1593
226 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
227 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
228 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
229 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
230 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
231 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
232 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
233 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
234 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
235 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
236 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
237 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
238 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
239 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
240 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
Linus Torvalds1da177e2005-04-16 15:20:36 -0700241
242Known Limitations
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300243~~~~~~~~~~~~~~~~~
Linus Torvalds1da177e2005-04-16 15:20:36 -0700244
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300245At present I can say with confidence that the frontend tunes
246via /dev/dvb/adapter{x}/frontend0 and supplies an MPEG2 stream
247via /dev/dvb/adapter{x}/dvr0. I have not tested the
248functionality of any other part of the card yet. I will do so
249over time and update this document.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700250
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300251There are some limitations in the i2c layer due to a returned
252error message inconsistency. Although this generates errors in
253dmesg and the system logs, it does not appear to affect the
254ability of the frontend to function correctly.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700255
256Further Update
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300257~~~~~~~~~~~~~~
Linus Torvalds1da177e2005-04-16 15:20:36 -0700258
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300259dvbstream and VideoLAN Client on windows works a treat with
260DVB, in fact this is currently serving as my main way of
261viewing DVB-T at the moment. Additionally, VLC is happily
262decoding HDTV signals, although the PC is dropping the odd
263frame here and there - I assume due to processing capability -
264as all the decoding is being done under windows in software.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700265
Mauro Carvalho Chehabd36860032016-07-17 12:13:21 -0300266Many thanks to Nigel Pearson for the updates to this document
267since the recent revision of the driver.