Пляски с бубном: TechnoTrend Budget S-1102
Перед Новым годом я стал счастливым обладателем бюджетной DVB-S карты
S-1102, произведенной компанией TechnoTrend и купленной на DVBShop. Все бы
ничего, но после ее установки в машину с Kubuntu 8.04, система ее не
распознала. То есть в выводе lspci карта присутствовала, но dmesg о загрузке
необходимых драйверов упрямо молчал. После
общения с VDR-гуру оказалось, что у
моей карты неправильный subsystem ID:
02:09.0
Multimedia controller: Philips Semiconductors SAA7146 (rev 01)
Subsystem: Unknown device 00a1:a1a0
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B+ DisINTx-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR-
Latency: 123 (3750ns min, 9500ns max)
Interrupt: pin A routed to IRQ 11
Region 0: Memory at c4001000 (32-bit, non-prefetchable) [size=512]
По совету все тех же VDR-гуру решил изменить его программой fix_eeprom. Для
этого ее нужно было собрать в виде модуля ядра. Самым простым путем оказалось
скачать v4l DVB драйвера
hg clone http://linuxtv.org/hg/v4l-dvb
затем скопировать fix_eeprom.c в drivers/media/dvb/ttpci/
CD linux/drivers/media/dvb/ttpci/
wget http://www.escape-edv.de/endriss/dvb/fix_eeprom.c
и пропатчить Makefile там же, добавив после строки
obj-$(CONFIG_DVB_AV7110) += dvb-ttpci.o
ttpci-eeprom.o
это
obj-m += fix_eeprom.o
Нелишним так же будет наложение патча для приема потоков с большими символьными скоростями.
Далее запускаем make и копируем собранный модуль в /lib/modules/$(uname -r)/kernel/drivers/media/dvb/ttpci/.
Запуск процесса исправления subsystem ID выглядит следующим образом:
modprobe fix_eeprom.ko old=0x00a1a1a0
new=0x13c2100f
После этого перегружаемся и видим, что карта распознается, а драйвера
загружаются:
[ 19.051357] saa7146: register extension
'budget_ci dvb'.
[
19.051357] DVB: registering new adapter (TT-Budget/WinTV-NOVA-CI PCI)
[ 19.094722] input: Budget-CI dvb ir receiver saa7146 (0) as
/class/input/input5
[ 19.414451] DVB: registering frontend 0 (ST STV0299 DVB-S)...
Вот собственно и все. После этих манипуляций карта должна работать без проблем.