Portál AbcLinuxu, 27. dubna 2024 04:24

Technisat AirStar 2

Technické parametry

Karta pro příjem televizního pozemního digitálního vysílání (DVB-T). Postavena na čipu B2C2 FlexCopIIB. Karty Technisat AirStar 2 a SkyStar 2 jsou založeny na stejném čipu a liší se pouze použitým tunerem (frontend). Karta má dobrou citlivost tuneru. Bez problémů přijímám všechny experimentální vysílání v Praze (CRa, CDG a CT) a v Brne (CRa).

Podporuje i připojení k internetu pomocí DVB-T, ale v součastnosti u nás nikdo tuto službu nenabízí, takže nemá smysl se s ní zatím zabývat.

Více na stránkách výrobce.

Identifikace pod Linuxem

# lspci
Network controller: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card (rev 02)

Postup zprovoznění pod Linuxem

Jádra >=2.6.13

Poznámka: ovladace byly prepsany, moduly maji nova jmena - viz linux/Documentation/dvb/README.flexcop

Nastavení jádra

Device drivers ---> Multimedia devices
   <M> Video For Linux
Device drivers ---> Multimedia devices ---> Digital Video Broadcasting Devices
   [*] DVB for Linux
   <M>   DVB Core Support
   <M>     Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters
   <M>       Technisat/B2C2 Air/Sky/Cable2PC PCI
Device drivers ---> I2C Support
   <M> I2C support  
   <M>   I2C device interface
Device drivers ---> I2C Support ---> I2C Algorithms
   <M> I2C bit-banging interfaces
   <M> I2C PCF 8584 interfaces

Nahrání modulů

# modprobe b2c2_flexcop_pci
# lsmod
Module                  Size  Used by
b2c2_flexcop_pci        6488  30
b2c2_flexcop           25036  1 b2c2_flexcop_pci
dvb_core               74920  1 b2c2_flexcop
mt352                   6084  1 b2c2_flexcop
bcm3510                10244  1 b2c2_flexcop
stv0299                10760  1 b2c2_flexcop
nxt2002                 8772  1 b2c2_flexcop
firmware_class          7936  3 b2c2_flexcop,bcm3510,nxt2002
stv0297                 8064  1 b2c2_flexcop
mt312                   7620  1 b2c2_flexcop
i2c_core               17744  7 b2c2_flexcop,mt352,bcm3510,stv0299,nxt2002,stv0297,mt312

# cat /var/log/messages
DVB: registering new adapter (FlexCop Digital TV device).
b2c2-flexcop: MAC address = 00:d0:d7:0c:e9:c2
b2c2-flexcop: found the mt352 at i2c address: 0x0f
DVB: registering frontend 0 (Zarlink MT352 DVB-T)...
b2c2-flexcop: initialization of 'Air2PC/AirStar 2 DVB-T' at the 'PCI' bus controlled by a 'FlexCopIIb' complete

Nyní by již všechno mělo fungovat.

starší Jádra <2.6.10

Kartu jsem zkoušel pouze pod kernely řady 2.6 (konkrétně pod 2.6.7). Pro zprovoznění samotné karty jsou potřeba moduly skystar a mt352. Dále je potřeba bttv, i2c, v4l2. Ovladače jsou obsaženy v projektu dvb-kernel www.linuxtv.org. Pro kartu AirStar 2 je potřeba stáhnout aktuální verzi z CVS. Poslední stable release v. 1.1.1 ještě neobsahuje modul pro frontend. Zdrojáky rozbalíme a skriptem makelinks uděláme linky do zdrojáků běžícího kernelu. Základní ovládací utility jsou v balíku dvb-apps na stejném webu. Opět doporučuji verzi z CVS. Potřeba jsou hlavně programy dvbscan (scan) a tzap.

Nastavení jádra

CONFIG_DVB=y
CONFIG_DVB_CORE=m
CONFIG_DVB_MT352=m
CONFIG_DVB_B2C2_SKYSTAR=m

Překompilujeme a zavedeme do jádra.

Nahrání modulů

