Archive for the ‘HomeTV a NAS’ Category

Synology jako databáze pro Kodi

Neděle, Září 11th, 2016

Tuto možnost pravděpodobně nevyužijete, pokud používáte XBMC/Kodi na jednom počítači, ale jsou dvě místa, kde se taková možnost hodí. Jednou je, když máte v rodině víc počítačů, na kterém Kodi používáte – potom máte synchronizované filmy a seriály, které už máte shlédnuté a také se vám na jednom místě ukládají náhledy. A potom mi přijde smysluplné, když máte Kodi na malině nebo jiné krabičce, aby databáze běžela na serveru, zvlášť, když jsou obě zařízení na gigabitu.

První krok se hodí i pro samotné použití Synology jako fileserveru pro Kodi – nastavit sdílené složky. Proto na ovládacím panelu Sdílená složka vyberte složku, kterou má Kodi vidět (třeba video) a zvolte upravit. Zvolte záložku Oprávnění NFS (network file system) a dejte Vytvořit.

V části Název hostitele zadejte buď adresu počítače/krabičky s Kodi (třeba 192.168.1.10) nebo, pokud chcete NFS povolit pro celou domácí síť, použijte masku (třeba 192.168.1.*). V části „squash“ vyberte „Mapovat všechny uživatele na admin“ – je to poslední možnost a bez ní vám to nebude fungovat. Následně zaškrtněte všechny možnosti dole a klepněte na OK.

screenshot-2016-09-11-23-23-41

Takto nastavte všechny sdílené složky.

Já jsem udělal ještě jednu věc – vytvořil jsem si uživatele „Malina“, aby všechny přístupy z Kodi byly přes tohoto uživatele. Potom je třeba tomuto uživateli v případě sídlených složek udělit práva na záložce Oprávnění.

Vytvoření databáze a nastavení oprávnění

Pro nastavení databáze na Synology potřebujete nainstalovat dva balíčky – samotnou databázi MariaDB a webové rozhraní phpMyAdmin, který si ještě doinstaluje PHP pro svůj běh.

Následně se přihlaste do databáze přes phpMyAdmin (admin heslo je ve výchozím stavu prázdné, případně se dá resetovat přes nastavení MariaDB) a jako první nastavte oprávnění na záložce Privilegies (Uživatelské účty).

Jednak si zde nastavte nové admin heslo, aby nezůstalo prázdné, jednak přidejte nového uživatele – já jsem opět použil „Malina“ a zadal heslo. V části název počítače můžete zadat IP adresu Kodi, ale není to nutné.

Důležitý bod – uprostřed je nastavení oprávnění, kde zašrktněte „Zaškrtnout vše“ (Check All) a máte hotovo, úplně dole potvrďte vytvoření. Nic dalšího už v databázi dělat nemusíte, vše si Kodi nakonfiguruje samo.

Připojení k databázi

Nyní nastává trochu wibbly wobbly, timey wimey stuff – musíte vytvořit soubor a ten nahrát na vhodné místo. Soubor se jmenuje advacedsettings.xml a vypadá takto:

<advancedsettings>
 <videodatabase>
  <type>mysql</type>
       <host>192.168.1.10</host>
       <port>3306</port>
       <user>Malina</user>
       <pass>******</pass>
    </videodatabase>
    <musicdatabase>
       <type>mysql</type>
       <host>192.168.1.10</host>
       <port>3306</port>
       <user>Malina</user>
       <pass>*****</pass>
    </musicdatabase>
 <videolibrary>
 <importwatchedstate>true</importwatchedstate>
 <importresumepoint>true</importresumepoint>
 </videolibrary>
 <pathsubstitution>
 <substitute>
 <from>special://masterprofile/Thumbnails/</from>
 <to>nfs://192.168.1.10/volume1/video/Thumbnails/</to>
 </substitute>
 </pathsubstitution>
</advancedsettings>

Uzly <videodatabase> a <musicdatabase> říkáte, kde se nachází databáze <host>, jaký je uživatel <user> a jaké má heslo <pass>. V části <videolibrary> říkáte, jestli chcete do knihovny přenést informaci o shlédnutých a rozkoukaných videích.

A konečně <substitute> říká, že náhledové obrázky si má kody ukládat na síťovém serveru – k tomu účelu je dobré na serveru vyhradit jednu složku – například jak mám já na Kodi ve složce video složka Thumbnails.

