Multimediální centrum XBMC, to vyvíjí jedna skupina našenců. Druhá skupina nadšenců pak bere vždy aktuální XBMC a „balí“ ho do minimálního operačního systému, který stvořili jen pro něj. Výsledkem je samostatně fungující celek, OpenELEC.

Nechci zde popisovat, co vše OpenELEC je a co umí. Pokud to mám shrnout velmi krátce, tak si představte počítač, který zapnete, za 20 vteřin naběhne obrazovka XBMC a to je vše. XBMC nejde „zavřít“, jen PC vypnout (uspat). Chová se jako jednoúčelové zařízení a je díky tomu docela blbuvzdorné. Klávesnici ani myš k takovému PC připojenou nemáte. Pokud už něco potřebujete dělat na systémové úrovni (něco na příkazovém řádku), tak to probíhá pouze vzdáleně, tedy např. z notebooku přes SSH.

…spíš se zde chci zaměřit na zádrhely, se kterými jsem se při používání setkal. Postupně to zde budu rozšiřovat podle vašich ohlasů.

Zvuk do dvou zařízení současně

U TV/HTPC používám kromě běžného repra také bezdrátová sluchátka. Bohužel můj AV receiver nemá Line-out výstup, pouze přední sluchátkový konektor. Mohlo by se zdát, že ten by použít šel, ale on při připojení sluchátek automaticky vypne reproduktory. Odpojovat/připojovat trčící drát zepředu je nesmysl. Příplatek 6000,- za vyšší model mě jaksi nezaujal, takže jsem sluchátka musel zapojit přímo do PC. To funguje samozřejmě v pořádku, ale zase přepínat pořád mezi výstupem do receiveru (HDMI) a výstupem do vysílače (Analog)? To vás hned přejde. Nejlépe aby se nemuselo přepínat vůbec…
Podobná situace nastane, když žádný AV receiver nemáte a nepoužíváte. Nevadí, prostě se sluchátka zapojí do PC.

Ovšem tady nastane problém (a na Windows ještě větší). V XBMC normálně nenastavíte více zařízení jako výstupní. OpenELEC je však založený na linuxu, takže se to dá vykutit.

  1. pomocí SSH otevřete /storage/.config/
  2. vytvořte zde soubor asound.conf s následujícím obsahem
  3. v XBMC vejděte do
    # asound.conf for MSI E350IA-E45 / AMD Brazos
    
    pcm.!default {
        type plug
        slave {
            pcm oboje
        }
    }
    
    pcm.oboje {
        type route
        slave {
            pcm multi
            channels 4
        }
        ttable.0.0 1.0
        ttable.1.1 1.0
        ttable.0.2 1.0
        ttable.1.3 1.0
    }
    
    pcm.multi {
        type multi
        slaves.a {
            pcm tv
            channels 2
        }
        slaves.b {
            pcm receiver
            channels 2
        }
        bindings.0.slave a
        bindings.0.channel 0
        bindings.1.slave a
        bindings.1.channel 1
        bindings.2.slave b
        bindings.2.channel 0
        bindings.3.slave b
        bindings.3.channel 1
    }
    
    pcm.receiver {
        type hw
        card 0
        device 3
        channels 2
    }
    
    pcm.tv {
        type hw
        card 1
        device 0
        channels 2
    }

Uvedený soubor asound.conf je funkční na testované desce MSI E350IA-E45. Pro jiné desky (třeba s IONem) to bude podobné, stačí upravit hodnoty card a device podle výpisu příkazu aplay -l

Když už jsme to nakousli, jaká je situace na Windows? Windows Vista, Windows 7 používají nové zvukové rozhraní, a tam prostě možnost výstupu do více zvukovek neimplementovali. Nadává na to spousta lidí, ale moc se s tím dělat nedá. Zvlášť když v takových XP to šlo bez problému…

Dualboot

OpenELEC kvůli celkovému zjednodušení oficiálně nepodporuje více operačních systémů na jednom disku/paměťovce. Technicky to však není problém. Pro hrátky ale doporučuju spíš používat USB flash disk/paměťovku nastavenou tak, že při vložení PC nabootuje z ní, a při vyjmutí pak z interního disku s Windows či jiným OS. Dá vám to navíc větší míru flexibility (jednodušší záloha apod). Zkoušel jsem OpenELEC i na SSD a nějaký rozdíl oproti středně rychlé paměťovce tam není.

http://forum.xbmc.org/showthread.php?t=114846
http://openelec.tv/forum/13-general-discussion/…
Dual Boot

Zprovoznění TV sekce

Televizní funkcionalita zatím není v hlavní vývojové větvi, proto je nutným předpokladem stahovat PVR větev. XBMC přímo od hlavního vývojáře Opdenkamp je zde, OpenELEC pak zde nebo zde.

Čeština v TV sekci

XBMC je sice kompletně v češtině, ale TV sekce je teprv ve vývoji takže stále v angličtině. Naneštěstí anglická sekce uprostřed českého rozhraní je jak pěst na oko, takže jsem se v lednu odhodlal, že to celé přeložím. UPDATE: Již netřeba stahovat odsud, můj překlad byl právě sloučen s oficiální PVR větví! 8-)

TVHeadend: zprovoznění EPG

TVHeadend mi v základu přijímá EPG jen od některých pozemních stanic. Zda to je problém TVHeadend, nebo ty stanice prostě žádné údaje nevysílají, jsem už neřešil. Informaci o vysílaných programech totiž lze dodat i alternativní cestou – přes internet – průběžným stahováním XMLTV souboru (klasické XML s předem danou strukturou, kterému backend rozumí).

  1. v XBMC otevřete nastavení backendu: nastavení – doplňky – htstvheadend – konfigurace
  2. XMLTV nastavte web, a jako zdroj televize.sh.cvut.cz/xmltv/all.xml
  3. ujistěte se, že ve webadminovi TVHeadendu je v záložce Configuration – XMLTV tato funkce povolena

TVHeadend: příjem satelitních programů

Satelitní programy, ať už placené nebo neplacené, jsou obvykle šifrované. Např. ty české jsou sice neplacené, ale také šifrované, protože práva na vysílání mají pouze pro ČR – nelze je zpřístupnit komukoliv po celém kontinentu. Řeší se to tedy zašifrováním všech programů a prodejem karet nutných k rozšifrování pouze obyvatelům ČR.

Obecně Linux přehrávače a backendy (tzn. včetně TVHeadend) se o dešifrování nestarají a ani ho vůbec neumí. Očekává se, že o dešifrování se stará speciální program, který zároveň vytvoří virtuální televizní adaptér s již dešifrovanými kanály. V programech se pak stačí odkazovat na tento virtuální adaptér.
Více informací je případně na tvpc.cz a rootu.

U pozemního vysílání se řeší dešifrování stejně, v ČR se ale zatím žádný placený ani šifrovaný kanál nevysílá.

Ostatní

Některé příkazy, které se mi hodily. Význam je zřejmě jasný, případě dohledatelný. Částečně jsem si to sem napsal i pro sebe, abych je nemusel opakovaně hledat v budoucnu.
ssh -X -l root 192.168.1.101 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no
killall -SEGV xbmc.bin
rm -rf ./*
cp -r ~/ThisFolder/* ~/ThatFolder/
sudo mount -t cifs //192.168.1.101/Filmoteka /mnt/server -o username=xxx,password=yyy