tar -xvf dvblipl.tar.bz2 cd dvblipl make make install
Обновлено 20.03.2008: Публикую патч для ядра linux-2.6.23.12. Не требует обновления v4l-dvb. Брать файл dvb-igorlipl.diff. Содержит драйвера 2002/2102 с поддержкой пульта дистанционного управления. Также публикую lirc.conf для этих карт.
Обновлено 16.03.2008: Публикую патч для ядра linux-2.6.23.12. Не требует обновления v4l-dvb. Брать файл dvb-liplianin.diff. Содержит драйвера 2002/2102 и мобильника Benq-Siemens EF81;-) Значительно увеличена стабильность драйвера 2002 и уменьшена загрузка процессора. Как начало работы над ПДУ для 2002 добавлен параметр ir_debug. При
modprobe dm1105 ir_debug=1можно командой
dmesgпросмотреть коды нажатых клавиш на ПДУ. Внедрена экспериментальная поддержка Axess DM05 и DM713S карт на чипе DM1105. Можете править константы DM05_LNB_MASK, DM05_LNB_13V, DM05_LNB_18V и писать мне о результате на liplianin(at)me(dot)by.
Обновлено 10.01.2008: Публикую патч для ядра linux-2.6.23.12. Не требует обновления v4l-dvb. Брать файл dm1105-liplianin.diff. Содержит драйвера 2002/120 и мобильника Benq-Siemens EF81;-)
Обновлено 23.12.2007:Добавил поддержку устройства PCI\VEN 109F:036F SUBSYS 2002:0000.
Обновлено 14.12.2007: Уточнил инструкцию, а именно указал на команду make kernel-links.
Обновлено 10.12.2007: Драйвера 2102/110 объединены в один diff.
Брать можно здесь: v4l-dvb-liplianin.diff
По историческим причинам сохраняю отдельные diff-ы, но обновлять их не стану.
Обновлено 10.12.2007: Драйвер PCI2002. обьявляю работающим стабильно.
Брать можно здесь: v4l-dvb-liplianin.diff
Обновлено 09.12.2007: Драйвер PCI2002. уже в работоспособном состоянии.
Обновлено 9.11.2007 21:40 GMT+2 - объявляю о начале работы над драйвером DVBWorld 2002 PCI.
Обновлено 27.10.2007 15:00 GMT+2 - добавлена полезные ссылки.
Обновлено 27.10.2007 14:00 GMT+2 - добавлена описание обмена информацией с картой по шине USB.
Обновлено 20.10.2007 02:46 GMT+2 - добавлена поддержка пульта дистанционного управления.
Для начала качаем с сайта http://www.linuxtv.org последние драйвера v4l-dvb командой:
hg clone http://linuxtv.org/hg/v4l-dvb
Для не желающих разбираться с этим сайтом привожу простую ссылку: http://linuxtv.org/hg/v4l-dvb/archive/tip.tar.bz2. Получаем файл вида v4l-dvb-44dad58ec6e2.tar.bz2.
Сам драйвер для USB2102 в виде diff файла берем по ссылке: http://liplianin.at.tut.by/v4l-dvb-liplianin.diff.
Фирмваре выделяем из драйвера Windows. Как извлечь фирмваре из драйвера Windows – http://linuxtv.org/wiki/index.php/Acorp_DS120. Или читаем ниже. Или скачиваем готовое по ссылке http://liplianin.at.tut.by/dvb-usb-dw2102.fw. Помещаем его в /lib/firmware.
Имеем уже все что надо из файлов. Осталось ручки приложить (а те, у кого голова умная, могут и не читать – сами разберутся ).
Далее полученный архив v4l-dvb-44dad58ec6e2.tar.bz2 помещаем например в папку /work и распаковываем командой:
tar -xvf v4l-dvb-44dad58ec6e2.tar.bz2
Получился каталог v4l-dvb. Помещаем туда наш v4l-dvb-liplianin.diff файл. И применяем этот diff (он же patch) командой из этого же каталога:
patch -p1 -N < v4l-dvb-liplianin.diff
Получился каталог исходных файлов драйверов v4l-dvb с включенным в него драйвером DVBWorld DW2102 USB2 DVB-S.
Внимание! Если вы до этого уже делали попытки установить v4l-dvb, особенно из других каталогов, то,
чтобы указать команде make откуда брать исходники, надо дать команду
make kernel-links
Конфигурируем командой:
make menuconfig
Она показывает нам красивое меню:

