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 |
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')
-rw-r--r-- | Documentation/dvb/README.dibusb | 285 | ||||
-rw-r--r-- | Documentation/dvb/avermedia.txt | 304 | ||||
-rw-r--r-- | Documentation/dvb/bt8xx.txt | 90 | ||||
-rw-r--r-- | Documentation/dvb/cards.txt | 85 | ||||
-rw-r--r-- | Documentation/dvb/contributors.txt | 79 | ||||
-rw-r--r-- | Documentation/dvb/faq.txt | 160 | ||||
-rw-r--r-- | Documentation/dvb/get_dvb_firmware | 397 | ||||
-rw-r--r-- | Documentation/dvb/readme.txt | 52 | ||||
-rw-r--r-- | Documentation/dvb/ttusb-dec.txt | 44 | ||||
-rw-r--r-- | Documentation/dvb/udev.txt | 46 |
10 files changed, 1542 insertions, 0 deletions
diff --git a/Documentation/dvb/README.dibusb b/Documentation/dvb/README.dibusb new file mode 100644 index 000000000000..7a9e958513f3 --- /dev/null +++ b/Documentation/dvb/README.dibusb | |||
@@ -0,0 +1,285 @@ | |||
1 | Documentation for dib3000* frontend drivers and dibusb device driver | ||
2 | ==================================================================== | ||
3 | |||
4 | Copyright (C) 2004-5 Patrick Boettcher (patrick.boettcher@desy.de), | ||
5 | |||
6 | dibusb and dib3000mb/mc drivers based on GPL code, which has | ||
7 | |||
8 | Copyright (C) 2004 Amaury Demol for DiBcom (ademol@dibcom.fr) | ||
9 | |||
10 | This program is free software; you can redistribute it and/or | ||
11 | modify it under the terms of the GNU General Public License as | ||
12 | published by the Free Software Foundation, version 2. | ||
13 | |||
14 | |||
15 | Supported devices USB1.1 | ||
16 | ======================== | ||
17 | |||
18 | Produced and reselled by Twinhan: | ||
19 | --------------------------------- | ||
20 | - TwinhanDTV USB-Ter DVB-T Device (VP7041) | ||
21 | http://www.twinhan.com/product_terrestrial_3.asp | ||
22 | |||
23 | - TwinhanDTV Magic Box (VP7041e) | ||
24 | http://www.twinhan.com/product_terrestrial_4.asp | ||
25 | |||
26 | - HAMA DVB-T USB device | ||
27 | http://www.hama.de/portal/articleId*110620/action*2598 | ||
28 | |||
29 | - CTS Portable (Chinese Television System) (2) | ||
30 | http://www.2cts.tv/ctsportable/ | ||
31 | |||
32 | - Unknown USB DVB-T device with vendor ID Hyper-Paltek | ||
33 | |||
34 | |||
35 | Produced and reselled by KWorld: | ||
36 | -------------------------------- | ||
37 | - KWorld V-Stream XPERT DTV DVB-T USB | ||
38 | http://www.kworld.com.tw/en/product/DVBT-USB/DVBT-USB.html | ||
39 | |||
40 | - JetWay DTV DVB-T USB | ||
41 | http://www.jetway.com.tw/evisn/product/lcd-tv/DVT-USB/dtv-usb.htm | ||
42 | |||
43 | - ADSTech Instant TV DVB-T USB | ||
44 | http://www.adstech.com/products/PTV-333/intro/PTV-333_intro.asp?pid=PTV-333 | ||
45 | |||
46 | |||
47 | Others: | ||
48 | ------- | ||
49 | - Ultima Electronic/Artec T1 USB TVBOX (AN2135, AN2235, AN2235 with Panasonic Tuner) | ||
50 | http://82.161.246.249/products-tvbox.html | ||
51 | |||
52 | - Compro Videomate DVB-U2000 - DVB-T USB (2) | ||
53 | http://www.comprousa.com/products/vmu2000.htm | ||
54 | |||
55 | - Grandtec USB DVB-T | ||
56 | http://www.grand.com.tw/ | ||
57 | |||
58 | - Avermedia AverTV DVBT USB (2) | ||
59 | http://www.avermedia.com/ | ||
60 | |||
61 | - DiBcom USB DVB-T reference device (non-public) | ||
62 | |||
63 | |||
64 | Supported devices USB2.0 | ||
65 | ======================== | ||
66 | - Twinhan MagicBox II (2) | ||
67 | http://www.twinhan.com/product_terrestrial_7.asp | ||
68 | |||
69 | - Hanftek UMT-010 (1) | ||
70 | http://www.globalsources.com/si/6008819757082/ProductDetail/Digital-TV/product_id-100046529 | ||
71 | |||
72 | - Typhoon/Yakumo/HAMA DVB-T mobile USB2.0 (1) | ||
73 | http://www.yakumo.de/produkte/index.php?pid=1&ag=DVB-T | ||
74 | |||
75 | - Artec T1 USB TVBOX (FX2) (2) | ||
76 | |||
77 | - Hauppauge WinTV NOVA-T USB2 | ||
78 | http://www.hauppauge.com/ | ||
79 | |||
80 | - KWorld/ADSTech Instant DVB-T USB2.0 (DiB3000M-B) | ||
81 | |||
82 | - DiBcom USB2.0 DVB-T reference device (non-public) | ||
83 | |||
84 | 1) It is working almost. | ||
85 | 2) No test reports received yet. | ||
86 | |||
87 | |||
88 | 0. NEWS: | ||
89 | 2005-02-11 - added support for the KWorld/ADSTech Instant DVB-T USB2.0. Thanks a lot to Joachim von Caron | ||
90 | 2005-02-02 - added support for the Hauppauge Win-TV Nova-T USB2 | ||
91 | 2005-01-31 - distorted streaming is finally gone for USB1.1 devices | ||
92 | 2005-01-13 - moved the mirrored pid_filter_table back to dvb-dibusb | ||
93 | - first almost working version for HanfTek UMT-010 | ||
94 | - found out, that Yakumo/HAMA/Typhoon are predessors of the HanfTek UMT-010 | ||
95 | 2005-01-10 - refactoring completed, now everything is very delightful | ||
96 | - tuner quirks for some weird devices (Artec T1 AN2235 device has sometimes a | ||
97 | Panasonic Tuner assembled). Tunerprobing implemented. Thanks a lot to Gunnar Wittich. | ||
98 | 2004-12-29 - after several days of struggling around bug of no returning URBs fixed. | ||
99 | 2004-12-26 - refactored the dibusb-driver, splitted into separate files | ||
100 | - i2c-probing enabled | ||
101 | 2004-12-06 - possibility for demod i2c-address probing | ||
102 | - new usb IDs (Compro,Artec) | ||
103 | 2004-11-23 - merged changes from DiB3000MC_ver2.1 | ||
104 | - revised the debugging | ||
105 | - possibility to deliver the complete TS for USB2.0 | ||
106 | 2004-11-21 - first working version of the dib3000mc/p frontend driver. | ||
107 | 2004-11-12 - added additional remote control keys. Thanks to Uwe Hanke. | ||
108 | 2004-11-07 - added remote control support. Thanks to David Matthews. | ||
109 | 2004-11-05 - added support for a new devices (Grandtec/Avermedia/Artec) | ||
110 | - merged my changes (for dib3000mb/dibusb) to the FE_REFACTORING, because it became HEAD | ||
111 | - moved transfer control (pid filter, fifo control) from usb driver to frontend, it seems | ||
112 | better settled there (added xfer_ops-struct) | ||
113 | - created a common files for frontends (mc/p/mb) | ||
114 | 2004-09-28 - added support for a new device (Unkown, vendor ID is Hyper-Paltek) | ||
115 | 2004-09-20 - added support for a new device (Compro DVB-U2000), thanks | ||
116 | to Amaury Demol for reporting | ||
117 | - changed usb TS transfer method (several urbs, stopping transfer | ||
118 | before setting a new pid) | ||
119 | 2004-09-13 - added support for a new device (Artec T1 USB TVBOX), thanks | ||
120 | to Christian Motschke for reporting | ||
121 | 2004-09-05 - released the dibusb device and dib3000mb-frontend driver | ||
122 | |||
123 | (old news for vp7041.c) | ||
124 | 2004-07-15 - found out, by accident, that the device has a TUA6010XS for | ||
125 | PLL | ||
126 | 2004-07-12 - figured out, that the driver should also work with the | ||
127 | CTS Portable (Chinese Television System) | ||
128 | 2004-07-08 - firmware-extraction-2.422-problem solved, driver is now working | ||
129 | properly with firmware extracted from 2.422 | ||
130 | - #if for 2.6.4 (dvb), compile issue | ||
131 | - changed firmware handling, see vp7041.txt sec 1.1 | ||
132 | 2004-07-02 - some tuner modifications, v0.1, cleanups, first public | ||
133 | 2004-06-28 - now using the dvb_dmx_swfilter_packets, everything | ||
134 | runs fine now | ||
135 | 2004-06-27 - able to watch and switching channels (pre-alpha) | ||
136 | - no section filtering yet | ||
137 | 2004-06-06 - first TS received, but kernel oops :/ | ||
138 | 2004-05-14 - firmware loader is working | ||
139 | 2004-05-11 - start writing the driver | ||
140 | |||
141 | 1. How to use? | ||
142 | NOTE: This driver was developed using Linux 2.6.6., | ||
143 | it is working with 2.6.7 and above. | ||
144 | |||
145 | Linux 2.4.x support is not planned, but patches are very welcome. | ||
146 | |||
147 | NOTE: I'm using Debian testing, so the following explaination (especially | ||
148 | the hotplug-path) needn't match your system, but probably it will :). | ||
149 | |||
150 | The driver is included in the kernel since Linux 2.6.10. | ||
151 | |||
152 | 1.1. Firmware | ||
153 | |||
154 | The USB driver needs to download a firmware to start working. | ||
155 | |||
156 | You can either use "get_dvb_firmware dibusb" to download the firmware or you | ||
157 | can get it directly via | ||
158 | |||
159 | for USB1.1 (AN2135) | ||
160 | http://www.linuxtv.org/downloads/firmware/dvb-dibusb-5.0.0.11.fw | ||
161 | |||
162 | for USB1.1 (AN2235) (a few Artec T1 devices) | ||
163 | http://www.linuxtv.org/downloads/firmware/dvb-dibusb-an2235-1.fw | ||
164 | |||
165 | for USB2.0 (FX2) Hauppauge, DiBcom | ||
166 | http://www.linuxtv.org/downloads/firmware/dvb-dibusb-6.0.0.5.fw | ||
167 | |||
168 | for USB2.0 ADSTech/Kworld USB2.0 | ||
169 | http://www.linuxtv.org/downloads/firmware/dvb-dibusb-adstech-usb2-1.fw | ||
170 | |||
171 | for USB2.0 HanfTek | ||
172 | http://www.linuxtv.org/downloads/firmware/dvb-dibusb-an2235-1.fw | ||
173 | |||
174 | |||
175 | 1.2. Compiling | ||
176 | |||
177 | Since the driver is in the linux kernel, activating the driver in | ||
178 | your favorite config-environment should sufficient. I recommend | ||
179 | to compile the driver as module. Hotplug does the rest. | ||
180 | |||
181 | 1.3. Loading the drivers | ||
182 | |||
183 | Hotplug is able to load the driver, when it is needed (because you plugged | ||
184 | in the device). | ||
185 | |||
186 | If you want to enable debug output, you have to load the driver manually and | ||
187 | from withing the dvb-kernel cvs repository. | ||
188 | |||
189 | first have a look, which debug level are available: | ||
190 | |||
191 | modinfo dib3000mb | ||
192 | modinfo dib3000-common | ||
193 | modinfo dib3000mc | ||
194 | modinfo dvb-dibusb | ||
195 | |||
196 | modprobe dib3000-common debug=<level> | ||
197 | modprobe dib3000mb debug=<level> | ||
198 | modprobe dib3000mc debug=<level> | ||
199 | modprobe dvb-dibusb debug=<level> | ||
200 | |||
201 | should do the trick. | ||
202 | |||
203 | When the driver is loaded successfully, the firmware file was in | ||
204 | the right place and the device is connected, the "Power"-LED should be | ||
205 | turned on. | ||
206 | |||
207 | At this point you should be able to start a dvb-capable application. For myself | ||
208 | I used mplayer, dvbscan, tzap and kaxtv, they are working. Using the device | ||
209 | in vdr is working now also. | ||
210 | |||
211 | 2. Known problems and bugs | ||
212 | |||
213 | - Don't remove the USB device while running an DVB application, your system will die. | ||
214 | |||
215 | 2.1. Adding support for devices | ||
216 | |||
217 | It is not possible to determine the range of devices based on the DiBcom | ||
218 | reference designs. This is because the reference design of DiBcom can be sold | ||
219 | to thirds, without telling DiBcom (so done with the Twinhan VP7041 and | ||
220 | the HAMA device). | ||
221 | |||
222 | When you think you have a device like this and the driver does not recognizes it, | ||
223 | please send the ****load*.inf and the ****cap*.inf of the Windows driver to me. | ||
224 | |||
225 | Sometimes the Vendor or Product ID is identical to the ones of Twinhan, even | ||
226 | though it is not a Twinhan device (e.g. HAMA), then please send me the name | ||
227 | of the device. I will add it to this list in order to make this clear to | ||
228 | others. | ||
229 | |||
230 | If you are familar with C you can also add the VID and PID of the device to | ||
231 | the dvb-dibusb-core.c-file and create a patch and send it over to me or to | ||
232 | the linux-dvb mailing list, _after_ you have tried compiling and modprobing | ||
233 | it. | ||
234 | |||
235 | 2.2. USB1.1 Bandwidth limitation | ||
236 | |||
237 | Most of the currently supported devices are USB1.1 and thus they have a | ||
238 | maximum bandwidth of about 5-6 MBit/s when connected to a USB2.0 hub. | ||
239 | This is not enough for receiving the complete transport stream of a | ||
240 | DVB-T channel (which can be about 16 MBit/s). Normally this is not a | ||
241 | problem, if you only want to watch TV (this does not apply for HDTV), | ||
242 | but watching a channel while recording another channel on the same | ||
243 | frequency simply does not work very well. This applies to all USB1.1 | ||
244 | DVB-T devices, not just dibusb) | ||
245 | |||
246 | Update: For the USB1.1 and VDR some work has been done (patches and comments | ||
247 | are still very welcome). Maybe the problem is solved in the meantime because I | ||
248 | now use the dmx_sw_filter function instead of dmx_sw_filter_packet. I hope the | ||
249 | linux-dvb software filter is able to get the best of the garbled TS. | ||
250 | |||
251 | The bug, where the TS is distorted by a heavy usage of the device is gone | ||
252 | definitely. All dibusb-devices I was using (Twinhan, Kworld, DiBcom) are | ||
253 | working like charm now with VDR. Sometimes I even was able to record a channel | ||
254 | and watch another one. | ||
255 | |||
256 | 2.3. Comments | ||
257 | |||
258 | Patches, comments and suggestions are very very welcome. | ||
259 | |||
260 | 3. Acknowledgements | ||
261 | Amaury Demol (ademol@dibcom.fr) and Francois Kanounnikoff from DiBcom for | ||
262 | providing specs, code and help, on which the dvb-dibusb, dib3000mb and | ||
263 | dib3000mc are based. | ||
264 | |||
265 | David Matthews for identifying a new device type (Artec T1 with AN2235) | ||
266 | and for extending dibusb with remote control event handling. Thank you. | ||
267 | |||
268 | Alex Woods for frequently answering question about usb and dvb | ||
269 | stuff, a big thank you. | ||
270 | |||
271 | Bernd Wagner for helping with huge bug reports and discussions. | ||
272 | |||
273 | Gunnar Wittich and Joachim von Caron for their trust for giving me | ||
274 | root-shells on their machines to implement support for new devices. | ||
275 | |||
276 | Some guys on the linux-dvb mailing list for encouraging me | ||
277 | |||
278 | Peter Schildmann >peter.schildmann-nospam-at-web.de< for his | ||
279 | user-level firmware loader, which saves a lot of time | ||
280 | (when writing the vp7041 driver) | ||
281 | |||
282 | Ulf Hermenau for helping me out with traditional chinese. | ||
283 | |||
284 | André Smoktun and Christian Frömmel for supporting me with | ||
285 | hardware and listening to my problems very patient | ||
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 | ||
diff --git a/Documentation/dvb/bt8xx.txt b/Documentation/dvb/bt8xx.txt new file mode 100644 index 000000000000..e3cacf4f2345 --- /dev/null +++ b/Documentation/dvb/bt8xx.txt | |||
@@ -0,0 +1,90 @@ | |||
1 | How to get the Nebula, PCTV and Twinhan DST cards working | ||
2 | ========================================================= | ||
3 | |||
4 | This class of cards has a bt878a as the PCI interface, and | ||
5 | require the bttv driver. | ||
6 | |||
7 | Please pay close attention to the warning about the bttv module | ||
8 | options below for the DST card. | ||
9 | |||
10 | 1) General informations | ||
11 | ======================= | ||
12 | |||
13 | These drivers require the bttv driver to provide the means to access | ||
14 | the i2c bus and the gpio pins of the bt8xx chipset. | ||
15 | |||
16 | Because of this, you need to enable | ||
17 | "Device drivers" => "Multimedia devices" | ||
18 | => "Video For Linux" => "BT848 Video For Linux" | ||
19 | |||
20 | 2) Loading Modules | ||
21 | ================== | ||
22 | |||
23 | In general you need to load the bttv driver, which will handle the gpio and | ||
24 | i2c communication for us. Next you need the common dvb-bt8xx device driver | ||
25 | and one frontend driver. | ||
26 | |||
27 | The bttv driver will HANG YOUR SYSTEM IF YOU DO NOT SPECIFY THE CORRECT | ||
28 | CARD ID! | ||
29 | |||
30 | (If you don't get your card running and you suspect that the card id you're | ||
31 | using is wrong, have a look at "bttv-cards.c" for a list of possible card | ||
32 | ids.) | ||
33 | |||
34 | Pay attention to failures when you load the frontend drivers | ||
35 | (e.g. dmesg, /var/log/messages). | ||
36 | |||
37 | 3a) Nebula / Pinnacle PCTV | ||
38 | -------------------------- | ||
39 | |||
40 | $ modprobe bttv i2c_hw=1 card=0x68 | ||
41 | $ modprobe dvb-bt8xx | ||
42 | |||
43 | For Nebula cards use the "nxt6000" frontend driver: | ||
44 | $ modprobe nxt6000 | ||
45 | |||
46 | For Pinnacle PCTV cards use the "cx24110" frontend driver: | ||
47 | $ modprobe cx24110 | ||
48 | |||
49 | 3b) TwinHan | ||
50 | ----------- | ||
51 | |||
52 | $ modprobe bttv i2c_hw=1 card=0x71 | ||
53 | $ modprobe dvb-bt8xx | ||
54 | $ modprobe dst | ||
55 | |||
56 | The value 0x71 will override the PCI type detection for dvb-bt8xx, which | ||
57 | is necessary for TwinHan cards.# | ||
58 | |||
59 | If you're having an older card (blue color circuit) and card=0x71 locks your | ||
60 | machine, try using 0x68, too. If that does not work, ask on the DVB mailing list. | ||
61 | |||
62 | The DST module takes a couple of useful parameters, in case the | ||
63 | dst drivers fails to detect your type of card correctly. | ||
64 | |||
65 | dst_type takes values 0 (satellite), 1 (terrestial TV), 2 (cable). | ||
66 | |||
67 | dst_type_flags takes bit combined values: | ||
68 | 1 = new tuner type packets. You can use this if your card is detected | ||
69 | and you have debug and you continually see the tuner packets not | ||
70 | working (make sure not a basic problem like dish alignment etc.) | ||
71 | |||
72 | 2 = TS 204. If your card tunes OK, but the picture is terrible, seemingly | ||
73 | breaking up in one half continually, and crc fails a lot, then | ||
74 | this is worth a try (or trying to turn off) | ||
75 | |||
76 | 4 = has symdiv. Some cards, mostly without new tuner packets, require | ||
77 | a symbol division algorithm. Doesn't apply to terrestial TV. | ||
78 | |||
79 | You can also specify a value to have the autodetected values turned off | ||
80 | (e.g. 0). The autodected values are determined bythe cards 'response | ||
81 | string' which you can see in your logs e.g. | ||
82 | |||
83 | dst_check_ci: recognize DST-MOT | ||
84 | |||
85 | or | ||
86 | |||
87 | dst_check_ci: unable to recognize DSTXCI or STXCI | ||
88 | |||
89 | -- | ||
90 | Authors: Richard Walker, Jamie Honan, Michael Hunold | ||
diff --git a/Documentation/dvb/cards.txt b/Documentation/dvb/cards.txt new file mode 100644 index 000000000000..efdc4ee9d40c --- /dev/null +++ b/Documentation/dvb/cards.txt | |||
@@ -0,0 +1,85 @@ | |||
1 | Hardware supported by the linuxtv.org DVB drivers | ||
2 | ================================================= | ||
3 | |||
4 | Generally, the DVB hardware manufacturers frequently change the | ||
5 | frontends (i.e. tuner / demodulator units) used, usually without | ||
6 | changing the product name, revision number or specs. Some cards | ||
7 | are also available in versions with different frontends for | ||
8 | DVB-S/DVB-C/DVB-T. Thus the frontend drivers are listed seperately. | ||
9 | |||
10 | Note 1: There is no guarantee that every frontend driver works | ||
11 | out of the box with every card, because of different wiring. | ||
12 | |||
13 | Note 2: The demodulator chips can be used with a variety of | ||
14 | tuner/PLL chips, and not all combinations are supported. Often | ||
15 | the demodulator and tuner/PLL chip are inside a metal box for | ||
16 | shielding, and the whole metal box has its own part number. | ||
17 | |||
18 | |||
19 | o Frontends drivers: | ||
20 | - dvb_dummy_fe: for testing... | ||
21 | DVB-S: | ||
22 | - ves1x93 : Alps BSRV2 (ves1893 demodulator) and dbox2 (ves1993) | ||
23 | - cx24110 : Conexant HM1221/HM1811 (cx24110 or cx24106 demod, cx24108 PLL) | ||
24 | - grundig_29504-491 : Grundig 29504-491 (Philips TDA8083 demodulator), tsa5522 PLL | ||
25 | - mt312 : Zarlink mt312 or Mitel vp310 demodulator, sl1935 or tsa5059 PLL | ||
26 | - stv0299 : Alps BSRU6 (tsa5059 PLL), LG TDQB-S00x (tsa5059 PLL), | ||
27 | LG TDQF-S001F (sl1935 PLL), Philips SU1278 (tua6100 PLL), | ||
28 | Philips SU1278SH (tsa5059 PLL), Samsung TBMU24112IMB | ||
29 | DVB-C: | ||
30 | - ves1820 : various (ves1820 demodulator, sp5659c or spXXXX PLL) | ||
31 | - at76c651 : Atmel AT76c651(B) with DAT7021 PLL | ||
32 | DVB-T: | ||
33 | - alps_tdlb7 : Alps TDLB7 (sp8870 demodulator, sp5659 PLL) | ||
34 | - alps_tdmb7 : Alps TDMB7 (cx22700 demodulator) | ||
35 | - grundig_29504-401 : Grundig 29504-401 (LSI L64781 demodulator), tsa5060 PLL | ||
36 | - tda1004x : Philips tda10045h (td1344 or tdm1316l PLL) | ||
37 | - nxt6000 : Alps TDME7 (MITEL SP5659 PLL), Alps TDED4 (TI ALP510 PLL), | ||
38 | Comtech DVBT-6k07 (SP5730 PLL) | ||
39 | (NxtWave Communications NXT6000 demodulator) | ||
40 | - sp887x : Microtune 7202D | ||
41 | - dib3000mb : DiBcom 3000-MB demodulator | ||
42 | DVB-S/C/T: | ||
43 | - dst : TwinHan DST Frontend | ||
44 | |||
45 | |||
46 | o Cards based on the Phillips saa7146 multimedia PCI bridge chip: | ||
47 | - TI AV7110 based cards (i.e. with hardware MPEG decoder): | ||
48 | - Siemens/Technotrend/Hauppauge PCI DVB card revision 1.1, 1.3, 1.5, 1.6, 2.1 | ||
49 | (aka Hauppauge Nexus) | ||
50 | - "budget" cards (i.e. without hardware MPEG decoder): | ||
51 | - Technotrend Budget / Hauppauge WinTV-Nova PCI Cards | ||
52 | - SATELCO Multimedia PCI | ||
53 | - KNC1 DVB-S, Typhoon DVB-S, Terratec Cinergy 1200 DVB-S (no CI support) | ||
54 | - Typhoon DVB-S budget | ||
55 | - Fujitsu-Siemens Activy DVB-S budget card | ||
56 | |||
57 | o Cards based on the B2C2 Inc. FlexCopII/IIb/III: | ||
58 | - Technisat SkyStar2 PCI DVB card revision 2.3, 2.6B, 2.6C | ||
59 | |||
60 | o Cards based on the Conexant Bt8xx PCI bridge: | ||
61 | - Pinnacle PCTV Sat DVB | ||
62 | - Nebula Electronics DigiTV | ||
63 | - TwinHan DST | ||
64 | - Avermedia DVB-T | ||
65 | |||
66 | o Technotrend / Hauppauge DVB USB devices: | ||
67 | - Nova USB | ||
68 | - DEC 2000-T, 3000-S, 2540-T | ||
69 | |||
70 | o DiBcom DVB-T USB based devices: | ||
71 | - Twinhan VisionPlus VisionDTV USB-Ter DVB-T Device | ||
72 | - HAMA DVB-T USB device | ||
73 | - CTS Portable (Chinese Television System) | ||
74 | - KWorld V-Stream XPERT DTV DVB-T USB | ||
75 | - JetWay DTV DVB-T USB | ||
76 | - ADSTech Instant TV DVB-T USB | ||
77 | - Ultima Electronic/Artec T1 USB TVBOX (AN2135 and AN2235) | ||
78 | - Compro Videomate DVB-U2000 - DVB-T USB | ||
79 | - Grandtec USB DVB-T | ||
80 | - Avermedia AverTV DVBT USB | ||
81 | - DiBcom USB DVB-T reference device (non-public) | ||
82 | - Yakumo DVB-T mobile USB2.0 | ||
83 | - DiBcom USB2.0 DVB-T reference device (non-public) | ||
84 | |||
85 | o Experimental support for the analog module of the Siemens DVB-C PCI card | ||
diff --git a/Documentation/dvb/contributors.txt b/Documentation/dvb/contributors.txt new file mode 100644 index 000000000000..c9d5ce370701 --- /dev/null +++ b/Documentation/dvb/contributors.txt | |||
@@ -0,0 +1,79 @@ | |||
1 | Thanks go to the following people for patches and contributions: | ||
2 | |||
3 | Michael Hunold <m.hunold@gmx.de> | ||
4 | for the initial saa7146 driver and it's recent overhaul | ||
5 | |||
6 | Christian Theiss | ||
7 | for his work on the initial Linux DVB driver | ||
8 | |||
9 | Marcus Metzler <mocm@metzlerbros.de> | ||
10 | Ralph Metzler <rjkm@metzlerbros.de> | ||
11 | for their continuing work on the DVB driver | ||
12 | |||
13 | Michael Holzt <kju@debian.org> | ||
14 | for his contributions to the dvb-net driver | ||
15 | |||
16 | Diego Picciani <d.picciani@novacomp.it> | ||
17 | for CyberLogin for Linux which allows logging onto EON | ||
18 | (in case you are wondering where CyberLogin is, EON changed its login | ||
19 | procedure and CyberLogin is no longer used.) | ||
20 | |||
21 | Martin Schaller <martin@smurf.franken.de> | ||
22 | for patching the cable card decoder driver | ||
23 | |||
24 | Klaus Schmidinger <Klaus.Schmidinger@cadsoft.de> | ||
25 | for various fixes regarding tuning, OSD and CI stuff and his work on VDR | ||
26 | |||
27 | Steve Brown <sbrown@cortland.com> | ||
28 | for his AFC kernel thread | ||
29 | |||
30 | Christoph Martin <martin@uni-mainz.de> | ||
31 | for his LIRC infrared handler | ||
32 | |||
33 | Andreas Oberritter <obi@linuxtv.org> | ||
34 | Dennis Noermann <dennis.noermann@noernet.de> | ||
35 | Felix Domke <tmbinc@elitedvb.net> | ||
36 | Florian Schirmer <jolt@tuxbox.org> | ||
37 | Ronny Strutz <3des@elitedvb.de> | ||
38 | Wolfram Joost <dbox2@frokaschwei.de> | ||
39 | ...and all the other dbox2 people | ||
40 | for many bugfixes in the generic DVB Core, frontend drivers and | ||
41 | their work on the dbox2 port of the DVB driver | ||
42 | |||
43 | Oliver Endriss <o.endriss@gmx.de> | ||
44 | for many bugfixes | ||
45 | |||
46 | Andrew de Quincey <adq_dvb@lidskialf.net> | ||
47 | for the tda1004x frontend driver, and various bugfixes | ||
48 | |||
49 | Peter Schildmann <peter.schildmann@web.de> | ||
50 | for the driver for the Technisat SkyStar2 PCI DVB card | ||
51 | |||
52 | Vadim Catana <skystar@moldova.cc> | ||
53 | Roberto Ragusa <r.ragusa@libero.it> | ||
54 | Augusto Cardoso <augusto@carhil.net> | ||
55 | for all the work for the FlexCopII chipset by B2C2,Inc. | ||
56 | |||
57 | Davor Emard <emard@softhome.net> | ||
58 | for his work on the budget drivers, the demux code, | ||
59 | the module unloading problems, ... | ||
60 | |||
61 | Hans-Frieder Vogt <hfvogt@arcor.de> | ||
62 | for his work on calculating and checking the crc's for the | ||
63 | TechnoTrend/Hauppauge DEC driver firmware | ||
64 | |||
65 | Michael Dreher <michael@5dot1.de> | ||
66 | Andreas 'randy' Weinberger | ||
67 | for the support of the Fujitsu-Siemens Activy budget DVB-S | ||
68 | |||
69 | Kenneth Aafløy <ke-aa@frisurf.no> | ||
70 | for adding support for Typhoon DVB-S budget card | ||
71 | |||
72 | Ernst Peinlich <e.peinlich@inode.at> | ||
73 | for tuning/DiSEqC support for the DEC 3000-s | ||
74 | |||
75 | Peter Beutner <p.beutner@gmx.net> | ||
76 | for the IR code for the ttusb-dec driver | ||
77 | |||
78 | (If you think you should be in this list, but you are not, drop a | ||
79 | line to the DVB mailing list) | ||
diff --git a/Documentation/dvb/faq.txt b/Documentation/dvb/faq.txt new file mode 100644 index 000000000000..3bf51e45c972 --- /dev/null +++ b/Documentation/dvb/faq.txt | |||
@@ -0,0 +1,160 @@ | |||
1 | Some very frequently asked questions about linuxtv-dvb | ||
2 | |||
3 | 1. The signal seems to die a few seconds after tuning. | ||
4 | |||
5 | It's not a bug, it's a feature. Because the frontends have | ||
6 | significant power requirements (and hence get very hot), they | ||
7 | are powered down if they are unused (i.e. if the frontend device | ||
8 | is closed). The dvb-core.o module paramter "dvb_shutdown_timeout" | ||
9 | allow you to change the timeout (default 5 seconds). Setting the | ||
10 | timeout to 0 disables the timeout feature. | ||
11 | |||
12 | 2. How can I watch TV? | ||
13 | |||
14 | The driver distribution includes some simple utilities which | ||
15 | are mainly intended for testing and to demonstrate how the | ||
16 | DVB API works. | ||
17 | |||
18 | Depending on whether you have a DVB-S, DVB-C or DVB-T card, use | ||
19 | apps/szap/szap, czap or tzap. You must supply a channel list | ||
20 | in ~/.[sct]zap/channels.conf. If you are lucky you can just copy | ||
21 | one of the supplied channel lists, or you can create a new one | ||
22 | by running apps/scan/scan. If you run scan on an unknown network | ||
23 | you might have to supply some start data in apps/scan/initial.h. | ||
24 | |||
25 | If you have a card with a built-in hardware MPEG-decoder the | ||
26 | drivers create a video4linux device (/dev/v4l/video0) which | ||
27 | you can use to watch TV with any v4l application. xawtv is known | ||
28 | to work. Note that you cannot change channels with xawtv, you | ||
29 | have to zap using [sct]zap. If you want a nice application for | ||
30 | TV watching and record/playback, have a look at VDR. | ||
31 | |||
32 | If your card does not have a hardware MPEG decoder you need | ||
33 | a software MPEG decoder. Mplayer or xine are known to work. | ||
34 | Newsflash: MythTV also has DVB support now. | ||
35 | Note: Only very recent versions of Mplayer and xine can decode. | ||
36 | MPEG2 transport streams (TS) directly. Then, run | ||
37 | '[sct]zap channelname -r' in one xterm, and keep it running, | ||
38 | and start 'mplayer - < /dev/dvb/adapter0/dvr0' or | ||
39 | 'xine stdin://mpeg2 < /dev/dvb/adapter0/dvr0' in a second xterm. | ||
40 | That's all far from perfect, but it seems no one has written | ||
41 | a nice DVB application which includes a builtin software MPEG | ||
42 | decoder yet. | ||
43 | |||
44 | Newsflash: Newest xine directly supports DVB. Just copy your | ||
45 | channels.conf to ~/.xine and start 'xine dvb://', or select | ||
46 | the DVB button in the xine GUI. Channel switching works using the | ||
47 | numpad pgup/pgdown (NP9 / NP3) keys to scroll through the channel osd | ||
48 | menu and pressing numpad-enter to switch to the selected channel. | ||
49 | |||
50 | Note: Older versions of xine and mplayer understand MPEG program | ||
51 | streams (PS) only, and can be used in conjunction with the | ||
52 | ts2ps tool from the Metzler Brother's dvb-mpegtools package. | ||
53 | |||
54 | 3. Which other DVB applications exist? | ||
55 | |||
56 | http://www.cadsoft.de/people/kls/vdr/ | ||
57 | Klaus Schmidinger's Video Disk Recorder | ||
58 | |||
59 | http://www.metzlerbros.org/dvb/ | ||
60 | Metzler Bros. DVB development; alternate drivers and | ||
61 | DVB utilities, include dvb-mpegtools and tuxzap. | ||
62 | |||
63 | http://www.linuxstb.org/ | ||
64 | http://sourceforge.net/projects/dvbtools/ | ||
65 | Dave Chapman's dvbtools package, including | ||
66 | dvbstream and dvbtune | ||
67 | |||
68 | http://www.linuxdvb.tv/ | ||
69 | Henning Holtschneider's site with many interesting | ||
70 | links and docs | ||
71 | |||
72 | http://www.dbox2.info/ | ||
73 | LinuxDVB on the dBox2 | ||
74 | |||
75 | http://www.tuxbox.org/ | ||
76 | http://cvs.tuxbox.org/ | ||
77 | the TuxBox CVS many interesting DVB applications and the dBox2 | ||
78 | DVB source | ||
79 | |||
80 | http://sourceforge.net/projects/dvbsak/ | ||
81 | DVB Swiss Army Knife library and utilities | ||
82 | |||
83 | http://www.nenie.org/misc/mpsys/ | ||
84 | MPSYS: a MPEG2 system library and tools | ||
85 | |||
86 | http://mplayerhq.hu/ | ||
87 | mplayer | ||
88 | |||
89 | http://xine.sourceforge.net/ | ||
90 | http://xinehq.de/ | ||
91 | xine | ||
92 | |||
93 | http://www.mythtv.org/ | ||
94 | MythTV - analog TV PVR, but now with DVB support, too | ||
95 | (with software MPEG decode) | ||
96 | |||
97 | http://dvbsnoop.sourceforge.net/ | ||
98 | DVB sniffer program to monitor, analyze, debug, dump | ||
99 | or view dvb/mpeg/dsm-cc/mhp stream information (TS, | ||
100 | PES, SECTION) | ||
101 | |||
102 | 4. Can't get a signal tuned correctly | ||
103 | |||
104 | If you are using a Technotrend/Hauppauge DVB-C card *without* analog | ||
105 | module, you might have to use module parameter adac=-1 (dvb-ttpci.o). | ||
106 | |||
107 | 5. The dvb_net device doesn't give me any packets at all | ||
108 | |||
109 | Run tcpdump on the dvb0_0 interface. This sets the interface | ||
110 | into promiscous mode so it accepts any packets from the PID | ||
111 | you have configured with the dvbnet utility. Check if there | ||
112 | are any packets with the IP addr and MAC addr you have | ||
113 | configured with ifconfig. | ||
114 | |||
115 | If tcpdump doesn't give you any output, check the statistics | ||
116 | which ifconfig outputs. (Note: If the MAC address is wrong, | ||
117 | dvb_net won't get any input; thus you have to run tcpdump | ||
118 | before checking the statistics.) If there are no packets at | ||
119 | all then maybe the PID is wrong. If there are error packets, | ||
120 | then either the PID is wrong or the stream does not conform to | ||
121 | the MPE standard (EN 301 192, http://www.etsi.org/). You can | ||
122 | use e.g. dvbsnoop for debugging. | ||
123 | |||
124 | 6. The dvb_net device doesn't give me any multicast packets | ||
125 | |||
126 | Check your routes if they include the multicast address range. | ||
127 | Additionally make sure that "source validation by reversed path | ||
128 | lookup" is disabled: | ||
129 | $ "echo 0 > /proc/sys/net/ipv4/conf/dvb0/rp_filter" | ||
130 | |||
131 | 7. What the hell are all those modules that need to be loaded? | ||
132 | |||
133 | For a dvb-ttpci av7110 based full-featured card the following | ||
134 | modules are loaded: | ||
135 | |||
136 | - videodev: Video4Linux core module. This is the base module that | ||
137 | gives you access to the "analog" tv picture of the av7110 mpeg2 | ||
138 | decoder. | ||
139 | |||
140 | - v4l2-common: common functions for Video4Linux-2 drivers | ||
141 | |||
142 | - v4l1-compat: backward compatiblity layer for Video4Linux-1 legacy | ||
143 | applications | ||
144 | |||
145 | - dvb-core: DVB core module. This provides you with the | ||
146 | /dev/dvb/adapter entries | ||
147 | |||
148 | - saa7146: SAA7146 core driver. This is need to access any SAA7146 | ||
149 | based card in your system. | ||
150 | |||
151 | - saa7146_vv: SAA7146 video and vbi functions. These are only needed | ||
152 | for full-featured cards. | ||
153 | |||
154 | - video-buf: capture helper module for the saa7146_vv driver. This | ||
155 | one is responsible to handle capture buffers. | ||
156 | |||
157 | - dvb-ttpci: The main driver for AV7110 based, full-featued | ||
158 | DVB-S/C/T cards | ||
159 | |||
160 | eof | ||
diff --git a/Documentation/dvb/get_dvb_firmware b/Documentation/dvb/get_dvb_firmware new file mode 100644 index 000000000000..3ffdcb394299 --- /dev/null +++ b/Documentation/dvb/get_dvb_firmware | |||
@@ -0,0 +1,397 @@ | |||
1 | #!/usr/bin/perl | ||
2 | # DVB firmware extractor | ||
3 | # | ||
4 | # (c) 2004 Andrew de Quincey | ||
5 | # | ||
6 | # This program is free software; you can redistribute it and/or modify | ||
7 | # it under the terms of the GNU General Public License as published by | ||
8 | # the Free Software Foundation; either version 2 of the License, or | ||
9 | # (at your option) any later version. | ||
10 | # | ||
11 | # This program is distributed in the hope that it will be useful, | ||
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | # | ||
15 | # GNU General Public License for more details. | ||
16 | # | ||
17 | # You should have received a copy of the GNU General Public License | ||
18 | # along with this program; if not, write to the Free Software | ||
19 | # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
20 | |||
21 | use File::Temp qw/ tempdir /; | ||
22 | use IO::Handle; | ||
23 | |||
24 | @components = ( "sp8870", "sp887x", "tda10045", "tda10046", "av7110", "dec2000t", | ||
25 | "dec2540t", "dec3000s", "vp7041", "dibusb", "nxt2002", | ||
26 | "or51211", "or51132_qam", "or51132_vsb"); | ||
27 | |||
28 | # Check args | ||
29 | syntax() if (scalar(@ARGV) != 1); | ||
30 | $cid = $ARGV[0]; | ||
31 | |||
32 | # Do it! | ||
33 | for ($i=0; $i < scalar(@components); $i++) { | ||
34 | if ($cid eq $components[$i]) { | ||
35 | $outfile = eval($cid); | ||
36 | die $@ if $@; | ||
37 | print STDERR "Firmware $outfile extracted successfully. Now copy it to either /lib/firmware or /usr/lib/hotplug/firmware/ (depending on your hotplug version).\n"; | ||
38 | exit(0); | ||
39 | } | ||
40 | } | ||
41 | |||
42 | # If we get here, it wasn't found | ||
43 | print STDERR "Unknown component \"$cid\"\n"; | ||
44 | syntax(); | ||
45 | |||
46 | |||
47 | |||
48 | |||
49 | # --------------------------------------------------------------- | ||
50 | # Firmware-specific extraction subroutines | ||
51 | |||
52 | sub sp8870 { | ||
53 | my $sourcefile = "tt_Premium_217g.zip"; | ||
54 | my $url = "http://www.technotrend.de/new/217g/$sourcefile"; | ||
55 | my $hash = "53970ec17a538945a6d8cb608a7b3899"; | ||
56 | my $outfile = "dvb-fe-sp8870.fw"; | ||
57 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); | ||
58 | |||
59 | checkstandard(); | ||
60 | |||
61 | wgetfile($sourcefile, $url); | ||
62 | unzip($sourcefile, $tmpdir); | ||
63 | verify("$tmpdir/software/OEM/HE/App/boot/SC_MAIN.MC", $hash); | ||
64 | copy("$tmpdir/software/OEM/HE/App/boot/SC_MAIN.MC", $outfile); | ||
65 | |||
66 | $outfile; | ||
67 | } | ||
68 | |||
69 | sub sp887x { | ||
70 | my $sourcefile = "Dvbt1.3.57.6.zip"; | ||
71 | my $url = "http://www.avermedia.com/software/$sourcefile"; | ||
72 | my $cabfile = "DVBT Net Ver1.3.57.6/disk1/data1.cab"; | ||
73 | my $hash = "237938d53a7f834c05c42b894ca68ac3"; | ||
74 | my $outfile = "dvb-fe-sp887x.fw"; | ||
75 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); | ||
76 | |||
77 | checkstandard(); | ||
78 | checkunshield(); | ||
79 | |||
80 | wgetfile($sourcefile, $url); | ||
81 | unzip($sourcefile, $tmpdir); | ||
82 | unshield("$tmpdir/$cabfile", $tmpdir); | ||
83 | verify("$tmpdir/ZEnglish/sc_main.mc", $hash); | ||
84 | copy("$tmpdir/ZEnglish/sc_main.mc", $outfile); | ||
85 | |||
86 | $outfile; | ||
87 | } | ||
88 | |||
89 | sub tda10045 { | ||
90 | my $sourcefile = "tt_budget_217g.zip"; | ||
91 | my $url = "http://www.technotrend.de/new/217g/$sourcefile"; | ||
92 | my $hash = "2105fd5bf37842fbcdfa4bfd58f3594a"; | ||
93 | my $outfile = "dvb-fe-tda10045.fw"; | ||
94 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); | ||
95 | |||
96 | checkstandard(); | ||
97 | |||
98 | wgetfile($sourcefile, $url); | ||
99 | unzip($sourcefile, $tmpdir); | ||
100 | extract("$tmpdir/software/OEM/PCI/App/ttlcdacc.dll", 0x37ef9, 30555, "$tmpdir/fwtmp"); | ||
101 | verify("$tmpdir/fwtmp", $hash); | ||
102 | copy("$tmpdir/fwtmp", $outfile); | ||
103 | |||
104 | $outfile; | ||
105 | } | ||
106 | |||
107 | sub tda10046 { | ||
108 | my $sourcefile = "tt_budget_217g.zip"; | ||
109 | my $url = "http://www.technotrend.de/new/217g/$sourcefile"; | ||
110 | my $hash = "a25b579e37109af60f4a36c37893957c"; | ||
111 | my $outfile = "dvb-fe-tda10046.fw"; | ||
112 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); | ||
113 | |||
114 | checkstandard(); | ||
115 | |||
116 | wgetfile($sourcefile, $url); | ||
117 | unzip($sourcefile, $tmpdir); | ||
118 | extract("$tmpdir/software/OEM/PCI/App/ttlcdacc.dll", 0x3f731, 24479, "$tmpdir/fwtmp"); | ||
119 | verify("$tmpdir/fwtmp", $hash); | ||
120 | copy("$tmpdir/fwtmp", $outfile); | ||
121 | |||
122 | $outfile; | ||
123 | } | ||
124 | |||
125 | sub av7110 { | ||
126 | my $sourcefile = "dvb-ttpci-01.fw-261d"; | ||
127 | my $url = "http://www.linuxtv.org/downloads/firmware/$sourcefile"; | ||
128 | my $hash = "603431b6259715a8e88f376a53b64e2f"; | ||
129 | my $outfile = "dvb-ttpci-01.fw"; | ||
130 | |||
131 | checkstandard(); | ||
132 | |||
133 | wgetfile($sourcefile, $url); | ||
134 | verify($sourcefile, $hash); | ||
135 | copy($sourcefile, $outfile); | ||
136 | |||
137 | $outfile; | ||
138 | } | ||
139 | |||
140 | sub dec2000t { | ||
141 | my $sourcefile = "dec217g.exe"; | ||
142 | my $url = "http://hauppauge.lightpath.net/de/$sourcefile"; | ||
143 | my $hash = "bd86f458cee4a8f0a8ce2d20c66215a9"; | ||
144 | my $outfile = "dvb-ttusb-dec-2000t.fw"; | ||
145 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); | ||
146 | |||
147 | checkstandard(); | ||
148 | |||
149 | wgetfile($sourcefile, $url); | ||
150 | unzip($sourcefile, $tmpdir); | ||
151 | verify("$tmpdir/software/OEM/STB/App/Boot/STB_PC_T.bin", $hash); | ||
152 | copy("$tmpdir/software/OEM/STB/App/Boot/STB_PC_T.bin", $outfile); | ||
153 | |||
154 | $outfile; | ||
155 | } | ||
156 | |||
157 | sub dec2540t { | ||
158 | my $sourcefile = "dec217g.exe"; | ||
159 | my $url = "http://hauppauge.lightpath.net/de/$sourcefile"; | ||
160 | my $hash = "53e58f4f5b5c2930beee74a7681fed92"; | ||
161 | my $outfile = "dvb-ttusb-dec-2540t.fw"; | ||
162 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); | ||
163 | |||
164 | checkstandard(); | ||
165 | |||
166 | wgetfile($sourcefile, $url); | ||
167 | unzip($sourcefile, $tmpdir); | ||
168 | verify("$tmpdir/software/OEM/STB/App/Boot/STB_PC_X.bin", $hash); | ||
169 | copy("$tmpdir/software/OEM/STB/App/Boot/STB_PC_X.bin", $outfile); | ||
170 | |||
171 | $outfile; | ||
172 | } | ||
173 | |||
174 | sub dec3000s { | ||
175 | my $sourcefile = "dec217g.exe"; | ||
176 | my $url = "http://hauppauge.lightpath.net/de/$sourcefile"; | ||
177 | my $hash = "b013ececea83f4d6d8d2a29ac7c1b448"; | ||
178 | my $outfile = "dvb-ttusb-dec-3000s.fw"; | ||
179 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); | ||
180 | |||
181 | checkstandard(); | ||
182 | |||
183 | wgetfile($sourcefile, $url); | ||
184 | unzip($sourcefile, $tmpdir); | ||
185 | verify("$tmpdir/software/OEM/STB/App/Boot/STB_PC_S.bin", $hash); | ||
186 | copy("$tmpdir/software/OEM/STB/App/Boot/STB_PC_S.bin", $outfile); | ||
187 | |||
188 | $outfile; | ||
189 | } | ||
190 | |||
191 | sub vp7041 { | ||
192 | my $sourcefile = "2.422.zip"; | ||
193 | my $url = "http://www.twinhan.com/files/driver/USB-Ter/$sourcefile"; | ||
194 | my $hash = "e88c9372d1f66609a3e7b072c53fbcfe"; | ||
195 | my $outfile = "dvb-vp7041-2.422.fw"; | ||
196 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); | ||
197 | |||
198 | checkstandard(); | ||
199 | |||
200 | wgetfile($sourcefile, $url); | ||
201 | unzip($sourcefile, $tmpdir); | ||
202 | extract("$tmpdir/VisionDTV/Drivers/Win2K&XP/UDTTload.sys", 12503, 3036, "$tmpdir/fwtmp1"); | ||
203 | extract("$tmpdir/VisionDTV/Drivers/Win2K&XP/UDTTload.sys", 2207, 10274, "$tmpdir/fwtmp2"); | ||
204 | |||
205 | my $CMD = "\000\001\000\222\177\000"; | ||
206 | my $PAD = "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"; | ||
207 | my ($FW); | ||
208 | open $FW, ">$tmpdir/fwtmp3"; | ||
209 | print $FW "$CMD\001$PAD"; | ||
210 | print $FW "$CMD\001$PAD"; | ||
211 | appendfile($FW, "$tmpdir/fwtmp1"); | ||
212 | print $FW "$CMD\000$PAD"; | ||
213 | print $FW "$CMD\001$PAD"; | ||
214 | appendfile($FW, "$tmpdir/fwtmp2"); | ||
215 | print $FW "$CMD\001$PAD"; | ||
216 | print $FW "$CMD\000$PAD"; | ||
217 | close($FW); | ||
218 | |||
219 | verify("$tmpdir/fwtmp3", $hash); | ||
220 | copy("$tmpdir/fwtmp3", $outfile); | ||
221 | |||
222 | $outfile; | ||
223 | } | ||
224 | |||
225 | sub dibusb { | ||
226 | my $url = "http://www.linuxtv.org/downloads/firmware/dvb-dibusb-5.0.0.11.fw"; | ||
227 | my $outfile = "dvb-dibusb-5.0.0.11.fw"; | ||
228 | my $hash = "fa490295a527360ca16dcdf3224ca243"; | ||
229 | |||
230 | checkstandard(); | ||
231 | |||
232 | wgetfile($outfile, $url); | ||
233 | verify($outfile,$hash); | ||
234 | |||
235 | $outfile; | ||
236 | } | ||
237 | |||
238 | sub nxt2002 { | ||
239 | my $sourcefile = "Broadband4PC_4_2_11.zip"; | ||
240 | my $url = "http://www.bbti.us/download/windows/$sourcefile"; | ||
241 | my $hash = "c6d2ea47a8f456d887ada0cfb718ff2a"; | ||
242 | my $outfile = "dvb-fe-nxt2002.fw"; | ||
243 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); | ||
244 | |||
245 | checkstandard(); | ||
246 | |||
247 | wgetfile($sourcefile, $url); | ||
248 | unzip($sourcefile, $tmpdir); | ||
249 | verify("$tmpdir/SkyNETU.sys", $hash); | ||
250 | extract("$tmpdir/SkyNETU.sys", 375832, 5908, $outfile); | ||
251 | |||
252 | $outfile; | ||
253 | } | ||
254 | |||
255 | sub or51211 { | ||
256 | my $fwfile = "dvb-fe-or51211.fw"; | ||
257 | my $url = "http://linuxtv.org/downloads/firmware/$fwfile"; | ||
258 | my $hash = "d830949c771a289505bf9eafc225d491"; | ||
259 | |||
260 | checkstandard(); | ||
261 | |||
262 | wgetfile($fwfile, $url); | ||
263 | verify($fwfile, $hash); | ||
264 | |||
265 | $fwfile; | ||
266 | } | ||
267 | |||
268 | sub or51132_qam { | ||
269 | my $fwfile = "dvb-fe-or51132-qam.fw"; | ||
270 | my $url = "http://linuxtv.org/downloads/firmware/$fwfile"; | ||
271 | my $hash = "7702e8938612de46ccadfe9b413cb3b5"; | ||
272 | |||
273 | checkstandard(); | ||
274 | |||
275 | wgetfile($fwfile, $url); | ||
276 | verify($fwfile, $hash); | ||
277 | |||
278 | $fwfile; | ||
279 | } | ||
280 | |||
281 | sub or51132_vsb { | ||
282 | my $fwfile = "dvb-fe-or51132-vsb.fw"; | ||
283 | my $url = "http://linuxtv.org/downloads/firmware/$fwfile"; | ||
284 | my $hash = "c16208e02f36fc439a557ad4c613364a"; | ||
285 | |||
286 | checkstandard(); | ||
287 | |||
288 | wgetfile($fwfile, $url); | ||
289 | verify($fwfile, $hash); | ||
290 | |||
291 | $fwfile; | ||
292 | } | ||
293 | |||
294 | # --------------------------------------------------------------- | ||
295 | # Utilities | ||
296 | |||
297 | sub checkstandard { | ||
298 | if (system("which unzip > /dev/null 2>&1")) { | ||
299 | die "This firmware requires the unzip command - see ftp://ftp.info-zip.org/pub/infozip/UnZip.html\n"; | ||
300 | } | ||
301 | if (system("which md5sum > /dev/null 2>&1")) { | ||
302 | die "This firmware requires the md5sum command - see http://www.gnu.org/software/coreutils/\n"; | ||
303 | } | ||
304 | if (system("which wget > /dev/null 2>&1")) { | ||
305 | die "This firmware requires the wget command - see http://wget.sunsite.dk/\n"; | ||
306 | } | ||
307 | } | ||
308 | |||
309 | sub checkunshield { | ||
310 | if (system("which unshield > /dev/null 2>&1")) { | ||
311 | die "This firmware requires the unshield command - see http://sourceforge.net/projects/synce/\n"; | ||
312 | } | ||
313 | } | ||
314 | |||
315 | sub wgetfile { | ||
316 | my ($sourcefile, $url) = @_; | ||
317 | |||
318 | if (! -f $sourcefile) { | ||
319 | system("wget -O \"$sourcefile\" \"$url\"") and die "wget failed - unable to download firmware"; | ||
320 | } | ||
321 | } | ||
322 | |||
323 | sub unzip { | ||
324 | my ($sourcefile, $todir) = @_; | ||
325 | |||
326 | $status = system("unzip -q -o -d \"$todir\" \"$sourcefile\" 2>/dev/null" ); | ||
327 | if ((($status >> 8) > 2) || (($status & 0xff) != 0)) { | ||
328 | die ("unzip failed - unable to extract firmware"); | ||
329 | } | ||
330 | } | ||
331 | |||
332 | sub unshield { | ||
333 | my ($sourcefile, $todir) = @_; | ||
334 | |||
335 | system("unshield x -d \"$todir\" \"$sourcefile\" > /dev/null" ) and die ("unshield failed - unable to extract firmware"); | ||
336 | } | ||
337 | |||
338 | sub verify { | ||
339 | my ($filename, $hash) = @_; | ||
340 | my ($testhash); | ||
341 | |||
342 | open(CMD, "md5sum \"$filename\"|"); | ||
343 | $testhash = <CMD>; | ||
344 | $testhash =~ /([a-zA-Z0-9]*)/; | ||
345 | $testhash = $1; | ||
346 | close CMD; | ||
347 | die "Hash of extracted file does not match!\n" if ($testhash ne $hash); | ||
348 | } | ||
349 | |||
350 | sub copy { | ||
351 | my ($from, $to) = @_; | ||
352 | |||
353 | system("cp -f \"$from\" \"$to\"") and die ("cp failed"); | ||
354 | } | ||
355 | |||
356 | sub extract { | ||
357 | my ($infile, $offset, $length, $outfile) = @_; | ||
358 | my ($chunklength, $buf, $rcount); | ||
359 | |||
360 | open INFILE, "<$infile"; | ||
361 | open OUTFILE, ">$outfile"; | ||
362 | sysseek(INFILE, $offset, SEEK_SET); | ||
363 | while($length > 0) { | ||
364 | # Calc chunk size | ||
365 | $chunklength = 2048; | ||
366 | $chunklength = $length if ($chunklength > $length); | ||
367 | |||
368 | $rcount = sysread(INFILE, $buf, $chunklength); | ||
369 | die "Ran out of data\n" if ($rcount != $chunklength); | ||
370 | syswrite(OUTFILE, $buf); | ||
371 | $length -= $rcount; | ||
372 | } | ||
373 | close INFILE; | ||
374 | close OUTFILE; | ||
375 | } | ||
376 | |||
377 | sub appendfile { | ||
378 | my ($FH, $infile) = @_; | ||
379 | my ($buf); | ||
380 | |||
381 | open INFILE, "<$infile"; | ||
382 | while(1) { | ||
383 | $rcount = sysread(INFILE, $buf, 2048); | ||
384 | last if ($rcount == 0); | ||
385 | print $FH $buf; | ||
386 | } | ||
387 | close(INFILE); | ||
388 | } | ||
389 | |||
390 | sub syntax() { | ||
391 | print STDERR "syntax: get_dvb_firmware <component>\n"; | ||
392 | print STDERR "Supported components:\n"; | ||
393 | for($i=0; $i < scalar(@components); $i++) { | ||
394 | print STDERR "\t" . $components[$i] . "\n"; | ||
395 | } | ||
396 | exit(1); | ||
397 | } | ||
diff --git a/Documentation/dvb/readme.txt b/Documentation/dvb/readme.txt new file mode 100644 index 000000000000..754c98c6ad94 --- /dev/null +++ b/Documentation/dvb/readme.txt | |||
@@ -0,0 +1,52 @@ | |||
1 | Linux Digital Video Broadcast (DVB) subsystem | ||
2 | ============================================= | ||
3 | |||
4 | The main development site and CVS repository for these | ||
5 | drivers is http://linuxtv.org/. | ||
6 | |||
7 | The developer mailing list linux-dvb is also hosted there, | ||
8 | see http://linuxtv.org/lists.php. Please check | ||
9 | the archive http://linuxtv.org/pipermail/linux-dvb/ | ||
10 | and the Wiki http://linuxtv.org/wiki/ | ||
11 | before asking newbie questions on the list. | ||
12 | |||
13 | API documentation, utilities and test/example programs | ||
14 | are available as part of the old driver package for Linux 2.4 | ||
15 | (linuxtv-dvb-1.0.x.tar.gz), or from CVS (module DVB). | ||
16 | We plan to split this into separate packages, but it's not | ||
17 | been done yet. | ||
18 | |||
19 | http://linuxtv.org/downloads/ | ||
20 | |||
21 | What's inside this directory: | ||
22 | |||
23 | "cards.txt" | ||
24 | contains a list of supported hardware. | ||
25 | |||
26 | "contributors.txt" | ||
27 | is the who-is-who of DVB development | ||
28 | |||
29 | "faq.txt" | ||
30 | contains frequently asked questions and their answers. | ||
31 | |||
32 | "get_dvb_firmware" | ||
33 | script to download and extract firmware for those devices | ||
34 | that require it. | ||
35 | |||
36 | "ttusb-dec.txt" | ||
37 | contains detailed informations about the | ||
38 | TT DEC2000/DEC3000 USB DVB hardware. | ||
39 | |||
40 | "bt8xx.txt" | ||
41 | contains detailed installation instructions for the | ||
42 | various bt8xx based "budget" DVB cards | ||
43 | (Nebula, Pinnacle PCTV, Twinhan DST) | ||
44 | |||
45 | "README.dibusb" | ||
46 | contains detailed information about adapters | ||
47 | based on DiBcom reference design. | ||
48 | |||
49 | "udev.txt" | ||
50 | how to get DVB and udev up and running. | ||
51 | |||
52 | Good luck and have fun! | ||
diff --git a/Documentation/dvb/ttusb-dec.txt b/Documentation/dvb/ttusb-dec.txt new file mode 100644 index 000000000000..5c1e984c26a7 --- /dev/null +++ b/Documentation/dvb/ttusb-dec.txt | |||
@@ -0,0 +1,44 @@ | |||
1 | TechnoTrend/Hauppauge DEC USB Driver | ||
2 | ==================================== | ||
3 | |||
4 | Driver Status | ||
5 | ------------- | ||
6 | |||
7 | Supported: | ||
8 | DEC2000-t | ||
9 | DEC2450-t | ||
10 | DEC3000-s | ||
11 | Linux Kernels 2.4 and 2.6 | ||
12 | Video Streaming | ||
13 | Audio Streaming | ||
14 | Section Filters | ||
15 | Channel Zapping | ||
16 | Hotplug firmware loader under 2.6 kernels | ||
17 | |||
18 | To Do: | ||
19 | Tuner status information | ||
20 | DVB network interface | ||
21 | Streaming video PC->DEC | ||
22 | Conax support for 2450-t | ||
23 | |||
24 | Getting the Firmware | ||
25 | -------------------- | ||
26 | To download the firmware, use the following commands: | ||
27 | "get_dvb_firmware dec2000t" | ||
28 | "get_dvb_firmware dec2540t" | ||
29 | "get_dvb_firmware dec3000s" | ||
30 | |||
31 | |||
32 | Compilation Notes for 2.4 kernels | ||
33 | --------------------------------- | ||
34 | For 2.4 kernels the firmware for the DECs is compiled into the driver itself. | ||
35 | |||
36 | Copy the three files downloaded above into the build-2.4 directory. | ||
37 | |||
38 | |||
39 | Hotplug Firmware Loading for 2.6 kernels | ||
40 | ---------------------------------------- | ||
41 | For 2.6 kernels the firmware is loaded at the point that the driver module is | ||
42 | loaded. See linux/Documentation/dvb/firmware.txt for more information. | ||
43 | |||
44 | Copy the three files downloaded above into the /usr/lib/hotplug/firmware directory. | ||
diff --git a/Documentation/dvb/udev.txt b/Documentation/dvb/udev.txt new file mode 100644 index 000000000000..68ee224b6aae --- /dev/null +++ b/Documentation/dvb/udev.txt | |||
@@ -0,0 +1,46 @@ | |||
1 | The DVB subsystem currently registers to the sysfs subsystem using the | ||
2 | "class_simple" interface. | ||
3 | |||
4 | This means that only the basic informations like module loading parameters | ||
5 | are presented through sysfs. Other things that might be interesting are | ||
6 | currently *not* available. | ||
7 | |||
8 | Nevertheless it's now possible to add proper udev rules so that the | ||
9 | DVB device nodes are created automatically. | ||
10 | |||
11 | We assume that you have udev already up and running and that have been | ||
12 | creating the DVB device nodes manually up to now due to the missing sysfs | ||
13 | support. | ||
14 | |||
15 | 0. Don't forget to disable your current method of creating the | ||
16 | device nodes manually. | ||
17 | |||
18 | 1. Unfortunately, you'll need a helper script to transform the kernel | ||
19 | sysfs device name into the well known dvb adapter / device naming scheme. | ||
20 | The script should be called "dvb.sh" and should be placed into a script | ||
21 | dir where udev can execute it, most likely /etc/udev/scripts/ | ||
22 | |||
23 | So, create a new file /etc/udev/scripts/dvb.sh and add the following: | ||
24 | ------------------------------schnipp------------------------------------------------ | ||
25 | #!/bin/sh | ||
26 | /bin/echo $1 | /bin/sed -e 's,dvb\([0-9]\)\.\([^0-9]*\)\([0-9]\),dvb/adapter\1/\2\3,' | ||
27 | ------------------------------schnipp------------------------------------------------ | ||
28 | |||
29 | Don't forget to make the script executable with "chmod". | ||
30 | |||
31 | 1. You need to create a proper udev rule that will create the device nodes | ||
32 | like you know them. All real distributions out there scan the /etc/udev/rules.d | ||
33 | directory for rule files. The main udev configuration file /etc/udev/udev.conf | ||
34 | will tell you the directory where the rules are, most likely it's /etc/udev/rules.d/ | ||
35 | |||
36 | Create a new rule file in that directory called "dvb.rule" and add the following line: | ||
37 | ------------------------------schnipp------------------------------------------------ | ||
38 | KERNEL="dvb*", PROGRAM="/etc/udev/scripts/dvb.sh %k", NAME="%c" | ||
39 | ------------------------------schnipp------------------------------------------------ | ||
40 | |||
41 | If you want more control over the device nodes (for example a special group membership) | ||
42 | have a look at "man udev". | ||
43 | |||
44 | For every device that registers to the sysfs subsystem with a "dvb" prefix, | ||
45 | the helper script /etc/udev/scripts/dvb.sh is invoked, which will then | ||
46 | create the proper device node in your /dev/ directory. | ||