Po úspěšné inicializaci karty mám v jádře tyto moduly: mt352, skystar2, bttv, video_buf, i2c_algo_bit, v4l2_common, btcx_risc, i2c_core, dvb_core, crc32. Používám udev, ovladače dvb-kernel podporují udev a po nahrání do jádra vytvoří příslušné nody. Kdo nemá udev, musí použíc skript MAKEDEV-DVB, který vytvoří: /dev/dvb/adapter(0-4)/. Vzhledem k tomu, že ovládací programy dvbscan a tzap nepodporují udev a zařízení předpokládají v /dev/dvb/adapter0/... je potřeba při použití udev udělat simlinky

ln -s /dev/dvb0.dvr0 /dev/dvb/adapter0/dvr0
ln -s /dev/dvb0.demux0 /dev/dvb/adapter0/demux0
ln -s /dev/dvb0.frontend0 dev/dvb/adapter0/frontend0

a nastavit jim příslušná práva.

# cat /var/log/messages
drivers/media/dvb/b2c2/skystar2.c: FlexCopIIB(rev.195) chip found
dvbfe_mt352: Setup for TDTC9251DH01C.
DVB: registering frontend 1 (DVB-T Zarlink MT352 demodulator driver)...

SUSE 9.2 s jádrem 2.6.8

Pro SUSE 9.2 není potřeba frontend kompilovat, je však nutné jej zavést s parametrem:

# modprobe mt352 force_card=2

Jádra 2.6.10 až 2.6.13

Od verze jádra 2.6.10 jsou kompletní ovladače pro karty AirStar/Sky Star 2 přímo v jádře. Jména modulů jsou stejná. Není ani potřeba dělat symlinky v /dev/ vše už funguje jak má, udev vše zařídí.

Podpora Suspend/Resume

Ovladač neumí bohužel kartu korektně probudit po uspání (situace s jádrem 3.1.1) . Tenhle problém lze obejít přidáním jednoduchého skriptu, který ovladače odstraní před uspáním a po probuzení znovu načte:

/etc/pm/sleep.d/99_dvb:

#!/bin/sh

# AirStar driver doesn't wake up properly

PATH=/sbin:/usr/sbin:/bin:/usr/bin

case "${1}" in
        hibernate|suspend)
                rmmod b2c2_flexcop_pci
                rmmod mt352
                ;;
        resume|thaw)
                modprobe b2c2_flexcop_pci
                ;;
esac

Poznámka

Software

Pro otestování můžete použít třeba kaffeine, které je velmi jednoduché na použití. Osobně všechno streamuju pomocí VLC.


Pokud má někdo nějaké další poznatky s provozování karet AirStar 2/SkyStar 2, nechť je prosím doplní. Hlavně, kdyby někdo věděl o nějaké pěkné DVB aplikaci. Zkoušel jsem MythTV, ale je to příliš komplikovaný program a neumožňuje ručně zadávat kanály a programy, vše si musí stáhnout z nějakého pofidérního serveru.


Krome zminenych prehravacu mohu doporucit po mnohych experimentech s mplayerem XINE, zvlaste pro ty, co pouzivaji Gnome. Nepotrebujete dotahovat spoustu knihoven z KDE, staci channels.conf do ~/.xine/ Prepinani programu mysi, nahravani do TS take bez problemu.


Také se konečně objevily přehrávací aplikace. Testoval jsem KaxTV a Klear www.klear.org. Obě ve stadiu alpha/beta vývoje, ale jsou již použitelné, což se zatím o XawTv 4 zatím říct nedá.

Ladění

Nyní můžeme zkusít naladit naskenovat co je ve vzduchu. Použijeme utilitu dvbscan, ta je pouze kanálový scanner, neumí skenovat všechny frekvence. Musíme jí předat initial tunning data. Můj soubor praha vypadá takhle:

T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE # 25.kanal CRa
T 674000000 8MHz 2/3 NONE QAM64 8k 1/16 NONE # 46.kanal Czech Digital Group
T 818000000 8MHz 2/3 NONE QAM64 8k 1/16 NONE # 64.kanal Telecom

