• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1HOWTO: Get An Avermedia DVB-T working under Linux
2-------------------------------------------------
3
4February 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
14
15Assumptions and Introduction
16~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17
18It  is assumed that the reader understands the basic structure
19of  the Linux Kernel DVB drivers and the general principles of
20Digital TV.
21
22One  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.
27
28The  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:
38
39* 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.
47
48The  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.
58
59The  purpose of a simple budget digital TV card (DVB-T,C or S)
60is to simply:
61
62* 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.
67
68The  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.
76
77The Avermedia DVB-T
78~~~~~~~~~~~~~~~~~~~
79
80The Avermedia DVB-T is a budget PCI DVB card. It has 3 inputs:
81
82* RF Tuner Input
83* Composite Video Input (RCA Jack)
84* SVIDEO Input (Mini-DIN)
85
86The  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.
92
93The  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
99
100Getting the card going
101~~~~~~~~~~~~~~~~~~~~~~
102
103In 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.
107
108Depending 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:
111
112* /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
120
121The  primary  device  nodes that we are interested in (at this
122stage) for the Avermedia DVB-T are:
123
124* /dev/dvb/adapter0/dvr0
125* /dev/dvb/adapter0/frontend0
126
127The dvr0 device node is used to read the MPEG2 Data Stream and
128the frontend0 node is used to tune the frontend tuner module.
129
130At  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.
140
141To  power  up  the  card,  load  the  following modules in the
142following order:
143
144* modprobe bttv (normally loaded automatically)
145* modprobe dvb-bt8xx (or place dvb-bt8xx in /etc/modules)
146
147Insertion  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.
151
152The 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).
156
157Receiving DVB-T in Australia
158~~~~~~~~~~~~~~~~~~~~~~~~~~~~
159
160I  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.
164
165The  Digital  Broadcasting  Australia  website has a Reception
166locatortool which provides information on transponder channels
167and  frequencies.  My  local  transmitter  happens to be Mount
168Dandenong.
169
170The frequencies broadcast by Mount Dandenong are:
171
172Table 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
179
180The 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:
185
186::
187
188	# 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
198
199The   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
241
242Known Limitations
243~~~~~~~~~~~~~~~~~
244
245At  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.
250
251There  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.
255
256Further Update
257~~~~~~~~~~~~~~
258
259dvbstream  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.
265
266Many  thanks to Nigel Pearson for the updates to this document
267since the recent revision of the driver.
268