summaryrefslogtreecommitdiff
path: root/linux/Documentation/dvb/vp7041.txt
blob: a706f3be527d5a15bbd6d9305ad354c07ba74203 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
Linux Driver for 
 VisionPlus VisionDTV USB-Ter DVB-T Device (VP7041)
 (http://www.twinhan.com/visiontv-2_4.htm)
and
 CTS Portable (Chinese Television System)
 (http://www.2cts.tv/ctsportable/)

Copyright (C) 2004 Patrick Boettcher (patrick.boettcher@desy.de), 
 
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation, version 2.

Koenigs Wusterhausen, Germany

NEWS:
  2004-07-15 - found out, by accident, that the device has a TUA6010XS for 
               frequency generator
  2004-07-12 - figured out, that the driver should also work with the
               CTS Portable (Chinese Television System)
  2004-07-08 - firmware-extraction-2.422-problem solved, driver is now working 
               properly with firmware extracted from 2.422
			 - #if for 2.6.4 (dvb), compile issue
			 - changed firmware handling, see vp7041.txt sec 1.1
  2004-07-02 - some tuner modifications, v0.1, cleanups, first public
  2004-06-28 - now using the dvb_dmx_swfilter_packets, everything 
               runs fine now
  2004-06-27 - able to watch and switching channels (pre-alpha)
             - no section filtering yet
  2004-06-06 - first TS received, but kernel oops :/
  2004-05-14 - firmware loader is working
  2004-05-11 - start writing the driver

0. About the driver.
This driver is completly reverse-engineered by using the device on a guest PC
with Windows (where a working driver exists). 
If you have a look into the source code, you will find a lot of buffers with
a lot of hex-numbers in it. By all means, I will not assert, that I understand
each of them. But this is like the windows driver controls the device, and
obviously it is working even in Linux.

If someone of you recognizes something in those buffers (maybe there is 
a frontend or any other device, which are fed like this) please let me know.
If I could assign a function name to any of those anonymous numbers, I will
be very happy. 

By all means, I will highly appreciate any comment, critic and patch to improve 
the quality of this piece of software.

When using this driver your system can crash or hang. I'm not responsibly for 
any data you may lose. So be warned. (Enabling sysrq saves a lot of data).

Addition: This driver should also work with the CTS Portable since the 
windriver seems to be identical to the Twinhan one. Comment on this badly
needed.

1. How to use?
NOTE: This driver was developed on Linux 2.6.6., it is working with 2.6.7. 
Linux 2.4.x support is not planned, but patches are very welcome.

NOTE: I'm using Debian testing, so the following explaination (especially
the hotplug-path) needn't match your system, but probably it will :).

1.1. Firmware extraction

First of all you have to extract the firmware from the windows driver:

Please use the command "get_dvb_firmware vp7041" to download and extract the
firmware. Then copy it to /usr/lib/hotplug/firmware.

1.2. Compiling

Since the driver is in the linux kernel, activating the driver in
your favorite config-environment should sufficient. I recommend
to compile the driver as module. Hotplug does the rest.

1.3. Loading the driver

Hotplug is able to load the driver, when it is needed (because you plugged
in the device).

If you want to enable debug output, you have to load the driver manually.

modprobe vp7041 debug=1 

should do the trick.

When the driver is loaded successfully, the firmware file was in 
the right place and the device is connected, the "Power"-LED should be
turned on.

If this is done, even in the non-debug mode, dmesg should show  
something like the following:

DVB: registering new adapter (VisionPlus VisionDTV USB-Ter DVB-T Device).
DVB: registering frontend 0:0 (VisionPlus VisionDTV USB-Ter (VP7041) Frontend)...
VisionPlus VisionDTV USB-Ter DVB-T Device successfully initialized and connected.

At this point you are able to start a dvb-capable application. For myself
I used mplayer, dvbscan, tzap and kaxtv, they are working. Using the device
as a slave device in vdr, was not working for me. Some work has to be done 
(patches and comments are very welcome).

2. Known problems and bugs

see vp7041.c

2.1 TODO
see vp7041.c

again, patches and comments are very very welcome

3. Acknowledgements
   Alex Woods for frequently answering question about usb and dvb
    stuff, a big thank you

   Bernd Wagner for helping with huge bug reports and discussions.
   
   Some guys on the linux-dvb mailing list for encouraging me
   
   Peter Schildmann >peter.schildmann-nospam-at-web.de< for his 
    user-level firmware loader, which saves a lot of time

   Ulf Hermenau for helping me out with traditional chinese.
   
   André Smoktun and Christian Frömmel for supporting me with
    hardware and listening to my problems very patient