Skenování provedeme tímto příkazem: dvbscan Praha >> channels.conf Pokud scanování proběhne úspěšně, tak ve výstupním souboru dostaneme seznam nalezených programů v jednotlivých multiplexech. Pro přehrávání používám mplayer, protože se mi zatím nepodařilo najít pořádnou DVB aplikaci. Soubor channels.conf dejte do $HOME/.mplayer/ a přehrávání by mělo jít spustit např. příkazem: mplayer -vf pp=md -framedrop -autosync 1 -menu -cache 1024 dvb://"jmeno programu"; Používám mplayer z CVS, verze 1.0pre5 nespolupracuje s CVS verzí dvb-kernel.

SkyStar2

Kartu SkyStar 2 lze rozchodit stejným postupem, jen místo modulu mt352 je potřeba použít stv0299 a místo utility tzap utilitu szap. Initial tunning data pro družici Astra-19.2E jsou součástí dvb-apps.


Pod 2.6.12 se modul jmenuje skystar2.

Poznámka ohledně konektorů

Karta má dva konektory (samce a samici) a měla by být průchozí. Standardně se anténa zapojuje do horního konektoru (samice). Pokud vám ale karta nechce nic naladit (a to i když jiné dvb-t zařízení na stejné anténě bez problému funguje), zkuste anténu zapojit do druhého konektoru. Vyžaduje to sice buď nějakou přechodku nebo na vyzkoušení drátkovu metodu, ale občas to pomůže. Naprosto netuším, proč to tak je, ale mě to pomohlo :-)
ad Konektory: Karta je průchozí. Pokud karta dela popsane veci, asi ma aktivni napajeni anteny (oznaceno zlutou samolepkou na karte) a nerozumi si tedy rozvodem k antene (pry vadi stejnosmerna složka napeti na antennim rozvodu). Reseni (filtr, kondenzator,...) je k nalezeni v diskuzi na www.tvfreak.cz

Dálkové ovládání

Moduly do jádra

Přijímač se zasune do sériového portu (alespoň u PCI verze karty). Pro zprovoznění jsem použil lirc. Ten se skládá z démona, který se pouští při startu a modulů pro jádro. Zde stačí zkompilovat moduly lirc_serial a lirc_dev (k tomu potřebujete hlavičkové soubory a konfuguraci jádra, případně přímo zdrojové kódy přeloženého jádra; pokud používáte distribuční jádro, pak to prvé obvykle najdete také jako balíček ve Vaší distribuci - v debianu například linux-headers-verze). Kompilace se provede např:

./configure --with-kerneldir=/usr/src/linux-headers-$(uname -r) --with-driver=serial
cp drivers/lirc_serial/lirc_serial.ko drivers/lirc_dev/lirc_dev.ko /lib/modules/$(uname -r)/misc/
depmod $(uname -r)

Pokud máte zaveden modul serial (či podporu RS232 v jádře) musí se vždy před zavedením modulu lirc_serial provádět setserial /dev/ttyS0 uart none. Aby se tak dělo vždy při startu, je možné přidat /dev/ttyS0 uart none do /etc/serial.conf (Název tohoto souboru se může ve Vaší distribuci lišit)

Potom modprobe lirc_serial (doporučuji do nějakého skriptu). Například v Debianu vložit

MODULES="lirc_serial"
do /etc/lirc/hardware.conf, a modul se zavede vždy při startu lirc

Definice signálů z dálkového ovladače

Pak potřebujete konfigurační soubor s definicí signálů z dálkového ovladače, v mém případě je to TTS35AI a najdete ho na lirc.org. Ten uložte jako /etc/lircd.conf nebo /etc/lirc/lircd.conf (podle distribuce). Nastavte, aby se démon spouštěl při startu. Pak zbývá nastavit ještě jednotlivé aplikace.

