Merge tag 'backlight-next-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / Documentation / media / dvb-drivers / avermedia.rst
1 .. SPDX-License-Identifier: GPL-2.0
2
3 HOWTO: Get An Avermedia DVB-T working under Linux
4 -------------------------------------------------
5
6 February 14th 2006
7
8 .. note::
9
10    This documentation is outdated. Please check at the DVB wiki
11    at https://linuxtv.org/wiki for more updated info.
12
13    There's a section there specific for Avermedia boards at:
14    https://linuxtv.org/wiki/index.php/AVerMedia
15
16
17 Assumptions and Introduction
18 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
19
20 It  is assumed that the reader understands the basic structure
21 of  the Linux Kernel DVB drivers and the general principles of
22 Digital TV.
23
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.
29
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:
40
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 -
46   NICAM.)
47 * digitize  the analogue video signal and make the resulting
48   datastream available to the data bus.
49
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
59 Digital TV.
60
61 The  purpose of a simple budget digital TV card (DVB-T,C or S)
62 is to simply:
63
64 * Tune the received to receive a broadcast signal.
65 * Extract  the encoded digital datastream from the broadcast
66   signal.
67 * Make  the  encoded digital datastream (MPEG2) available to
68   the data bus.
69
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.
78
79 The Avermedia DVB-T
80 ~~~~~~~~~~~~~~~~~~~
81
82 The Avermedia DVB-T is a budget PCI DVB card. It has 3 inputs:
83
84 * RF Tuner Input
85 * Composite Video Input (RCA Jack)
86 * SVIDEO Input (Mini-DIN)
87
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.
94
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.
100
101
102 Getting the card going
103 ~~~~~~~~~~~~~~~~~~~~~~
104
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.
109
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
112 in the /dev tree:
113
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
122
123 The  primary  device  nodes that we are interested in (at this
124 stage) for the Avermedia DVB-T are:
125
126 * /dev/dvb/adapter0/dvr0
127 * /dev/dvb/adapter0/frontend0
128
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.
131
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
141 find.
142
143 To  power  up  the  card,  load  the  following modules in the
144 following order:
145
146 * modprobe bttv (normally loaded automatically)
147 * modprobe dvb-bt8xx (or place dvb-bt8xx in /etc/modules)
148
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,
152 dvbstream etc.
153
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).
158
159 Receiving DVB-T in Australia
160 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
161
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
165 card.
166
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
170 Dandenong.
171
172 The frequencies broadcast by Mount Dandenong are:
173
174 Table 1. Transponder Frequencies Mount Dandenong, Vic, Aus.
175 Broadcaster Channel Frequency
176 ABC         VHF 12  226.5 MHz
177 TEN         VHF 11  219.5 MHz
178 NINE        VHF 8   191.625 MHz
179 SEVEN       VHF 6   177.5 MHz
180 SBS         UHF 29  536.5 MHz
181
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:
187
188 ::
189
190         # Data file for DVB scan program
191         #
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
200
201 The   defaults   for   the  transponder  frequency  and  other
202 modulation parameters were obtained from www.dba.org.au.
203
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
207 antenna).
208
209 Here's my channels.conf file for anyone who's interested:
210
211 ::
212
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
243
244 Known Limitations
245 ~~~~~~~~~~~~~~~~~
246
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.
252
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.
257
258 Further Update
259 ~~~~~~~~~~~~~~
260
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.
267
268 Many  thanks to Nigel Pearson for the updates to this document
269 since the recent revision of the driver.