Пляски с бубном: TechnoTrend Budget S-1102

Биты и байтыЭлектричество в бытуУмный дом → Пляски с бубном: TechnoTrend Budget S-1102

Пляски с бубном: 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)...

Вот собственно и все. После этих манипуляций карта должна работать без проблем.