Pokud se vám zdá divné, proč v tomto souboru nejsou definována tři neoznačená tlačítka dole, tak je to proto, že nevydávají žádný signál. Tlačítka Volume+, Volume-, Prog+ a Prog- vydávají stejný signál jako Right, Left, Up a Down. Naštěstí lze ovladač jednoduše upgradovat tak, aby tlačítka Volume+, Volume-, Prog+ a Prog- posílala jiné kódy než Right, Left, Up a Down. Stačí otevřít dálkové ovládání(při troše umu to lze hrubou silou), uvnitř najdete jednoduchý plošný spoj s jedním jednoduše přepájitelným rezistorem. Ten je připájen do jedné ze dvou předpřipravených děr. Odpájejte, připájejte do druhé a ovladač bude rozeznávat zvlášť kódy všech tlačítek (přímo na spoji je popis zdířek a modelů DO, jak je které využívají). Je nutné znovu nascannovat vstupy pro lirc. Ovladač takto funguje bezproblémově s tím, že místo spodních 3 mrtvých tlačítek bude mrtvá celá poslední řada, tedy tlačítka 4 (a to se vyplatí).

Ovládání aplikací

V zásadě máme dvě možnosti. Buď využít konfigurační soubory ~/.lircrc a /etc/lirc/lircrc, z nichž mnoho je ke stažení na internetu (včetně třeba ovládání squid) a program irexec z lirc (pro roota je spuštěn automaticky, je-li nalezen soubor /etc/lircrc, pro uživatele se musí ručně nastavit spouštění irexec -d),

nebo v KDE (třeba pro ovládání kaffeine) nainstalovat kdelirc a spustit a nakonfigurovat irkick.

Emulace myši pomocí lirc

Definice událostí vložte do souboru /etc/lirc/lircmd.conf, např:

PROTOCOL IntelliMouse
#PROTOCOL MouseSystems

# ACCELERATOR start max multiplier

ACCELERATOR 2 20 1.5

DEACTIVATE * TV/Radio
DEACTIVATE * Power

MOVE_N  * 2
MOVE_NE * 3
MOVE_E  * 6
MOVE_SE * 9
MOVE_S  * 8
MOVE_SW * 7
MOVE_W  * 4
MOVE_NW * 1
MOVE_N  * Up
MOVE_E  * Right
MOVE_S  * Down
MOVE_W  * Left
MOVE_IN * Red
MOVE_OUT * Green

BUTTON1_TOGGLE * -/--
BUTTON2_TOGGLE * 0
BUTTON3_TOGGLE * A/B

BUTTON1_CLICK * 5
BUTTON1_CLICK * OK
BUTTON1_CLICK * SFI
BUTTON2_CLICK * Exit
BUTTON3_CLICK * INFO

# BUTTONx_CLICK, BUTTONx_UP, BUTTONx_DOWN are also possible

ACTIVATE * Menu

Misto * muze byt jmeno DO, pod kterym je definovano v /etc/lirc/lircd.conf Activate je na konci, aby kdyby pro stejne tlacitko byla i nejaka akce mysi, aby se neprovedla pri aktivaci

Pak je nutné tuto myš nastavit aby je používalo Xorg. Pridejte do xorg.conf neco jako (prvni je default mys, ktera je dnes v xorg.conf nepovinna, ale protoze chceme obě používat obě, musíme mít název):

Section "InputDevice"
	Identifier	"Configured Mouse"
	Driver		"mouse"
	Option		"Emulate3Buttons"	"true"
	Option		"CorePointer"		"true"
EndSection

Section "InputDevice"
	Identifier	"LIRC_Remote"
	Driver		"mouse"
	Option		"Device"		"/dev/lircm"
	Option		"Protocol"		"IntelliMouse"
	Option		"ZAxisMapping"		"4 5"
EndSection

Section "ServerLayout"
	Identifier	"Default Layout"
	Screen		"Default Screen"
	InputDevice	"Configured Mouse"
	InputDevice	"LIRC_Remote"
	InputDevice	"Generic Keyboard"
EndSection

Pokud používáte současně ovládání aplikací, pak je dobré, aby tlačítko, které aktivuje myš přeplo ovládání aplikací (irkick nebo irexec) do režimu, kde nejsou pro stejná tlačítka nastaveny nějaké akce.

Obrázky

Technisat AirStar 2, obrázek 1 Technisat AirStar 2, obrázek 2

Dokument vytvořil: SAM:, 31.8.2004 12:15 | Poslední úprava: Jindřich Makovička, 12.11.2011 12:54 | Další přispěvatelé: neaktivni, watslaw | Historie změn | Zobrazeno: 8986×

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.