diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /Documentation/dvb/avermedia.txt |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'Documentation/dvb/avermedia.txt')
-rw-r--r-- | Documentation/dvb/avermedia.txt | 304 |
1 files changed, 304 insertions, 0 deletions
diff --git a/Documentation/dvb/avermedia.txt b/Documentation/dvb/avermedia.txt new file mode 100644 index 000000000000..09020ebd202b --- /dev/null +++ b/Documentation/dvb/avermedia.txt | |||
@@ -0,0 +1,304 @@ | |||
1 | |||
2 | HOWTO: Get An Avermedia DVB-T working under Linux | ||
3 | ______________________________________________ | ||
4 | |||
5 | Table of Contents | ||
6 | Assumptions and Introduction | ||
7 | The Avermedia DVB-T | ||
8 | Getting the card going | ||
9 | Receiving DVB-T in Australia | ||
10 | Known Limitations | ||
11 | Further Update | ||
12 | |||
13 | Assumptions and Introduction | ||
14 | |||
15 | It is assumed that the reader understands the basic structure | ||
16 | of the Linux Kernel DVB drivers and the general principles of | ||
17 | Digital TV. | ||
18 | |||
19 | One significant difference between Digital TV and Analogue TV | ||
20 | that the unwary (like myself) should consider is that, | ||
21 | although the component structure of budget DVB-T cards are | ||
22 | substantially similar to Analogue TV cards, they function in | ||
23 | substantially different ways. | ||
24 | |||
25 | The purpose of an Analogue TV is to receive and display an | ||
26 | Analogue Television signal. An Analogue TV signal (otherwise | ||
27 | known as composite video) is an analogue encoding of a | ||
28 | sequence of image frames (25 per second) rasterised using an | ||
29 | interlacing technique. Interlacing takes two fields to | ||
30 | represent one frame. Computers today are at their best when | ||
31 | dealing with digital signals, not analogue signals and a | ||
32 | composite video signal is about as far removed from a digital | ||
33 | data stream as you can get. Therefore, an Analogue TV card for | ||
34 | a PC has the following purpose: | ||
35 | |||
36 | * Tune the receiver to receive a broadcast signal | ||
37 | * demodulate the broadcast signal | ||
38 | * demultiplex the analogue video signal and analogue audio | ||
39 | signal (note some countries employ a digital audio signal | ||
40 | embedded within the modulated composite analogue signal - | ||
41 | NICAM.) | ||
42 | * digitize the analogue video signal and make the resulting | ||
43 | datastream available to the data bus. | ||
44 | |||
45 | The digital datastream from an Analogue TV card is generated | ||
46 | by circuitry on the card and is often presented uncompressed. | ||
47 | For a PAL TV signal encoded at a resolution of 768x576 24-bit | ||
48 | color pixels over 25 frames per second - a fair amount of data | ||
49 | is generated and must be proceesed by the PC before it can be | ||
50 | displayed on the video monitor screen. Some Analogue TV cards | ||
51 | for PC's have onboard MPEG2 encoders which permit the raw | ||
52 | digital data stream to be presented to the PC in an encoded | ||
53 | and compressed form - similar to the form that is used in | ||
54 | Digital TV. | ||
55 | |||
56 | The purpose of a simple budget digital TV card (DVB-T,C or S) | ||
57 | is to simply: | ||
58 | |||
59 | * Tune the received to receive a broadcast signal. | ||
60 | * Extract the encoded digital datastream from the broadcast | ||
61 | signal. | ||
62 | * Make the encoded digital datastream (MPEG2) available to | ||
63 | the data bus. | ||
64 | |||
65 | The significant difference between the two is that the tuner | ||
66 | on the analogue TV card spits out an Analogue signal, whereas | ||
67 | the tuner on the digital TV card spits out a compressed | ||
68 | encoded digital datastream. As the signal is already | ||
69 | digitised, it is trivial to pass this datastream to the PC | ||
70 | databus with minimal additional processing and then extract | ||
71 | the digital video and audio datastreams passing them to the | ||
72 | appropriate software or hardware for decoding and viewing. | ||
73 | _________________________________________________________ | ||
74 | |||
75 | The Avermedia DVB-T | ||
76 | |||
77 | The Avermedia DVB-T is a budget PCI DVB card. It has 3 inputs: | ||
78 | |||
79 | * RF Tuner Input | ||
80 | * Composite Video Input (RCA Jack) | ||
81 | * SVIDEO Input (Mini-DIN) | ||
82 | |||
83 | The RF Tuner Input is the input to the tuner module of the | ||
84 | card. The Tuner is otherwise known as the "Frontend" . The | ||
85 | Frontend of the Avermedia DVB-T is a Microtune 7202D. A timely | ||
86 | post to the linux-dvb mailing list ascertained that the | ||
87 | Microtune 7202D is supported by the sp887x driver which is | ||
88 | found in the dvb-hw CVS module. | ||
89 | |||
90 | The DVB-T card is based around the BT878 chip which is a very | ||
91 | common multimedia bridge and often found on Analogue TV cards. | ||
92 | There is no on-board MPEG2 decoder, which means that all MPEG2 | ||
93 | decoding must be done in software, or if you have one, on an | ||
94 | MPEG2 hardware decoding card or chipset. | ||
95 | _________________________________________________________ | ||
96 | |||
97 | Getting the card going | ||
98 | |||
99 | In order to fire up the card, it is necessary to load a number | ||
100 | of modules from the DVB driver set. Prior to this it will have | ||
101 | been necessary to download these drivers from the linuxtv CVS | ||
102 | server and compile them successfully. | ||
103 | |||
104 | Depending on the card's feature set, the Device Driver API for | ||
105 | DVB under Linux will expose some of the following device files | ||
106 | in the /dev tree: | ||
107 | |||
108 | * /dev/dvb/adapter0/audio0 | ||
109 | * /dev/dvb/adapter0/ca0 | ||
110 | * /dev/dvb/adapter0/demux0 | ||
111 | * /dev/dvb/adapter0/dvr0 | ||
112 | * /dev/dvb/adapter0/frontend0 | ||
113 | * /dev/dvb/adapter0/net0 | ||
114 | * /dev/dvb/adapter0/osd0 | ||
115 | * /dev/dvb/adapter0/video0 | ||
116 | |||
117 | The primary device nodes that we are interested in (at this | ||
118 | stage) for the Avermedia DVB-T are: | ||
119 | |||
120 | * /dev/dvb/adapter0/dvr0 | ||
121 | * /dev/dvb/adapter0/frontend0 | ||
122 | |||
123 | The dvr0 device node is used to read the MPEG2 Data Stream and | ||
124 | the frontend0 node is used to tune the frontend tuner module. | ||
125 | |||
126 | At this stage, it has not been able to ascertain the | ||
127 | functionality of the remaining device nodes in respect of the | ||
128 | Avermedia DVBT. However, full functionality in respect of | ||
129 | tuning, receiving and supplying the MPEG2 data stream is | ||
130 | possible with the currently available versions of the driver. | ||
131 | It may be possible that additional functionality is available | ||
132 | from the card (i.e. viewing the additional analogue inputs | ||
133 | that the card presents), but this has not been tested yet. If | ||
134 | I get around to this, I'll update the document with whatever I | ||
135 | find. | ||
136 | |||
137 | To power up the card, load the following modules in the | ||
138 | following order: | ||
139 | |||
140 | * insmod dvb-core.o | ||
141 | * modprobe bttv.o | ||
142 | * insmod bt878.o | ||
143 | * insmod dvb-bt8xx.o | ||
144 | * insmod sp887x.o | ||
145 | |||
146 | Insertion of these modules into the running kernel will | ||
147 | activate the appropriate DVB device nodes. It is then possible | ||
148 | to start accessing the card with utilities such as scan, tzap, | ||
149 | dvbstream etc. | ||
150 | |||
151 | The frontend module sp887x.o, requires an external firmware. | ||
152 | Please use the command "get_dvb_firmware sp887x" to download | ||
153 | it. Then copy it to /usr/lib/hotplug/firmware. | ||
154 | |||
155 | Receiving DVB-T in Australia | ||
156 | |||
157 | I have no experience of DVB-T in other countries other than | ||
158 | Australia, so I will attempt to explain how it works here in | ||
159 | Melbourne and how this affects the configuration of the DVB-T | ||
160 | card. | ||
161 | |||
162 | The Digital Broadcasting Australia website has a Reception | ||
163 | locatortool which provides information on transponder channels | ||
164 | and frequencies. My local transmitter happens to be Mount | ||
165 | Dandenong. | ||
166 | |||
167 | The frequencies broadcast by Mount Dandenong are: | ||
168 | |||
169 | Table 1. Transponder Frequencies Mount Dandenong, Vic, Aus. | ||
170 | Broadcaster Channel Frequency | ||
171 | ABC VHF 12 226.5 MHz | ||
172 | TEN VHF 11 219.5 MHz | ||
173 | NINE VHF 8 191.625 MHz | ||
174 | SEVEN VHF 6 177.5 MHz | ||
175 | SBS UHF 29 536.5 MHz | ||
176 | |||
177 | The Scan utility has a set of compiled-in defaults for various | ||
178 | countries and regions, but if they do not suit, or if you have | ||
179 | a pre-compiled scan binary, you can specify a data file on the | ||
180 | command line which contains the transponder frequencies. Here | ||
181 | is a sample file for the above channel transponders: | ||
182 | # Data file for DVB scan program | ||
183 | # | ||
184 | # C Frequency SymbolRate FEC QAM | ||
185 | # S Frequency Polarisation SymbolRate FEC | ||
186 | # T Frequency Bandwidth FEC FEC2 QAM Mode Guard Hier | ||
187 | T 226500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE | ||
188 | T 191625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE | ||
189 | T 219500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE | ||
190 | T 177500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE | ||
191 | T 536500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE | ||
192 | |||
193 | The defaults for the transponder frequency and other | ||
194 | modulation parameters were obtained from www.dba.org.au. | ||
195 | |||
196 | When Scan runs, it will output channels.conf information for | ||
197 | any channel's transponders which the card's frontend can lock | ||
198 | onto. (i.e. any whose signal is strong enough at your | ||
199 | antenna). | ||
200 | |||
201 | Here's my channels.conf file for anyone who's interested: | ||
202 | ABC HDTV:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64 | ||
203 | :TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:2307:0:560 | ||
204 | ABC TV Melbourne:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_ | ||
205 | 4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:65 | ||
206 | 0:561 | ||
207 | ABC TV 2:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64 | ||
208 | :TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:562 | ||
209 | ABC TV 3:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64 | ||
210 | :TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:563 | ||
211 | ABC TV 4:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64 | ||
212 | :TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:564 | ||
213 | ABC DiG Radio:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:Q | ||
214 | AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:2311:56 | ||
215 | 6 | ||
216 | TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM | ||
217 | _64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:158 | ||
218 | 5 | ||
219 | TEN Digital 1: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 | 586 | ||
222 | TEN Digital 2: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 | 587 | ||
225 | TEN Digital 3:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:Q | ||
226 | AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1 | ||
227 | 588 | ||
228 | TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM | ||
229 | _64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:158 | ||
230 | 9 | ||
231 | TEN Digital 4:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:Q | ||
232 | AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1 | ||
233 | 590 | ||
234 | TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM | ||
235 | _64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:159 | ||
236 | 1 | ||
237 | TEN HD:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:T | ||
238 | RANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:514:0:1592 | ||
239 | TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM | ||
240 | _64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:159 | ||
241 | 3 | ||
242 | Nine Digital:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QA | ||
243 | M_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:513:660:10 | ||
244 | 72 | ||
245 | Nine Digital HD:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2 | ||
246 | :QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:0:1 | ||
247 | 073 | ||
248 | Nine Guide:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_ | ||
249 | 64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:514:670:1074 | ||
250 | 7 Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_6 | ||
251 | 4:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1328 | ||
252 | 7 Digital 1:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM | ||
253 | _64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1329 | ||
254 | 7 Digital 2:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM | ||
255 | _64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1330 | ||
256 | 7 Digital 3:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM | ||
257 | _64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1331 | ||
258 | 7 HD Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QA | ||
259 | M_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:833:834:133 | ||
260 | 2 | ||
261 | 7 Program Guide:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3 | ||
262 | :QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:865:866: | ||
263 | 1334 | ||
264 | SBS HD:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:T | ||
265 | RANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:102:103:784 | ||
266 | SBS DIGITAL 1:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:Q | ||
267 | AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:81:785 | ||
268 | SBS DIGITAL 2:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:Q | ||
269 | AM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:162:83:786 | ||
270 | SBS EPG:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64: | ||
271 | TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:163:85:787 | ||
272 | SBS RADIO 1:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM | ||
273 | _64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:201:798 | ||
274 | SBS RADIO 2:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM | ||
275 | _64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:202:799 | ||
276 | _________________________________________________________ | ||
277 | |||
278 | Known Limitations | ||
279 | |||
280 | At present I can say with confidence that the frontend tunes | ||
281 | via /dev/dvb/adapter{x}/frontend0 and supplies an MPEG2 stream | ||
282 | via /dev/dvb/adapter{x}/dvr0. I have not tested the | ||
283 | functionality of any other part of the card yet. I will do so | ||
284 | over time and update this document. | ||
285 | |||
286 | There are some limitations in the i2c layer due to a returned | ||
287 | error message inconsistency. Although this generates errors in | ||
288 | dmesg and the system logs, it does not appear to affect the | ||
289 | ability of the frontend to function correctly. | ||
290 | _________________________________________________________ | ||
291 | |||
292 | Further Update | ||
293 | |||
294 | dvbstream and VideoLAN Client on windows works a treat with | ||
295 | DVB, in fact this is currently serving as my main way of | ||
296 | viewing DVB-T at the moment. Additionally, VLC is happily | ||
297 | decoding HDTV signals, although the PC is dropping the odd | ||
298 | frame here and there - I assume due to processing capability - | ||
299 | as all the decoding is being done under windows in software. | ||
300 | |||
301 | Many thanks to Nigel Pearson for the updates to this document | ||
302 | since the recent revision of the driver. | ||
303 | |||
304 | January 29th 2004 | ||