Zbývá jediné – takovýto soubor nahrát do Kodi a restartovat. Já jsem si do Kodi doplnil pár dalších řádek:

 <video>
   <excludefromscan>
     <regexp>@eaDir</regexp>
     <regexp>@EADIR</regexp>
   </excludefromscan>
   <excludefromlisting>
     <regexp>@eaDir</regexp>
     <regexp>@EADIR</regexp>
   </excludefromlisting>
 </video>

Protože Synology vytváří řadu neviditelných složek, nechcete, aby je Kodi procházelo, ale ignorovalo – takto je můžete snadno vynechat z vyhledávání. Můžete sem doplnit i další pravidla.

Druhý doplněk je:

<network>
   <buffermode>1</buffermode>
</network>

Tímto říkáte, jak má Kodi bufferovat provoz ze sítě. K tomuto nastavení jsem dospěl, když Kodi při přehrávání hudby mělo mikrodropouty a já ho takto donutil všechno cachovat.

Výsledné xml vypadá takto:

<advancedsettings>
 <video>
 <excludefromscan>
 <regexp>@eaDir</regexp>
 <regexp>@EADIR</regexp>
 </excludefromscan>
 <excludefromlisting>
 <regexp>@eaDir</regexp>
 <regexp>@EADIR</regexp>
 </excludefromlisting>
 </video>
 <audio>
 <excludefromscan>
 <regexp>@eaDir</regexp>
 <regexp>@EADIR</regexp>
 </excludefromscan>
 <excludefromlisting>
 <regexp>@eaDir</regexp>
 <regexp>@EADIR</regexp>
 </excludefromlisting>
 </audio>
 <videodatabase>
  <type>mysql</type>
       <host>192.168.1.10</host>
       <port>3306</port>
       <user>Malina</user>
       <pass>****</pass>
    </videodatabase>
    <musicdatabase>
       <type>mysql</type>
       <host>192.168.1.10</host>
       <port>3306</port>
       <user>Malina</user>
       <pass>****</pass>
    </musicdatabase>
 <videolibrary>
 <importwatchedstate>true</importwatchedstate>
 <importresumepoint>true</importresumepoint>
 </videolibrary>
 <pathsubstitution>
 <substitute>
 <from>special://masterprofile/Thumbnails/</from>
 <to>nfs://192.168.1.10/volume1/video/Thumbnails/</to>
 </substitute>
 </pathsubstitution>
 <network>
 <buffermode>1</buffermode>
 </network>
</advancedsettings>

A kam s ním? Třeba pro Windows do složky:

c:\users\[USERNAME]\appdata\roaming\Kodi\userdata

Pro OSMC na RapsberryPi:

\home\osmc\.kodi\userdata

Nyní tedy restartovat a počkat, než si Kodi databázi vytvoří. U dalších počítačů už se Kodi jenom připojí a bude databázi využívat.

(Všechny verze Kodi musí být stejné, jinak to nebude fungovat. Pokud upgradujete Kodi, po upgradu se upgradujete také databáze, i když se může stát že upgrade neproběhne správně – potom stačí se přihlásti přes phpMyAdmin, smazat nové tabulky a nechat upgrade databáze proběhnout ještě jednou.)

Záchrana dat ze Synology – to hell and back

Neděle, Září 11th, 2016

Po mé první záchranné operaci se situace zhoršila natolik, že Synology přestalo reagovat zcela. Zkusil jsem tedy koupit zcela nový disk, který jsem chtěl vyhradit pro zálohy. Když jsem ho dal samotný do Synology, nechal se nainstalovat, to mi přišlo jako dobré znamení. Přidal jsem k němu jeden z původních dvou disků, ale místo nabootování do DSM mi to napsalo, že to mám nainstalovat systém. To jsem zkusil, ale ve druhém kroku jsem se dostal na hlášku, že je něco špatně, proto se mám přes telnet podívat dovnitř.

Vrátil jsem zpět oba disky a systém překvapivě začal bootovat, ale opět jsem se dostal do stavu, že mám nainstalovat systém a opět mi to napsalo, že je něco špatně.

Pohledem přes telnet jsem nic nezjistil, jenom jsem se podíval na partitions na discích:

cat /proc/mdstat

ale aspoň jsem ze Synology dostal log soubor:

cat /var/log/messages 

V takové chvíli vám pravděpodobně nebude fungovat žádné z hesel, proto existují univerzální hesla pro root, která vám vygeneruje jednoduchý javascriptový program.

Nyní jsem měl dvě možnosti, proto jsem se rozhodl zkusit obě. Jednak jsem zkusil poslat mail na podporu Synology, k čemuž jsem přiložil získaný log soubor.

Jako druhá možnost je nainstalovat si někam na stolní počítač Ubuntu, připojit disky ze Synology a data zachránit – odkaz je přímo na stránkách Synology. Bohužel, disky se i přesto chovaly zcela nezpůsobně, jako by na nich nic nebylo, pokus je spojit do raidu stále selhával.

V té chvíli se mi ozvala technická podpora Synology a nabídla mi pomoc. Přes Teamviewer se mi připojili na počítač a zkusili se telnetem podívat na Synology, co se děje. Musím říct, že mě takto vstřícný přístup potěšil, mordovali se s tím asi 45 minut. Výsledek úplně uspokojivý nebyl, protože situace se nezlepšila, ale dostal jsem dvě důležité informace, které mi následně pomohly:

  • Systém je jiné partition než data. Instalací systému se žádná data nepřemažou. Jak řekl německý technik „your data should be there“.
  • Pravděpodobně je jeden z disků poškozený – ideálně stáhnout od výrobce disku program na kontrolu a nechat ji projet celou.

Začal jsem kontrolou – pro WD je to Data Lifeguard. První disk byl v pořádku, když mi u druhého kontrola po 10 hodinách ohlásila, že zbývá ještě 65 hodin, věděl jsem, že je zle. (Popravdě mi mohlo dojít už dříve, že je něco špatně, protože jako první příznak před vytuhnutím přestala fungovat databáze – akorát bylo divné, že DSM nic špatného nehlásil.)

Proto jsem do Synology vrátil jenom nepoškozený disk na pozici 1 a čistě nainstaloval systém (volba zachovat nastavení neprošla). A po restartu tam data skutečně byla. Následně jsem na druhou pozici dal nový disk původně připravený na zálohy, zreplikoval data a jal se vše nastavovat znovu, protože jsem nikde neměl uloženou zálohu.

Největší překvapení bylo, že po instalaci databáze MariaDB zůstaly zachované všechny tabulky, pouze jsem musel znovu nastavit práva.

Nelze se přihlásit na Synology, protože disk je plný

Úterý, Srpen 30th, 2016

Restart samozřejmě nepomůže, protože disk je stále plný (disk samozřejmě většinou plný není, ale jsou na něm velké soubory, které tam být nemají). Pokud se vám jako mě nedaří přihlásit přes root, tak i na to kamarádi pamatovali. Takže první věc, přihlásit se jako admin (to asi zvládnete):

ssh admin@1.2.3.4

Následně se přihlaste jako root:

sudo -i

Druhá možnost je

sudo su -

a následně zadat znovu admin heslo

Prvotní příčinou jsou příliš velké log soubory a je třeba je smazat:

cd /var/log/synolog
dir
(nyní odstraňte logy pomocí příkazu  rm)
rm synoconn.log
rm synoconn.log.0
rm synoindex.log

A pokud používáte JDownloader2, tak zde máme další „zbytečný“ log file k odstranění:

rm /var/log/JDownloader.log

A co dál? Pravděpodobnou příčinou je hibernace USB zařízení (která pravděpodobně nemáte). Ve fóru doporučují hibernaci zakázat. Případně povolit, restartovat, zakázat a znovu restartovat.

PS: Pokud neznáte ani admin ani root heslo, budete muset Synology resetovat hardwarově. O data nepřijdete, pouze budete vše muset znovu nakonfigurovat.

PS: Momentálně mám Synology zcela nedostupnou a zítra budu pátrat, co dál.

 

Jak dostat JDownloader do Synology (aktualizováno)

Pondělí, Prosinec 21st, 2015

JDownloader je užitečný program pro stahování souborů. Pokud vlastníte NAS od Synology, můžete poměrně snadno spustit JDownloader tam a přistupovat k němu přes webové rozhraní. Po třech dnech laborování a ověřování návodů jsem dal dohromady postup, který konečně funguje. Zkombinoval jsem přitom různé postupy (například odsud a odsud). Celé je to pro zkušenější uživatele, kteří si aspoň část informací můžou vygooglovat.

Aktualizace: V diskusi mi Ryki poslal tip, že Němci už JDownloader udělali jako instalační balíček, takže nyní ho stačí nainstalovat. Buď se to dá udělat ručně, jak nabízí Ryki, nebo můžete připojit repozitář a instalovat přímo z něj.

Jediné upozornění od kolegy, sám jsem po tom nepátral, JDownloader pravděpodobně zabraňuje Synology usínat. Je na vás, jak moc vám to bude vadit.

Nový, elegantní postup

  1. Spusťe Centrum balíčků a jděte do Nastavení, tam klikněte na Zdroje balíčků. Tam klepněte na Přidat.
  2. Můžete přidat buď PCLoadLetter.co.uk s adresou http://packages.pcloadletter.co.uk/ nebo Netzbär s adresou https://spk.netzbaer.de/ (odkud je Rykiho tip). Poté můžete nastavení zavřít.
    Screenshot 2016-02-28 12.33.18
  3. Před instalací JDownloaderu potřebujete do Synologie dostat Javu 1.7 – možná ji tam už máte, případně se dá použít instalace z nových repozitářů.
  4. Nové doplňky jsou na levé záložce Komunita. Nyní stačí vybrat JDownloader 2 a instalovat.
    Screenshot 2016-02-28 12.37.04
  5. Na konci instalace vás JDownloader vyzve k zadání přístupových údajů na my.jdownloader.org a výchozí složky pro stahování.
  6. To je vše – nyní stačí se přes webové rozhraní připojit a JDownloader používat.

