About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / dvb / avermedia.txt


Based on kernel version 4.7.2. Page generated on 2016-08-22 22:45 EST.

1	HOWTO: Get An Avermedia DVB-T working under Linux
2		   ______________________________________________
3	
4	   Table of Contents
5	   Assumptions and Introduction
6	   The Avermedia DVB-T
7	   Getting the card going
8	   Receiving DVB-T in Australia
9	   Known Limitations
10	   Further Update
11	
12	Assumptions and Introduction
13	
14	   It  is assumed that the reader understands the basic structure
15	   of  the Linux Kernel DVB drivers and the general principles of
16	   Digital TV.
17	
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.
23	
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:
34	
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 -
40	       NICAM.)
41	     * digitize  the analogue video signal and make the resulting
42	       datastream available to the data bus.
43	
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
53	   Digital TV.
54	
55	   The  purpose of a simple budget digital TV card (DVB-T,C or S)
56	   is to simply:
57	
58	     * Tune the received to receive a broadcast signal.
59	     * Extract  the encoded digital datastream from the broadcast
60	       signal.
61	     * Make  the  encoded digital datastream (MPEG2) available to
62	       the data bus.
63	
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	     _________________________________________________________
73	
74	The Avermedia DVB-T
75	
76	   The Avermedia DVB-T is a budget PCI DVB card. It has 3 inputs:
77	
78	     * RF Tuner Input
79	     * Composite Video Input (RCA Jack)
80	     * SVIDEO Input (Mini-DIN)
81	
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.
88	
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	     _________________________________________________________
95	
96	Getting the card going
97	
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.
102	
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
105	   in the /dev tree:
106	
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
115	
116	   The  primary  device  nodes that we are interested in (at this
117	   stage) for the Avermedia DVB-T are:
118	
119	     * /dev/dvb/adapter0/dvr0
120	     * /dev/dvb/adapter0/frontend0
121	
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.
124	
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
134	   find.
135	
136	   To  power  up  the  card,  load  the  following modules in the
137	   following order:
138	
139	     * modprobe bttv (normally loaded automatically)
140	     * modprobe dvb-bt8xx (or place dvb-bt8xx in /etc/modules)
141	
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,
145	   dvbstream etc.
146	
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).
151	
152	Receiving DVB-T in Australia
153	
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
157	   card.
158	
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
162	   Dandenong.
163	
164	   The frequencies broadcast by Mount Dandenong are:
165	
166	   Table 1. Transponder Frequencies Mount Dandenong, Vic, Aus.
167	   Broadcaster Channel Frequency
168	   ABC         VHF 12  226.5 MHz
169	   TEN         VHF 11  219.5 MHz
170	   NINE        VHF 8   191.625 MHz
171	   SEVEN       VHF 6   177.5 MHz
172	   SBS         UHF 29  536.5 MHz
173	
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
180	#
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
189	
190	   The   defaults   for   the  transponder  frequency  and  other
191	   modulation parameters were obtained from www.dba.org.au.
192	
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
196	   antenna).
197	
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
203	0:561
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
212	6
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
215	5
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
218	586
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
221	587
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
224	588
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
227	9
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
230	590
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
233	1
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
238	3
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
241	72
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
244	073
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
257	2
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:
260	1334
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	     _________________________________________________________
274	
275	Known Limitations
276	
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.
282	
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	     _________________________________________________________
288	
289	Further Update
290	
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.
297	
298	   Many  thanks to Nigel Pearson for the updates to this document
299	   since the recent revision of the driver.
300	
301	   February 14th 2006
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog