Renovated by 9.11.2007 21:40 gmt+2 - I declare about the beginning of the work on driver Acorp DS110 PCI.
Renovated by 27.10.2007 15:00 gmt+2 - it is added useful references.
Renovated by 27.10.2007 14:00 gmt+2 - it is added the description of the exchange of information with the map on tire USB.
Renovated by 20.10.2007 02:46 gmt+2 - is added the support of the panel for remote control.
For the beginning we rock from site http://www.linuxtv.org the latter of driver v4l-dvb.
For those not desiring to be investigated with this site I lead the simple reference: http://linuxtv.org/hg/v4l-dvb/archive/tip.tar.bz2. We obtain the file of form v4l-dvb-44dad58ec6e2.tar.bz2.
Driver itself for Acorp DS120 in the form diff of file we take according to the reference: http://liplianin.at.tut.by/v4l-dvb-dw2102.diff.
Firmvare we allot from driver Windows. As to extract firmvare from driver Windows – http://linuxtv.org/wiki/index.php/Acorp_.DS120. Or we read below. Or we draw off finished according to reference http://liplianin.at.tut.by/dvb-usb-dw2102.fw. We place it in /.lib/firmshare.
We have already everything that must from it is file. It remained knob to apply (but those, in whom head clever, they can and not read – themselves they will be dismantled).
Further obtained archive v4l-dvb-44dad58ec6e2.tar.bz2 we place for example into the folder of /.shork and unpack by the command:?
| tar -.khvf v4l-dvb-44dad58ec6e2.tar.bz2 |
Came out catalog v4l-dvb. we place there our v4l-dvb-dw2102.diff file. And we use this diff (the very same patch) by command from the same catalog:
| patch -.py of -.N < v4l-dvb-dw2102.diff |
Came out the catalog of initial it was file drivers v4l-dvb with the included in it driver Acorp DS120 (the very same DVBWorld DW2102 USB2 Dvb- dvb-s as 4 it called driver for the conspiracy. But can this Acorp the card of pereobozval for the conspiracy; -))
Konfiguriruyem by the command:
| make menuconfig |
It shows the beautiful menu to us:

We select there in division Multimedia devices;

DVB/ATSC adapters;

Dvbworld DW2102. We preserve.

Further:
| make make install |
Or by one line:
| make && make install. |
It is prepared!
We put DS120 in USB, in this case the driver is loaded into the memory automatically, and it already must work!
Linux is not compulsory to perezagruzhat' after the renovation of driver. It suffices to give the command:
| rmmod dvb-usb-dw2102 |
and then to distort USB card.
When driver is included in the basic branch v4l-dvb, it will begin more simply – will not have to draw off patch and it to use (or to superimpose).
VID:PID = 04B4:2102
Sharp BS2F7VZ019В Tuner, and in it:
- tuner is similar to TSA5059
-.STM STV0299B the demodulator
Controller Cypress CY7C68013 with support USB 2.0
It is located in file DVBUSBS2102.sys through the address: displacement 0x47C0, the length of 8y92(.0kh2000).
It is extracted with the aid of the script:
#!/.usr/bin/perl useFile::Temp qw/ tempdir /; use IO::Handle; extract(".DVBUSBS2102.sys", 0x47c0, 8192, "dvb-usb-dw2102.fw"); |
Exchange on USB.
According to Usbsnoop.log, the receiver loads firmvare with pieces of 64 bytes through endpoint 0(kak this on Russian?).
| 000005: OUT: 000001 ms 000057 ms 40 a0 92 7f 00 00 01 00 > > > 01 000006: OUT: 000000 ms 000058 ms 40 a0 00 e6 00 00 01 00 > > > 01 000007: OUT: 000000 ms 000058 ms 40 a0 00 00 00 00 40 00 > > > 02 08 5d 00 01 02 02 03 03 04 04 05 05 12 07 bc 02 0c 59 02 07 b8 c0 e0 c0 83 c0 82 90 e6 b5 e0 44 01 f0 d2 01 12 0a 09 74 01 f0 d0 82 d0 83 d0 e0 32 32 02 00 к 8f 31 8d 32 е 33 8b 34 d3 22...... 000134: OUT: 000000 ms 000086 ms 40 a0 c0 1f 00 00 40 00 > > > aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa 000135: OUT: 000000 ms 000086 ms 40 a0 92 7f 00 00 01 00 > > > 00 000136: OUT: 000002 ms 000086 ms 40 a0 00 e6 00 00 01 00 > > > 00 |
Record into registers STV0299 (value a1 into register 00, value of 15 into register 01 and value of 00 into register 02):
| 000413: OUT: 000000 ms 006697 ms 40 b2 00 00 00 00 03 00 > > > а 00 a1 000414: OUT: 000001 ms 006697 ms 40 b2 00 00 00 00 03 00 > > > а 01 15 000415: OUT: 000001 ms 006698 ms 40 b2 00 00 00 00 03 00 > > > а 02 00 |
Reading from registers STV0299 (register 28, value of 00):
000478: OUT: 000001 ms 006738 ms c0 b5 28 00 00 00 02 00 <<< 00 b5 |
Record in PLL through i2c controller STV0299, where sequence c0 42 08 e1 00 is i2c communication for PLL with address c0.
| 000491: OUT: 000001 ms 006748 ms 40 b2 00 00 00 00 03 00 > > > а 05 b5 000492: OUT: 000040 ms 006749 ms 40 b2 00 00 00 00 07 00 > > > 2c 05 c0 42 08 e1 00 |
Nourishment LNB, where XX=00 for 13v, XX=01 for 18v.
| 000503: OUT: 000001 ms 038730 ms 40 b2 00 00 00 00 02 00 > > > 30 XX |
Remote control, where byte ff - code of the key:
| 000193: OUT: 000075 ms 006766 ms c0 b8 00 00 00 00 02 00 <<< ff b8 |
Certainly: http://www.usb.org
FAQ on Usbsnoop: http://mxhaard.free.fr/spca50x/Download/snoopy.pdf
USB sniffer: http://benoit.papillault.free.fr/usbsnoop/sniff- Bean -1.8.zip
Parser for usbsnoop.log: http://www.isely.net/downloads/pvrusb2-mci-2007042е.tar.bz2
Project Usbreplay (there also there is a parser): http://mcentral.de/wiki/index.php/Usbreplay
We command:
| cat usbsnoop.log | parser.pl > usbsnoopparsed.log |
Then we think above the contents usbsnoopparsed.log. =)
Will help in our matter module usbmon. With its aid it is possible to verify sendings on USB under Linux'om. Read /.usr/srch/linukh/Dochumentation/usb/usbmon.tkht
(c).Copyright. Igor M Liplianin. 2007