Uživatelské nástroje

Nástroje pro tento web


Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

cs:howto:dvb [2016/09/20 13:02] (aktuální)
Řádek 1: Řádek 1:
 +====== DVB na Turrisu ======
  
 +Od verze Turris OS 2.5 je možné do jádra systému Turris OS doinstalovat moduly, které přidávají podporu pro některé USB DVB tunery. Díky tomu lze prostřednictvím routeru Turris sdílet v síti stream televizního nebo rádiového vysílání šířeného prostřednictvím DVB-T (terestriální vysílání),​ DVB-S (satelitní vysílání) nebo DVB-C (kabelová televize).
 +
 +Standardní jádro systému Linux obsahuje podporu pro široké množství televizních tunerů. Velká část z nich však je poměrně exotická a proto Turris OS obsahuje podporu pouze pro několik nejběžnějších čipsetů a tunerů, které je možné na trhu sehnat. V případě, že pro Váš tuner podpora není, můžete požádat vývojáře o vytvoření balíčků pro potřebné kernelové moduly podle postupu uvedeného níže.
 +
 +===== Instalace modulů =====
 +
 +Řekněme, že jste si koupili nebo našli v šuplíku zařízení,​ o jehož "​vnitřnostech"​ nemáte ponětí a nevíte, co bude k běhu potřebovat. Nejsnažší to bude v případě, kdy už někdo toto zařízení používá, v tom případě pouze nainstalujte moduly pro toto zařízení,​ případně ještě nahrajte firmware pro zařízení do složky ''/​lib/​firmware/''​ na routeru a můžete hned pokračovat instalací softwaru Tvheadend.
 +
 +<WRAP tip>
 +Seznam ověřených zařízení a diskuze o případných nástrahách při jejich instalaci je k nalezení [[https://​www.turris.cz/​forum/​topic_show.pl?​tid=842|v příšlušném tématu na diskuzním fóru]].
 +</​WRAP>​
 +
 +Horší to bude v případě, kdy postup instalace pro Vámi vlastněné zařízení ještě nikdo nezveřejnil. V tom případě jsou dvě možnosti -- buď se pokusíte určit moduly požadované zařízením z identifikátoru zařízení USB VID a PID, které získáte z výstupu příkazu ''​lsusb''​ a vyhledáváním na internetu určíte, o jaké zařízení se jedná, nebo -- snadněji -- zkusíte připojit zařízení k desktopovému PC s OS Linux a zjistíte, jaké moduly se zavedou (většina moderních systémů se chová tak, že si moduly načtou, pokud jsou potřeba). Zajímat nás bude, co se změní ve výstupu příkazu ''​lsmod''​ před prvním připojením zařízení po restartu systému a po něm, a výstup příkazu ''​dmesg''​. Pro příklad uvádíme výstup u tuneru bez zjevné vnější identifikace zakoupeného přes internet od čínského prodejce.
 +
 +**Výstup ''​dmesg''​**:​
 +<​file>​
 +[29452.509137] usb 3-1: new high-speed USB device number 2 using xhci_hcd
 +[29452.538286] usb 3-1: New USB device found, idVendor=0bda,​ idProduct=2838
 +[29452.538291] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
 +[29452.538293] usb 3-1: Product: RTL2838UHIDIR
 +[29452.538296] usb 3-1: Manufacturer:​ Realtek
 +[29452.538298] usb 3-1: SerialNumber:​ 00000001
 +[29452.563808] usb 3-1: dvb_usb_v2: found a '​Realtek RTL2832U reference design'​ in warm state
 +[29452.625545] usb 3-1: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
 +[29452.625558] DVB: registering new adapter (Realtek RTL2832U reference design)
 +[29452.634692] usb 3-1: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
 +[29452.638824] r820t 6-001a: creating new instance
 +[29452.650264] r820t 6-001a: Rafael Micro r820t successfully identified
 +[29452.656745] Registered IR keymap rc-empty
 +[29452.656827] input: Realtek RTL2832U reference design as /​devices/​pci0000:​00/​0000:​00:​14.0/​usb3/​3-1/​rc/​rc0/​input19
 +[29452.656955] rc0: Realtek RTL2832U reference design as /​devices/​pci0000:​00/​0000:​00:​14.0/​usb3/​3-1/​rc/​rc0
 +[29452.660179] IR NEC protocol handler initialized
 +[29452.660257] IR RC5(x) protocol handler initialized
 +[29452.662419] IR MCE Keyboard/​mouse protocol handler initialized
 +[29452.663260] input: MCE IR Keyboard/​Mouse (dvb_usb_rtl28xxu) as /​devices/​virtual/​input/​input20
 +[29452.663395] usb 3-1: dvb_usb_v2: schedule remote query interval to 400 msecs
 +[29452.665567] IR Sony protocol handler initialized
 +[29452.666416] IR SANYO protocol handler initialized
 +[29452.666664] lirc_dev: IR Remote Control driver registered, major 250 
 +[29452.667004] IR RC6 protocol handler initialized
 +[29452.667973] rc rc0: lirc_dev: driver ir-lirc-codec (dvb_usb_rtl28xxu) registered at minor = 0
 +[29452.667976] IR LIRC bridge handler initialized
 +[29452.668091] IR JVC protocol handler initialized
 +[29452.675599] usb 3-1: dvb_usb_v2: '​Realtek RTL2832U reference design'​ successfully initialized and connected
 +[29452.675659] usbcore: registered new interface driver dvb_usb_rtl28xxu
 +</​file>​
 +
 +**Výstup ''​lsmod''​**:​
 +<​file>​
 +ir_jvc_decoder ​        ​12751 ​ 0 
 +ir_lirc_codec ​         13021  0 
 +ir_rc6_decoder ​        ​12874 ​ 0 
 +lirc_dev ​              ​19980 ​ 1 ir_lirc_codec
 +ir_sanyo_decoder ​      ​12839 ​ 0 
 +ir_sony_decoder ​       12713  0 
 +ir_mce_kbd_decoder ​    ​13214 ​ 0 
 +ir_rc5_decoder ​        ​12710 ​ 0 
 +ir_nec_decoder ​        ​12915 ​ 0 
 +r820t                  26664  1 
 +rtl2832 ​               19240  1 
 +dvb_usb_rtl28xxu ​      ​30077 ​ 0 
 +rtl2830 ​               18804  1 dvb_usb_rtl28xxu
 +dvb_usb_v2 ​            ​36018 ​ 1 dvb_usb_rtl28xxu
 +dvb_core ​             121659 ​ 3 rtl2830,​rtl2832,​dvb_usb_v2
 +rc_core ​               28124  12 lirc_dev,​ir_lirc_codec,​dvb_usb_rtl28xxu,​ir_rc5_decoder,​ir_nec_decoder,​ir_sony_decoder,​ir_mce_kbd_decoder,​ir_jvc_decoder,​dvb_usb_v2,​ir_rc6_decoder,​ir_sanyo_decoder
 +</​file>​
 +
 +Vidíme, že se zavádí větší množství modulů začínajících ''​ir_''​ a modul ''​lirc_dev''​. Ty však pro Turris OS kompilovány nejsou (jedná se o podporu dálkového ovládání,​ které nemá na routeru využití). Z výstupu ''​dmesg''​ je však patrné, že klíčové jsou zde ovladače pro čipset RTL2832 a tuner R820T. Do routeru si tedy doinstalujte balíčky, které zprostředkovávají moduly rtl2832, dvb_usb_rtl28xxu a r820t:
 +
 + opkg install kmod-dvb-rtl2832 kmod-dvb-usb-rtl28xxu kmod-media-tuner-r820t
 +
 +Zbylé moduly budou staženy jako závislosti těchto balíčků. Nyní by již měl router být schopen zařízení detekovat a pracovat s ním -- to ověříte zapojením tuneru do USB portu routeru, načež by se ve výstupu příkazu ''​dmesg''​ na routeru měl objevit podobný výstup jako na počítači v ukázce výše a zároveň by se mělo vytvořit zařízení v adresáři ''/​dev/​dvb/''​. V případě, že k tomu tak nedojde, je potřeba z výstupu ''​dmesg''​ identifikovat chybu a doinstalovat potřebné moduly. Některé tunery také potřebují firmware ve složce ''/​lib/​firmware/''​ -- pak je nutné ho odněkud získat (buď z PC, na kterém tuner funguje, nebo stažením z internetu) -- po odpojení a připojení tuneru se firmware zavede a tuner by tak měl být již funkční.
 +
 +===== Instalace softwaru Tvheadend =====
 +
 +Pokud se Vám povedlo nainstalovat všechny ovladače a v systému máte dostupné DVB zařízení,​ zbývá nainstalovat software pro jeho ovládání. Pro Linux existuje několik řešení, my jsme jako podporovanou metodu vybrali aplikaci Tvheadend, která na jednu stranu umožňuje nastavit i komplexní konfiguraci,​ ale přesto je uživatelsky přívětivá a lze spravovat prostřednictvím intuitivního webového rozhraní. Pomocí protokolu HTSP je také možné získat ze serveru seznam kanálů a zobrazovat ho například [[https://​tvheadend.org/​boards/​4/​topics/​8509|v aplikaci VLC]]. Aplikace Tvheadend lze nainstalovat prostřednictvím rozhraní Foris -- na záložce ''​Updater''​ vyberte ze seznamu položku ''​Televizní tuner''​ -- krátce po uložení se aplikace nainstaluje a je možné ji používat.
 +
 +Po instalaci je možné upravit několik parametrů v konfiguračním skriptu ''/​etc/​config/​tvheadend''​. Aplikaci je ale možné spustit i ve výchozí konfigurací -- spuštění provedete zadáním ''/​etc/​init.d/​tvheadend start''​. Pokud chcete, aby se aplikace Tvheadend spouštěla i po startu systému, docílíte toho spuštěním ''/​etc/​init.d/​tvheadend enable''​. Obojí je pak možné provést i prostřednictvím rozhraní LuCI na záložce //Systém -> Po spuštění//​. Po spuštění by mělo být ve výchozím nastavení na portu 9981 a IP adrese routeru (např. tedy http://​192.168.1.1:​9981/​) dostupné webové rozhraní.
 +
 +Ve výchozím stavu je administrace aplikace dostupná s libovolným jménem a heslem. Proto zamiřte nejprve na záložku //​Configuration -> Access Entries// a nastavte přístupová práva, která odpovídají Vašim požadavkům. Lze vytvořit například uživatele s právy měnit konfiguraci,​ který se bude přihlašovat heslem, a uživatele, u kterého heslo nebude vyžadováno (zadáním znaku ''​*''​ namísto hesla, případně i uživatelského jména) a bude mít pouze práva pro streamování a zobrazení EPG.
 +
 +V dalším kroku je potřeba přidat síť, kterou bude tuner používat. To provedete na záložce //​Configuration ->  DVB Inputs -> Networks// kliknutím na tlačítko ''​Add''​. Pro DVB-T je situace nejsnažší -- stačí v prvním okně vybrat tento typ sítě a v dalším jen zadat jméno (například "CZ DVB-T"​) a u položky //​Pre-defined Muxes// vybrat seznam českých multiplexů "Czech Republic: cz-All"​ a potvrdit stiskem ''​Create''​. V případě jiných sítí (např. DVB-C) je možné, že bude následně nutné na záložce //Muxes// ještě zadat seznam multiplexů,​ které se mají ladit.
 +
 +V předposledním kroku na záložce //TV adapters// vyberete náš adaptér, zatrhnete u něj volbu ''​Enabled''​ a v seznamu //​Networks//​ vyberete síť, kterou jsme vytvořili v minulém kroku. Po uložení se vráťte na záložku //​Networks//​ a kliknutím na síť a tlačítko ''​Force Scan''​ naplánujte vyhledávání kanálů.
 +
 +Poté, co dojde k nalezení dostupných kanálů (to může trvat několik minut -- průběh lze sledovat na záložce //Status// nebo u seznamu multiplexů),​ zbývá přiřadit nalezené služby k dostupným kanálům -- k tomu slouží tlačítko ''​Map All''​ (případně ''​Map Selected'',​ pokud vyberete jen některé kanály) na záložce //​Services//​. Následně je již možné tyto kanály přehrávat,​ krátce po jejich přiřazení by také mělo dojít ke stažení seznamu programů a na záložce //​Electronic Program Guide// by se měl začít zobrazovat seznam vysílaných pořadů.
 +
 +===== Hlášení nepodporovaných zařízení =====
 +
 +Pokud jste ovladače pro Vaše zařízení nenašli, nic není ztraceno. Stačí nahlásit vývojářům týmu Turris [[https://​www.turris.cz/​forum/​topic_show.pl?​tid=842|prostřednictvím fóra]] nebo na adrese tech.support@turris.cz,​ o jaké zařízení se jedná a bude-li to možné, vytvoří Vám balíčky pro potřebné kernelové moduly.
 +
 +Pro úspěšné přidání podpory pro Vaše zařízení je potřeba uvést co nejpřešnější informace o hardwaru, který je v zařízení přítomen. Lze zde aplikovat stejný postup jako při hledání modulů pomocí desktopové distribuce. Stejně tak může napovědět výstup příkazu ''​lsusb''​ na routeru. Poslední možností je domluvit se na zapůjčení zařízení členům týmu Turris.