Původní, složitější postup

  1. Na Diskstation nainstalujte Javu. V Centru balíčků na Synology nainstalujte Java Manager, ten vám umožní stáhnout a nainstalovat Javu.
  2. Nainstalujte JDownloader na svůj počítač ze stránek vývojáře jdownloader.org. Já použil verzi pro Mac OS, ale může být libovolná. Program spusťte a nakonfigurujte účet My JDownloader – nemusíte ho potom konfigurovat na serveru. Některé postupy navrhují zkopírovat celou instalaci na NAS, ale tím hrozí, že si do instalce zavlečete zbytečný kód (například x86 na ARM procesory). Nakonec budete potřebovat pouze soubor org.jdownloader.api.myjdownloader.MyJDownloaderSettings.json ze složky cfg.
  3. Stáhněte si univerzální instalaci JDownloader.jar (http://installer.jdownloader.org/JDownloader.jar) a zkopírujte ji do slžoky  „/volume1/@appstore/jd2/“ – například takto: cp /volume/homes/JDownloader.jar /volume1/@appstore/jd2/
  4. Nyní je třeba JDownloader nainstalovat – přesuňte se do složky s JD (cd /volume1/@appstore/jd2/“ a nainstalujete JDownloader (java -jar JDownloader.jar). Na konci by se vás měl zeptat na váš login na my.jdownloader.org. Pokud ne, měl by se vás program zeptat při prvním spuštění – což můžete obejít nakopírováním konfiguračního soubory z jiného počítače.
  5. Aplikace je nastavená, můžete ji spustit: /volume1/@appstore/JavaManager/Java/bin/java -Djava.awt.headless=true -jar /volume1/@appstore/JDownloader2/JDownloader.jar
  6. Upravte soubor „/etc/passwd“ pomoci vi (příkaz vi /etc/passwd) -> příkazy si radši najděte v Googlu. Měli byste najít řádek, kde bude nastaven vlastník složky jd2.
  7. U uživatele JDownloader změňte „/sbin/nologin“ na „/bin/sh“ – může se stát, že bude již nastavené.
  8. Původní návod radí, že máte nastavit  uživatele JDownloader jako vlastníka „/volume1/@appstore/jdownloader/“ (chown -R JDownloader: /volume1/@appstore/jdownloader), ale u mě to nebylo nutné.
  9. Jediný problém, že se vám ukončí po ukončení relace, musíte nastavit, aby běžela na pozadí – respektive spustit se po startu DiskStation. Vytvořte jednoduchý skript, pojmenoval jsem ho S99jdownloader.sh, nakopírujte na DiskStation:
#!/bin/sh
#
# Startup script for jdownloader2
#
# Stop myself if running
PIDFILE=/var/run/S99jdownloader.pid
#
start() {
sleep 1
nohup /volume1/@appstore/JavaManager/Java/bin/java -Djava.awt.headless=true -jar /volume1/@appstore/jd2/JDownloader.jar &
# write pidfile
echo $! > $PIDFILE
}
#
stop() {
[ -f ${PIDFILE} ] && kill `cat ${PIDFILE}`
# remove pidfile
rm -f $PIDFILE
}
#
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 1
start
;;
*)
echo "Usage: $0 (start|stop|restart)"
exit 1
;;
esac
# End
  1. Zkopírujte „S99jdownloader.sh“ do složky „/usr/local/etc/rc.d/“. (Pojmenování musí být S99*.sh, protože Synology/Linux má určitá pravidla – při startu spouští Skripty K00-K99 a S00-S99, při ukončení volá S00-S99 – náš skript se bude tedy volat jako poslední ze všech při spuštění i při ukončení – při ukončení se zajistí korektní ukončení programu.)
  2. Restartujte NAS – JDownloader by se měl automaticky spustit.

Následně se stačí přihlásit na http://my.jdownloader.org/ nebo nainstalovat rozšíření do prohlížeče, které vás tam dostane rychleji. Pravděpodobně musíte ještě nastavit výchozí složku pro stahování, ale jinak vše funguje jak má.

Aktualizace: Pokud jste původně JDownloader instalovali ručně, mělo by pro začátek stačit vymazat skripty v /usr/local/etc/rc.d/ a následně vymazat váš původní program. Po restartu by vše mělo být v pořádku.

Mé HTPC

Pondělí, Prosinec 21st, 2015

V roce 2009 jsem si pořídil první HTPC. Vypadalo takto. Bylo „nehlučné“ a „praktické“. Což prakticky znamenalo, že větrák nebyl v hlasitých scénách filmů slyšet, displej svítil modře a bylo třeba jej přelepit, aby nerušil. Na počítači také byly Windows XP, které po pár měsících začaly mít problém s usínáním a už se ho nikdy nezbavily. A už vůbec nemluvím o spotřebě, která tehdy byla tuším 53 W – inu bylo domácí multimediální centrum (oproti počítačům, které měly i 100 W to přece jen byl rozdíl). Už tehdy mi to nepřišlo ideální, ale bylo to levné, část komponent byla použitá již dříve.

O dva roky později jsem to nemohl vydržet a pořídil jsem Mac Mini – tehdy v nové revoluční úpravě se zdrojem umístěným přímo v krabičce. A stal se zázrak – počítač se choval jak měl, vzorově usínal, spotřeba klesla na třetinu a větrák nebylo slyšel prakticky nikdy. Po experimentování s programy na přehrávání videa (Plex a XBMC) jsem nakonec zakotvil u druhého, který se nedávno přejmenoval na Kodi. (K počítači jsem si časem koupil také externí disk, který měl být vizuálně stejný jako Mac, ale co čert nechtěl, vzhled byl k původnímu Macu, který byl užší, ale jinak slouží dodnes.)

macmini2011

Letos jsem se  rozhodl pro další upgrade – Raspberry Pi2, což je kompletní počítač na formátu kreditní karty. Krabičku jsem vybral úplně obyčejnou, i když na trhu je jich spousta. Stejně bude jenom schová za televizí a není třeba ji mít nijak exkluzivní. Spotřeba je momentálně 1 W, pokud bych připojil náročnější periferie, tak by mohla vzrůst na 2 W, což je stále nula nula nic. Ani Kodi jsem se nemusel vzdát, komunita buduje speciální distribuci Debianu s integrovaným Kodi pod názvem OSMC. A není to žádná geekovina, stačí ve Windows nebo Mac OS spustit instalátor, který celý systém nahraje na paměťovou kartu, kterou zastrčíte do Raspberry. (Kromě OSMC existují ještě další porty Kodi, například OpenELEC.)

raspberrypi2

Ale hlavním klíčem ke všemu je NAS, v mém případě Synology DS215j, na který jsem upgradoval z historického DS207+, který už trochu nestíhal. Hlavní výhoda takové krabičky? Je zavřená ve sklepě a dělá přesně to, co má.