Выбираем там в разделе Multimedia devices;

DVB/ATSC adapters;

Dvbworld DW2102. Сохраняем.

Далее:
make make install
Или одной строкой:
make && make install.
Готово!
Вставляем 2102 в USB, при этом драйвер грузится в память автоматически, и она уже должна работать!
Linux не обязательно перезагружать после обновления драйвера. Достаточно дать команду:
rmmod dvb-usb-dw2102
а затем передернуть USB карточку.
Когда драйвер включат в основную ветку v4l-dvb, станет проще – не надо будет скачивать патч и его применять (или накладывать).
VID:PID = 04B4:2102
Sharp BS2F7VZ0194A тюнер, а в нем:
-тюнер похож на TSA5059
-STM STV0299B демодулятор
Контроллер Cypress CY7C68013 с поддержкой USB 2.0
Оно находится в файле DVBUSBS2102.sys по адресу: смещение 0x47C0, длина 8192(0x2000).
Извлекается при помощи скрипта:
#!/usr/bin/perl
use File::Temp qw/ tempdir /;
use IO::Handle;
extract("DVBUSBS2102.sys", 0x47c0, 8192, "dvb-usb-dw2102.fw");
Согласно Usbsnoop.log, приемник загружает фирмваре кусками по 64 байта через endpoint 0(как это по русски?).
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 4e 8f 31 8d 32 8a 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
Запись в регистры STV0299 (значение a1 в регистр 00,значение 15 в регистр 01 и значение 00 в регистр 02):
000413: OUT: 000000 ms 006697 ms 40 b2 00 00 00 00 03 00 >>> 2a 00 a1 000414: OUT: 000001 ms 006697 ms 40 b2 00 00 00 00 03 00 >>> 2a 01 15 000415: OUT: 000001 ms 006698 ms 40 b2 00 00 00 00 03 00 >>> 2a 02 00
Чтение из регистров STV0299 (регистр 28, значение 00):
000478: OUT: 000001 ms 006738 ms c0 b5 28 00 00 00 02 00 <<< 00 b5
Запись в PLL через i2c контроллер STV0299, где последовательность c0 42 08 e1 00 есть i2c сообщение для PLL по адресу c0.
000491: OUT: 000001 ms 006748 ms 40 b2 00 00 00 00 03 00 >>> 2a 05 b5 000492: OUT: 000040 ms 006749 ms 40 b2 00 00 00 00 07 00 >>> 2c 05 c0 42 08 e1 00
Питание LNB, где XX=00 для 13v, XX=01 для 18v.
000503: OUT: 000001 ms 038730 ms 40 b2 00 00 00 00 02 00 >>> 30 XX
Дистанционное управление, где байт ff - код клавиши:
000193: OUT: 000075 ms 006766 ms c0 b8 00 00 00 00 02 00 <<< ff b8
Конечно же: http://www.usb.org
FAQ по Usbsnoop: http://mxhaard.free.fr/spca50x/Download/snoopy.pdf
USB сниффер: http://benoit.papillault.free.fr/usbsnoop/sniff-bin-1.8.zip
Парсер для usbsnoop.log: http://www.isely.net/downloads/pvrusb2-mci-20070428a.tar.bz2
Проект Usbreplay (там тоже есть парсер): http://mcentral.de/wiki/index.php/Usbreplay
Командуем:
cat usbsnoop.log | parser.pl > usbsnoopparsed.log
Затем думаем над содержимым usbsnoopparsed.log.=)
Поможет в нашем деле модуль usbmon. С его помощью можно проверить пересылки по USB под Linux'ом. Читайте /usr/src/linux/Documentation/usb/usbmon.txt
(c)Copyright. Igor M. Liplianin. 2007, 2008