
{"id":273,"date":"2015-09-23T19:05:22","date_gmt":"2015-09-23T18:05:22","guid":{"rendered":"http:\/\/3ronco.vahanus.net\/?p=273"},"modified":"2019-01-24T09:07:16","modified_gmt":"2019-01-24T08:07:16","slug":"das-kodi-media-center-im-eigenbau","status":"publish","type":"post","link":"http:\/\/3ronco.vahanus.net\/?p=273","title":{"rendered":"Das Kodi Media Center im Eigenbau"},"content":{"rendered":"<p>Als kleines Hobbyprojekt hatte ich mir schon lange vorgenommen mir ein eigenes <em>Entertainment Hub<\/em> mit <a title=\"Kodi (Open Source Home Theater)\" href=\"http:\/\/kodi.tv\">Kodi<\/a> (vgl. <em>XBMC<\/em>) zu bauen, dabei soll dieses System im Alltagsgebrauch meinen alten <em>TechniSat Receiver<\/em> ersetzen. Es soll u.a. dazu dienen Fernsehen zu schauen, Musik zu h\u00f6ren z.B. lokale Streams, von CD oder auch online per Internet Radio au\u00dferdem m\u00f6chte ich sowohl Videos abspielen (<em>DVD<\/em>, <em>Bluray<\/em>) als diese auch per Stream abrufen k\u00f6nnen z.B. \u00fcber einen lokalen <em>DLNA<\/em> Server. Zudem soll die M\u00f6glichkeit bestehen diverse Videodienste direkt aus dem Internet zu nutzen z.B. <em>YouTube<\/em>, <em>Twitch<\/em>, aber auch kommerzielle Anbieter wie&nbsp; <em>Amazon Prime<\/em> oder <em>Netflix<\/em>. Die meisten dieser Funktionen bringt Kodi von Haus mit, einige andere Dinge wie z.B. gew\u00f6hnliches Fernsehen mu\u00df \u00fcber eine TV-Karte realisiert werden.<br \/>\n<div id=\"metaslider-id-337\" style=\"max-width: 1000px;\" class=\"ml-slider-3-107-0 metaslider metaslider-flex metaslider-337 ml-slider ms-theme-default nav-hidden\" role=\"region\" aria-label=\"Kodi\" data-height=\"300\" data-width=\"1000\">\n    <div id=\"metaslider_container_337\">\n        <div id=\"metaslider_337\">\n            <ul class='slides'>\n                <li style=\"display: block; width: 100%;\" class=\"slide-336 ms-image \" aria-roledescription=\"slide\" data-date=\"2015-04-05 13:50:43\" data-filename=\"SlideI.jpg\" data-slide-type=\"image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/04\/SlideI.jpg\" height=\"300\" width=\"1000\" alt=\"\" class=\"slider-337 slide-336 msDefaultImage\" \/><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-335 ms-image \" aria-roledescription=\"slide\" data-date=\"2015-04-05 13:50:40\" data-filename=\"SlideH.jpg\" data-slide-type=\"image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/04\/SlideH.jpg\" height=\"300\" width=\"1000\" alt=\"\" class=\"slider-337 slide-335 msDefaultImage\" \/><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-334 ms-image \" aria-roledescription=\"slide\" data-date=\"2015-04-05 13:50:38\" data-filename=\"SlideG.jpg\" data-slide-type=\"image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/04\/SlideG.jpg\" height=\"300\" width=\"1000\" alt=\"\" class=\"slider-337 slide-334 msDefaultImage\" \/><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-333 ms-image \" aria-roledescription=\"slide\" data-date=\"2015-04-05 13:50:36\" data-filename=\"SlideF.jpg\" data-slide-type=\"image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/04\/SlideF.jpg\" height=\"300\" width=\"1000\" alt=\"\" class=\"slider-337 slide-333 msDefaultImage\" \/><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-332 ms-image \" aria-roledescription=\"slide\" data-date=\"2015-04-05 13:50:34\" data-filename=\"SlideE.jpg\" data-slide-type=\"image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/04\/SlideE.jpg\" height=\"300\" width=\"1000\" alt=\"\" class=\"slider-337 slide-332 msDefaultImage\" \/><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-331 ms-image \" aria-roledescription=\"slide\" data-date=\"2015-04-05 13:50:32\" data-filename=\"SlideD.jpg\" data-slide-type=\"image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/04\/SlideD.jpg\" height=\"300\" width=\"1000\" alt=\"\" class=\"slider-337 slide-331 msDefaultImage\" \/><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-330 ms-image \" aria-roledescription=\"slide\" data-date=\"2015-04-05 13:50:29\" data-filename=\"SlideC.jpg\" data-slide-type=\"image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/04\/SlideC.jpg\" height=\"300\" width=\"1000\" alt=\"\" class=\"slider-337 slide-330 msDefaultImage\" \/><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-329 ms-image \" aria-roledescription=\"slide\" data-date=\"2015-04-05 13:50:27\" data-filename=\"SlideB.jpg\" data-slide-type=\"image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/04\/SlideB.jpg\" height=\"300\" width=\"1000\" alt=\"\" class=\"slider-337 slide-329 msDefaultImage\" \/><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-328 ms-image \" aria-roledescription=\"slide\" data-date=\"2015-04-05 13:50:25\" data-filename=\"SlideA.jpg\" data-slide-type=\"image\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/04\/SlideA.jpg\" height=\"300\" width=\"1000\" alt=\"\" class=\"slider-337 slide-328 msDefaultImage\" \/><\/li>\n            <\/ul>\n        <\/div>\n        \n    <\/div>\n<\/div><\/p>\n<p style=\"text-align: right;\"><a href=\"http:\/\/3ronco.vahanus.net\/?p=273&amp;page=2\">N\u00e4chste Seite<\/a><\/p>\n<p><!--nextpage--><\/p>\n<h2>Die Hardware<\/h2>\n<div id=\"attachment_290\" style=\"width: 290px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/www.ms-tech.de\/eng\/index.php\/product\/detail\/pdcid\/79\/pdid\/162\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-290\" class=\"wp-image-290 size-full\" title=\"Click Image for product details.\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/03\/MSTECH-LC1.jpg\" alt=\"MS-TECH LC-01 Rev. B\" width=\"280\" height=\"280\" srcset=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/03\/MSTECH-LC1.jpg 280w, http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/03\/MSTECH-LC1-150x150.jpg 150w\" sizes=\"auto, (max-width: 280px) 100vw, 280px\" \/><\/a><p id=\"caption-attachment-290\" class=\"wp-caption-text\">A Micro-ATX slim line case by MS-TECH.<\/p><\/div>\n<p>Der Markt f\u00fcr Geh\u00e4use die <em>Boards<\/em> im <em>Micro-ATX<\/em>-Formfaktor aufnehmen k\u00f6nnen ist sehr \u00fcberschaubar daher fiel die Wahl schnell auf das <em>MS-TECH LC-1<\/em>, die obere Klappe mit kleinem <em>Eject-<\/em>Knopf beherbergt den 5\u00bc&#8221; Schacht. Die kleinere Klappe darunter erm\u00f6glicht Zugriff auf zwei USB Front-Ports. Im Bereich des vorderen Fu\u00dfes sitzt das integrierte <em>400W<\/em> Netzteil, dessen L\u00fcfter leider billig verarbeitet ist und einen entsprechenden Ger\u00e4uschpegel produziert. F\u00fcr den Filmgenu\u00df im Wohnzimmer nicht zu gebrauchen daher sollte man hier keine Kosten scheuen und ggfs. den <em>60mm<\/em> L\u00fcfter durch ein hochwertigeres Modell austauschen. Das Geh\u00e4use besitzt kein au\u00dfergew\u00f6hnlich edles Aussehen, die Hochleistungs\u00e4stethik eines Apple-Looks wird wohl definitiv nicht erreicht daf\u00fcr ist es aber trotz kleiner M\u00e4ngel im Preis unschlagbar und so \u00fcbel sieht es auch gar nicht aus. Der gr\u00f6\u00dfere <em>Standby<\/em>-Schalter ist umrandet von einer roten LED die im eingeschalteten Zustand den runden Knopf mit einem dezenten, r\u00f6tlichen Gl\u00fchen umrandet, das verleiht dem Geh\u00e4use etwas chic.<\/p>\n<div id=\"attachment_275\" style=\"width: 310px\" class=\"wp-caption alignright\"><a href=\"https:\/\/www.asus.com\/de\/Motherboards\/E45M1M_PRO\/specifications\/\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-275\" class=\"wp-image-275 size-medium\" title=\"Click Image for product details.\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/03\/ASUSe45m1-mPro-300x193.png\" alt=\"ASUSe45m1-mPro\" width=\"300\" height=\"193\" srcset=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/03\/ASUSe45m1-mPro-300x193.png 300w, http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/03\/ASUSe45m1-mPro.png 458w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-275\" class=\"wp-caption-text\">AMD&#8217;s Fusion &#8220;Zacate&#8221; processor platform by ASUS. The E45M1-M PRO motherboard.<\/p><\/div>\n<p>Dazu habe ich mir folgende Hardware ausgesucht. Als Basis dient <em>AMD&#8217;s Fusion<\/em> Plattform in Form des l\u00fcfterlosen <em>Asus E45M1-M Pro<\/em>, welches eine gute Mischung aus Performance und Effizienz im Stromverbrauch (<em>~17W TDP<\/em>) darstellt. Es ist ein <em>Micro-ATX-Formfactor<\/em>, best\u00fcckt mit einer <em>AMD Dual-Core E-450, &#8220;<em>Zacate<\/em>&#8221; CPU<\/em> (~1,6 GHz Takt), diese ist leistungstechnisch ungef\u00e4hr vergleichbar mit ihrem <em>Intel Atom<\/em> Pendant au\u00dferdem besitzt es integrierte Grafik in Form einer <em>Radeon HD 6320 GPU<\/em> mit <em>HDMI<\/em>, <em>VGA<\/em> &amp; <em>DVI<\/em> Anschl\u00fcssen. Der Sound wird befeuert durch einen <em>Realtek ALC887 Codec<\/em>. Als Speicher fungiert ein <em>4 GB DDR3-1333MHz PC3-10600 CL9 (2&#215;2) Dual Channel Kit<\/em> von <em>Transcend<\/em> was etwas \u00fcberdimensioniert scheint aber Luft nach oben l\u00e4\u00dft. F\u00fcr die lokale Bibliothek f\u00fcr Videos und Musik soll eine g\u00fcnstige <em>1 TB<\/em> Festplatte von <em>Western Digital<\/em> mit <em>5400 RPM<\/em> eingesetzt werden weil hier rohe <em>I\/O Performance<\/em> nicht so relevant ist und der Ger\u00e4uschpegel m\u00f6glichst niedrig gehalten werden soll und als reiner Datenspeicher um z.B Filme oder Musik wiederzugeben sollte die Lesegeschwindigkeit absolut ausreichend sein.<\/p>\n<div id=\"attachment_278\" style=\"width: 260px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/www.delock.de\/produkte\/G_91687\/merkmale.html\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-278\" class=\"wp-image-278 size-full\" title=\"Click Image for product details.\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/03\/DelockCardReader.jpg\" alt=\"Delock Compact Flash Card Reader\" width=\"250\" height=\"190\"><\/a><p id=\"caption-attachment-278\" class=\"wp-caption-text\">A compact flash card reader adapted to a SATA interface.<\/p><\/div>\n<p>Um also die <em>Linux<\/em> Systempartition unter zu bringen m\u00f6chte ich etwas Handliches haben was sich an Ort und Stelle leicht wechseln l\u00e4\u00dft da man so ein Ger\u00e4t f\u00fcr gew\u00f6hnlich im Wohnzimmer platziert. Da das Geh\u00e4use in kompakter <em>HTPC<\/em> Bauweise nur einen einzigen&nbsp;5\u00bc&#8221;-Schacht besitzt welcher vom <em>BluRay<\/em> Laufwerk belegt wird, mu\u00dfte hier eine andere L\u00f6sung her. Daf\u00fcr habe ich den <em>Delock Compact Flash Card Reader<\/em> mit <em>Sata Interface<\/em> und <em>Low Profile Blende<\/em> sowie eine <em>16 GB CompactFlash<\/em>-Karte vorgesehen. Im Falle einer Wartung l\u00e4\u00dft sich so dass <em>Root-System<\/em> entnehmen um es an einem Desktop Rechner leichter einer Diagnose unterziehen zu k\u00f6nnen oder ggfs. f\u00fcr Zwecke des BackUps z.B. bevor man Upgrades installiert. \u00dcbrigens <em>16 GB<\/em> sind f\u00fcr ein <em>Debian<\/em> System samt <em>Kodi<\/em> und allem drum &amp; dran vollkommen ausreichend.<\/p>\n<div id=\"attachment_294\" style=\"width: 310px\" class=\"wp-caption alignright\"><a href=\"http:\/\/www.dvbsky.net\/Products_T9580.html\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-294\" class=\"wp-image-294 size-medium\" title=\"Click Image for product details.\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/03\/DVBSkyT9580-300x200.jpg\" alt=\"\" width=\"300\" height=\"200\" srcset=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/03\/DVBSkyT9580-300x200.jpg 300w, http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/03\/DVBSkyT9580.jpg 305w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-294\" class=\"wp-caption-text\">A DVB-T\/T2\/C and DVB-S2 Dual PCIe TV-Tuner card.<\/p><\/div>\n<p>Am schwierigsten aufzutreiben war eine angemessene TV-Karte da diese eine Reihe von Kriterien erf\u00fcllen mu\u00dfte. Zun\u00e4chst einmal mu\u00dfte f\u00fcr den verwendeten Chipsatz ein Treiber f\u00fcr das <em>Video4Linux<\/em>-Subsystem verf\u00fcgbar sein. Au\u00dferdem sollte die <em>PCI-Express<\/em>-Karte mit einfacher (<em>1x<\/em>) Busanbindung sowohl einen <em>DVB-T<\/em>, <em>DVB-C<\/em> als auch einen <em>DVB-S<\/em> <em>Tuner<\/em> enthalten so dass im Falle eines Umzuges das Ger\u00e4t nicht unbrauchbar wird weil ein entsprechendes Antennensignal nicht zur Verf\u00fcgung steht. Und damit die Karte in das Geh\u00e4uses passt mu\u00dfte sie im im <em>Low Profile Format<\/em> gefertigt sein. Die Wahl fiel auf die <em>DVBSky T9580<\/em>, eine Karte mit DVB-T\/T2\/C &amp; S2 Tuner.<br \/>\n<!--nextpage--><\/p>\n<h2>Die Softwarebasis<\/h2>\n<p>Verschaffen wir uns nun einen software-technischen \u00dcberblick \u00fcber die Ingredenzien f\u00fcr ein schickes <em>Entainment Hub<\/em>. Neben Betriebssystem, erforderlichen Treibern, TV-Software und deren <em>PlugIns<\/em> werfen wir zum Schlu\u00df einen Blick auf die Einrichtung von <em>Kodi<\/em> selbst aber fangen wir vorne an.<\/p>\n<h3>Debian GNU\/Linux<\/h3>\n<p><a href=\"http:\/\/debian.org\"><img loading=\"lazy\" decoding=\"async\" class=\" size-full wp-image-350 alignright\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/04\/debianlogo.png\" alt=\"debianlogo\" width=\"108\" height=\"130\"><\/a>Es wid hier von einem <em>Debian Jessie<\/em> in gew\u00f6hnlicher Standardinstallation mit installiertem Open Source Grafiktreiber (<em>radeon<\/em>) ausgegangen, dies ist wichtig da bei der Wiedergabe die Hardwarebeschleunigung der Grafikkarte (<em>VDPAU<\/em>) verwendet werden soll. Auf die Verwendung des propriet\u00e4ren Treibers (<em>fglrx<\/em>) wird hier verzichtet weil Full-HD Videos in <em>1080p<\/em> Aufl\u00f6sung sich zwar abspielen lassen aber die Bildrate dann doch zu w\u00fcnschen \u00fcbrig l\u00e4\u00dft, das liegt am veralteten <em>XVBA API<\/em> das seit langer Zeit nicht mehr von <em>AMD<\/em> unterst\u00fctzt wird.<br \/>\nDie Paketquellen wurden um das <em>debian-multimedia<\/em> Repository erweitert damit die <em>Kodi<\/em> Version etwas aktueller ist, da die \u00fcblichen Pakete aus dem Standard-<em>Debian-Repository<\/em> lediglich eine \u00e4ltere <em>XBMC<\/em> Version bereithalten. Eigentlich ist es nicht notwendig einen <em>X-Desktop<\/em> zu installieren aber ein kompakter Ressourcen-schonender <em>Windowmanager<\/em>, z.B. <em>XFCE<\/em>, erleichtert zumindest in der Installationsphase die Einrichtung.<br \/>\nDie <em>CompactFlash<\/em>-Karte dient dabei als vollst\u00e4ndiges Startsystem mit <em>Boot<\/em>-, <em>Root<\/em>&#8211; und <em>Swap<\/em>-Partition. Die externe gro\u00dfe 3\u00bd&#8221;-Festplatte dient dabei lediglich als Datentr\u00e4ger f\u00fcr die Video- und Musikbibliothek.<\/p>\n<pre>Me@myHost:~# cat \/etc\/fstab\n# \/etc\/fstab: static file system information.\n#\n# Use 'blkid' to print the universally unique identifier for a\n# device; this may be used with UUID= as a more robust way to name devices\n# that works even if disks are added and removed. See fstab(5).\n#\n#              \n\n[...]\n\n\/dev\/sr0 \/media\/cdrom0 udf,iso9660 user,noauto 0 0\n\n<span style=\"color: #880000;\"># video library and temporary capture partition\n\/dev\/sdXY \/srv ext4 defaults 0 0<\/span>\n\nMe@myHost:~# cat \/etc\/apt\/sources.list\n...\n# jessie deb-multimedia\ndeb http:\/\/www.deb-multimedia.org stable main non-free<\/pre>\n<p>Das <em>ASUS Board<\/em> enth\u00e4lt ein <em>UEFI BIOS<\/em> und man k\u00f6nnte sich die M\u00fche machen mit <em>GPT Schema<\/em> einen nativen <em>UEFI Boot<\/em> zu realisieren, die Installation sollte sich aber einfach gestalten daher wird hier von einer Standard <em>Legacy BIOS<\/em> Installation ausgegangen. Wer monstr\u00f6se Festplatten (&gt;4TB) verwenden m\u00f6chte m\u00fc\u00dfte die Installation ggfs. anpassen.<\/p>\n<h3>Die Treiber der DVB-Karte<\/h3>\n<p>Die Karten von <em>DVBSky<\/em> waren f\u00fcr <em>Linux<\/em> in der Vergangenheit nicht immer ganz unkompliziert wegen der Treiber-Situation obwohl ein <em>Conexant CX23885\/7\/8 Media Controller<\/em> verwendet wird der von <em>Video4Linux<\/em> auch in anderen Karten schon unterst\u00fctzt wird, konnte der Hersteller bisher keine zufriedenstellende L\u00f6sung anbieten. Der Treiber mu\u00dfte seit dem letzten Stand selbst kompiliert werden, was nicht so kompliziert ist aber leider den unangenehmen Nebeneffekt hat das im Prinzip ein <em>Fork<\/em> des <em>v4l<\/em>-Projekt daher genommen wird um den eigenen Bin\u00e4rtreiber und die Firmware samt einiger Patches in <em>v4l<\/em> zu integrieren. So ein Kompilat hat den Nachteil dass es nicht aus dem Mainstream-Linie stammt und bei <em>Debian<\/em>&#8211;<em>Updates<\/em> die aktuelle Standardinstallation von <em>v4l<\/em> mit dem \u00e4lteren Kompilat \u00fcberschrieben werden mu\u00df. Eine Treiberunterst\u00fctzung (<em>out-of-the-box<\/em>) wird z.Z. mit dem Kernel 3.18 erwartet. In der Zwischenzeit kann man sich leider nur mit eigenen Kompilaten behelfen, um also zu \u00fcberpr\u00fcfen ob die <em>DVB<\/em> Karte verf\u00fcgbar ist schaut man mit<\/p>\n<pre>Me@myHost:~# ls -l \/dev\/dvb\/<\/pre>\n<p>nach ob sich indem Ordner irgendwelche Eintr\u00e4ge finden, z.B. <em>adapter0<\/em> u.\u00e4.<br \/>\nSollte dem nicht so sein dann liegt keine Unterst\u00fctzung mit den Standardtreibern des <em>v4l<\/em> vor mu\u00df man selbst kompilieren. Da hier unter <em>Debian<\/em> der etwas \u00e4lteren <em>3.16&#8217;er Kernel<\/em> verwendet wird ist ein Kompilat leider erforderlich, dabei kann man wie folgt vorgehen.<\/p>\n<pre>Me@myHost:~# sudo -i\nMe@myHost:~# # install required build tools\nMe@myHost:~# apt-get install kernel-package linux-headers-`uname -r`\nMe@myHost:~# cd \/usr\/src\nMe@myHost:~# wget http:\/\/www.dvbsky.net\/download\/linux\/media_build-bst-140128.tar.gz\nMe@myHost:~# tar xf media_build-bst-140128.tar.gz\nMe@myHost:~# cd media_build-bst\nMe@myHost:~# # Run `uname -a` to determine if 32 or 64-bit (x86_64\/amd64\/ia64) is required.\n .\/v4l\/build_x86.sh ~OR~ .\/v4l\/build_dvbc_x86.sh ~OR~\n   .\/v4l\/build_x64.sh ~OR~ .\/v4l\/build_dvbc_x64.sh\nMe@myHost:~# make &amp;&amp; make install\nMe@myHost:~# # download and install firmware\nMe@myHost:~# wget http:\/\/www.dvbsky.net\/download\/dvbsky-firmware.zip\nMe@myHost:~# unzip dvbsky-firmware.zip\nMe@myHost:~# sh .\/bst-firmware.sh\nMe@myHost:~#\nMe@myHost:~# reboot<\/pre>\n<p>Zuerst beschafft man sich den Treiber per <em>wget<\/em>, erzeugt das Kompilat was u.U. einige Zeit in Anspruch nimmt da hier nicht nur die Treiber sondern das komplette <em>v4l<\/em> Paket erzeugt wird. Abschlie\u00dfend spielen wir die <em>Firmware<\/em> ein. Nach einem Neustart sollten die erforderlichen Ger\u00e4te verf\u00fcgbar sein, die Karte besitzt mehrere Kombi-<em>Tuner<\/em> daher sind auch zwei Adapter sichtbar, der <em>adapter0<\/em> wird f\u00fcr <em>DVB-S<\/em> (Satellit) und der <em>adapter1<\/em> f\u00fcr <em>DVB-T2\/C<\/em> (Kabel) verwendet. Neben den eigentlichen <em>Adapter<\/em> finden sich noch weitere Ger\u00e4te z.B. zur Steuerung der TV-Karte per Fernbedienung allerdings m\u00f6chten wir die Karte unter <em>Kodi<\/em> verwenden daher lassen wir diese einfach mal au\u00dfer Acht.<\/p>\n<pre>Me@myHost:~# ls \/dev\/dvb\nadapter0  adapter1\nMe@myHost:~# dmesg | grep -i dvb\n[    5.025949] CORE cx23885[0]: subsystem: 4254:9580, board: DVBSKY T9580 [card=48,autodetected]\n[    5.978419] cx23885_dvb_register() allocating 1 frontend(s)\n[    5.978425] cx23885[0]: cx23885 based dvb card\n[    6.049574] m88ds3103_load_firmware: Waiting for firmware upload (dvb-fe-ds3103.fw)...\n[    6.050491] cx23885 0000:02:00.0: firmware: direct-loading firmware dvb-fe-ds3103.fw\n[    7.063249] DVB: registering new adapter (cx23885[0])\n[    7.063268] cx23885 0000:02:00.0: DVB: registering adapter 0 frontend 0 (Montage DS3103\/TS2022)...\n[    7.091726] DVBSKY PCIe MAC= xx:xx:xx:xx:xx:xx\n[    7.091736] cx23885_dvb_register() allocating 1 frontend(s)\n[    7.091777] cx23885[0]: cx23885 based dvb card\n[    7.298613] DVB: registering new adapter (cx23885[0])\n[    7.298637] cx23885 0000:02:00.0: DVB: registering adapter 1 frontend 0 (Sit2 DVB-T2\/C)...\n[    7.327207] DVBSKY PCIe MAC= yy:yy:yy:yy:yy:yy\n[    7.362214] Registered IR keymap rc-dvbsky\n[    7.362581] input: cx23885 IR (DVBSKY T9580) as \/devices\/pci0000:00\/0000:00:15.0\/0000:02:00.0\/rc\/rc0\/input13\n[    7.367613] rc0: cx23885 IR (DVBSKY T9580) as \/devices\/pci0000:00\/0000:00:15.0\/0000:02:00.0\/rc\/rc0<\/pre>\n<blockquote><p><span style=\"color: #ff0000;\">Achtung!<\/span><br \/>\nSollte eine neue Version des <em>Kernels<\/em> durch Updates des <em>Debian<\/em>-Systems eingespielt werden mu\u00df die Prozedur des Treiber-Kompilats wiederholt werden da die <em>v4l<\/em> bzw. die <em>Fimrware<\/em> Dateien dann nat\u00fcrlich nicht mehr an den richtigen Pfaden vorliegen und vom neuen Kernel nicht verwendet werden.<\/p><\/blockquote>\n<p>Quellen:<br \/>\n<a href=\"http:\/\/forum.kodi.tv\/showthread.php?tid=116996\">How to Install XBMC PVR Xvba for AMD\/Nvidia\/Intel GPUs<\/a><br \/>\n<a href=\"http:\/\/forum.kodi.tv\/showthread.php?tid=174854\">inux &#8211; Radeon OSS with vdpau<\/a><br \/>\n<a href=\"http:\/\/www.linuxtv.org\/wiki\/index.php\/DVBSky\">DVBSky<\/a><br \/>\n<a href=\"http:\/\/www.linuxtv.org\/wiki\/index.php\/DVBSKY_T9580\">DVBSky T9580 (PCIe)<\/a><br \/>\n<a href=\"http:\/\/www.linuxtv.org\/wiki\/index.php\/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers\">How to Obtain, Build and Install V4L-DVB Device Drivers<\/a><br \/>\n<a href=\"http:\/\/www.dvbsky.net\/Products_T9580.html\">DVBSky T9580 DVB-T\/T2\/C and DVB-S2 Dual PCIe<\/a><br \/>\n<!--nextpage--><\/p>\n<h3>Software als Videorecorder<\/h3>\n<p>Nun ben\u00f6tigen wir noch die Software welche die TV-Karte steuert. Hier bietet sich der <em>Video Disk Recorder<\/em> (vgl. <em>VDR<\/em>) von <em>Klaus Schmidinger<\/em> an, neben den gew\u00f6hnlichen Funktionen eines Fernsehers wird <em>VideoText<\/em> und <em>EPG<\/em> unterst\u00fctzt, zudem sind <em>TimeShift<\/em>-Aufnahmen m\u00f6glich. Die meisten dieser Funktionen werden \u00fcber viele verf\u00fcgbare <em>PlugIns<\/em> realisiert welche mannigfaltige M\u00f6glichkeiten zur Erweiterung des Systems bieten. Das Besondere an <em>VDR<\/em> ist jedoch das es die Ausgabe des Fernsehbilds nicht an ein bestimmtes <em>GUI-Frontend<\/em> koppelt sondern die <em>Streams<\/em> der Fernsehkan\u00e4le lediglich per <em>TCP-Port<\/em> anbietet. Das kann \u00fcber eine <em>IP<\/em> im Netzwerk realisiert werden oder man beschr\u00e4nkt den Zugriff durch Verwendung von <em>localhost<\/em> auf die lokale Maschine. Dabei existiert nicht nur dieser eine <em>Port<\/em> um den <em>Stream<\/em> f\u00fcr ein Bild darzustellen sondern weitere <em>Ports<\/em> sind verf\u00fcgbar um z.B. die Fernbedienung zu realisieren also Dinge wie Programm umschalten, Lautst\u00e4rke steuern etc.<br \/>\n<em>VDR<\/em> ist dadurch auch von anderen Programmen steuerbar wie eben z.B. <em>Kodi<\/em> welches sich dann den Bild-<em>Stream<\/em> auf einem <em>Port<\/em> abgreifen kann und \u00fcber die eigene GUI wiedergibt. Zus\u00e4tzlich kann <em>Kodi<\/em> \u00fcber den &#8216;Fernbedienungs&#8217;-<em>Port<\/em> Befehle wie umschalten des Kanals oder \u00e4ndern der Lautst\u00e4rke weiterreichen. <em>VDR<\/em> ist ein wirklich m\u00e4chtiges Paket mit vielen Features, zu viele um sie hier alle aufzuz\u00e4hlen.<\/p>\n<pre>Me@myHost:~# apt-get install \\\nvdr \\\nvdr-plugin-epgsearch \\\nvdr-plugin-live \\\nvdr-plugin-streamdev-ser \\\nvdr-plugin-svdrpext \\\nvdr-plugin-svdrposd \\\nvdr-plugin-vnsiserver<\/pre>\n<p>Damit man mit <em>VDR<\/em> die Br\u00fccke zu <em>Kodi<\/em> geschlagen bekommt ist das <em>vdr-plugin-vnsiserver<\/em> Paket sp\u00e4ter noch besonders wichtig. Nichtsdestotrotz sollte man den Zugriff auf den <em>VNSI Server<\/em> nur f\u00fcr die lokale Maschine erlauben.<\/p>\n<pre>Me@myHost:~# cat \/etc\/vdr\/plugins\/vnsiserver\/allowed_hosts.conf\n#\n# allowed_hosts.conf  This file describes a number of host addresses that\n#                     are allowed to connect to the streamdev server running \n#                     with the Video Disk Recorder (VDR) on this system.\n# Syntax:\n#\n# IP-Address[\/Netmask]\n#\n\n<span style=\"color: #ff0000;\">127.0.0.1             # always accept localhost<\/span>\n#192.168.0.0\/24        # any host on the local net\n#204.152.189.113      # a specific host\n#0.0.0.0\/0            # any host on any net (USE THIS WITH CARE!)<\/pre>\n<p>Au\u00dferdem legen wir noch den Pfad f\u00fcr Fernsehaufnahmen fest, die Festplatte als Halde f\u00fcr Videos wurde ja zuvor an den Pfad <em>\/srv<\/em> gebunden, dort legen wir einen Ordner f\u00fcr <em>VDR<\/em> an.<\/p>\n<blockquote><p><span style=\"color: #ff0000;\">Achtung!<\/span><br \/>\nDer <em>VDR Daemon<\/em> l\u00e4uft unter dem Benutzer <em>vdr<\/em> damit das Programm auch in der Lage ist in diesen Ordner zu schreiben mu\u00df diesem Benutzer Schreibrecht in diesen Ordner gew\u00e4hrt werden.<\/p><\/blockquote>\n<pre>Me@myHost:~# cd \/srv\nMe@myHost:~# # Ordner fur unsere VDR Aufnahmen\nMe@myHost:~# mkdir vdr\nMe@myHost:~# chown vdr:vdr vdr\nMe@myHost:~# # Diesen Pfad geben wir dem Daemon als Parameter mit:\nMe@myHost:~# cat \/etc\/vdr\/vdr.default \n# \/etc\/default\/vdr\n#\n# See also \/usr\/share\/doc\/vdr\/README.Debian.gz\n#\n\n# Change to 1 to enable vdr's init-script\nENABLED=1\n\n# Change this to 1 if you want vdr to be able to shutdown the\n# computer\nENABLE_SHUTDOWN=0\n\n# Options that will be passed to vdr's commandline\n# for example: OPTIONS=\"-w 15\"\nOPTIONS=\"-w 60 -D 1 <span style=\"color: #ff0000;\">-v \/srv\/vdr<\/span>\"<\/pre>\n<p>Mit der Option <em>-D 1<\/em> w\u00e4hlt man den entsprechenden DVB Adapter aus. In diesem Fall m\u00f6chten wir den Kabel-Receiver unter <em>\/dev\/dvb\/adapter1<\/em> verwenden, das Argument ben\u00f6tigt dazu lediglich die Nummer der Adapters.<br \/>\nDamit Programme empfangbar sind brauchen wir, wie bei jedem Fernseher auch, den Sendersuchlauf, das bewerkstelligen wir mit dem Programm <em>w_scan<\/em>:<\/p>\n<pre>Me@myHost:~# apt-get install w-scan\nMe@myHost:~# systemctl stop vdr\nMe@myHost:~# echo \":DVB-C - w_scan\" &gt;\/var\/lib\/vdr\/channels.conf\nMe@myHost:~# w_scan -f c -c DE &gt;&gt;\/var\/lib\/vdr\/channels.conf\nMe@myHost:~# systemctl start vdr<\/pre>\n<p>Mit dem Argument <em>-f c<\/em> w\u00e4hlen wir Kabelfernsehen (<em>DVB-C<\/em>) entsprechend unserem Adapter aus und mit <em>-c DE<\/em> geben wir das Land an, ggfs. m\u00fcssen diese Parameter angepasst werden wenn man einen anderen DVB Typ verwendet z.B. Satellit oder terrestrisches Signal.<\/p>\n<blockquote><p><span style=\"color: #ff0000;\">Achtung!<\/span><br \/>\nDieser Vorgang kann einige Zeit in Anspruch nehmen, der Sendersuchlauf mu\u00df vollst\u00e4ndig durchgelaufen sein ansonsten werden die Kan\u00e4le und ihre entsprechenden Frequenzen nicht in die <em>channels.conf<\/em> Datei eingetragen und <em>VDR<\/em> kann dann logischerweise keinen Kanal finden.<\/p><\/blockquote>\n<p>Startet man nun den <em>VDR Daemon<\/em> kann man \u00fcberpr\u00fcfen ob die entsprechenden <em>TCP Ports<\/em> angelegt wurden:<\/p>\n<pre>Me@myHost:~# netstat -tulpen | grep vdr\ntcp 0 0 127.0.0.1:6419   0.0.0.0:*  LISTEN 117   33659 1019\/vdr\ntcp 0 0   0.0.0.0:2004   0.0.0.0:*  LISTEN 117  100980 1019\/vdr        \ntcp 0 0   0.0.0.0:3000   0.0.0.0:*  LISTEN 117  100981 1019\/vdr\ntcp 0 0   0.0.0.0:8008   0.0.0.0:*  LISTEN 117  100985 1019\/vdr\ntcp 0 0   0.0.0.0:34890  0.0.0.0:*  LISTEN 117   33637 1019\/vdr<\/pre>\n<p>In dieser Konfiguration sieht man das nicht alle <em>Ports<\/em> auf den <em>localhost<\/em> festgenagelt wurden, das ist hier aber bewu\u00dft passiert, da in meiner Konfiguration <em>VDR<\/em> noch in anderen Szenarien verwendet wird, i.d.R. sollte man <em>localhost<\/em> immer dann w\u00e4hlen wenn man sich nicht sicher ist.<\/p>\n<p>Quellen:<br \/>\n<a href=\"http:\/\/www.tvdr.de\">VDR &#8211; The Video Disk Recorder<\/a><br \/>\n<a href=\"http:\/\/www.vdr-portal.de\/board18-vdr-hardware\/board102-dvb-karten\/p1188188-dvbsky-t9580-dvb-t-t2-c-and-dvb-s2-dual-pcie\/\">DVBSky T9580 DVB-T\/T2\/C and DVB-S2 Dual PCIe<\/a><br \/>\n<a href=\"http:\/\/www.vdr-portal.de\/board60-linux\/board62-software\/board95-xbmc\/102470-gel%C3%B6st-vnsi-client-verbindet-sich-nicht-mit-dem-server\/\">(gel\u00f6st) VNSI Client verbindet sich nicht mit dem server<\/a><br \/>\n<a href=\"http:\/\/www.gerloni.net\/LinuxVDR\/#INVDR\">Sendersuchlauf mit w_scan<\/a><br \/>\n<a href=\"http:\/\/kodi.wiki\/view\/VDR\">VDR quick start guide <\/a><br \/>\n<!--nextpage--><\/p>\n<h2>Finally Kodi!<\/h2>\n<p><a href=\"http:\/\/kodi.tv\"><img decoding=\"async\" class=\"alignright\" src=\".\/wp-content\/uploads\/sites\/8\/2015\/09\/kodi.png\" alt=\"Kodi Media Center\"><\/a><br \/>\nNachdem nun die Basis-Installation steht, die Hardware verf\u00fcgbar ist und <em>VDR<\/em> l\u00e4uft k\u00f6nnen wir nun zum finalen Schritt kommen bei dem wir alles zusammen bringen. Zu Beginn wurden die Paketquellen um <em>debian-multimedia<\/em> erweitert, damit sind wir nun in der Lage die neuere <em>Kodi<\/em> Version <em>Helix<\/em> anstatt des alten <em>XBMC<\/em>, welches noch in den Standard-Repositories von <em>Debian<\/em> ist, zu verwenden. Zus\u00e4tzlich installieren wir das Gegenst\u00fcck zum <em>VNSI Server PlugIn<\/em> von <em>VDR<\/em>, das <em>kodi-pvr-vdr-vnsi PlugIn<\/em> welches es erlaubt <em>VDR<\/em> durch <em>Kodi<\/em> zu steuern.<\/p>\n<pre>Me@myHost:~# apt-get install \\\nkodi \\\nkodi-eventclients-common \\\nkodi-pvr-vdr-vnsi \\\nkodi-skin-confluence \\\nkodi-standalone<\/pre>\n<p>Zu beachten ist das wie bei <em>VDR<\/em> auch, <em>Kodi<\/em> in einem eigenen Benutzerkontext l\u00e4uft. Das kann allerdings bei verschiedenen Distributionen unterschiedlich gehandhabt werden, unter <em>Debian<\/em> hei\u00dft dieser Benutzer i.d.R. <em>kodi<\/em> und entgegen dem Standard befinden sich die Konfigurationsdateien nicht unter <em>\/etc<\/em>, sondern im <em>home\/kodi\/.kodi<\/em> Ordner. Eine typische Struktur f\u00fcr diesen Ordner sollte ungef\u00e4hr so aussehen.<\/p>\n<pre>Me@myHost:\/home\/kodi\/.kodi# ls -l\ntotal 28K\ndrwxr-xr-x  3 kodi kodi 4.0K Feb 27  2015 addon_data\ndrwxr-xr-x 98 kodi kodi 4.0K Aug 23 10:31 addons\ndrwxr-xr-x  2 kodi kodi 4.0K Feb 27  2015 media\ndrwxr-xr-x  2 kodi kodi 4.0K Feb 27  2015 sounds\ndrwxr-xr-x  2 kodi kodi 4.0K Feb 27  2015 system\ndrwxr-xr-x  6 kodi kodi 4.0K Sep 23 17:32 temp\ndrwxr-xr-x 10 kodi kodi 4.0K Aug 23 10:03 userdata<\/pre>\n<p>Eine der wichtigsten Funktionen, ist die M\u00f6glichkeit die Maschine aus <em>Kodi<\/em> heraus runter zu fahren oder neu zu starten, dazu erweitert man ggfs. die <em>\/etc\/sudoers<\/em> Datei:<\/p>\n<pre>%kodi ALL=NOPASSWD: \/usr\/bin\/xbmc, \/usr\/bin\/kodi, \/bin\/mount, \/bin\/umount, \/sbin\/reboot, \/sbin\/shutdown, \/bin\/systemctl<\/pre>\n<p>um allen Benutzern die Mitglied der Gruppe <em>kodi<\/em> sind die Verwendung der besagten Befehle zu gestatten. Bei manchen Distributionen wird diese Zeile automatisch w\u00e4hrend der Installation gesetzt dann ist ein Eingriff nicht erforderlich.<\/p>\n<h3>Boot Up Preparations<\/h3>\n<p>Nun d\u00fcrfte bei einer Standardinstallation von <em>Debian<\/em> immer noch der <em>Desktop<\/em> starten, das kann man f\u00fcr ein Ger\u00e4t das als <em>Entertainment Hub<\/em>\/<em>Media Center<\/em> fungieren soll nat\u00fcrlich nicht gebrauchen daher sind noch einige Handgriffe n\u00f6tig.<br \/>\nUm nun etwaige Konsolen-Nachrichten beim Boot des System zu unterbinden kann man GRUB die Geschw\u00e4tzigkeit und das nachfragen abgew\u00f6hnen indem man folgende Parameter setzt:<\/p>\n<pre>Me@myHost:~# cat \/etc\/default\/grub \n# If you change this file, run 'update-grub' afterwards to update\n# \/boot\/grub\/grub.cfg.\n# For full documentation of the options in this file, see:\n#   info -f grub -n 'Simple configuration'\n\nGRUB_DEFAULT=0\nGRUB_TIMEOUT=0\n\n[...]\n\nGRUB_CMDLINE_LINUX_DEFAULT=\"quiet text\"\nGRUB_CMDLINE_LINUX=\"console=tty12\"\n\n[...]\n\n# Uncomment to disable graphical terminal (grub-pc only)\nGRUB_TERMINAL=console\n\n[...]\n\nMe@myHost:~# sudo update-grub<\/pre>\n<p>Der erste Parameter startet den ersten Booteintrag in der Liste, das ist f\u00fcr gew\u00f6hnlich der Standardkernel der Installation, der zweite Eintrag reduziert die Wartezeit bis zum Startprozess sodass dieser augenblicklich beginnt. Au\u00dferdem wird in den folgenden Parametern der <em>Kernel<\/em> angewiesen &#8216;quiet&#8217; zu sein, was aber immer noch nicht alle Nachrichten abstellt. Final lenken wir alle weiteren Ausgaben auf eine andere Konsole (<em>tty12<\/em>) um. Die einzige Nachricht die dann noch \u00fcbrig bleibt ist:<\/p>\n<p><img decoding=\"async\" src=\".\/wp-content\/uploads\/sites\/8\/2015\/09\/BootConsoleLog.jpg\" alt=\"\"><\/p>\n<p>Leider ist diese Ausgabe in den tiefen von <em>GRUB<\/em> (<em>\/etc\/grub.d\/10_linux<\/em>) verbuddelt, \u00c4nderungen sollten hier nur erfahrene Benutzer vornehmen, die Gefahr sich die <em>Boot-<\/em>Prozedur durch unbedachte \u00c4nderungen zu zerschie\u00dfen ist recht gro\u00df. Eine M\u00f6glichkeit best\u00e4nde noch darin einen <em>Splash-Screen<\/em> zu verwenden, das \u00fcberlasse ich aber dem geneigten Leser.<\/p>\n<blockquote><p><span style=\"color: #ff0000;\">Achtung!<\/span><br \/>\nEin Hinweis f\u00fcr Leute die einen propriet\u00e4ren Treiber vorziehen. Die Verwendung eines Splash-Screen beim Startprozess ist insbesondere deshalb problembehaftet weil die Verwendung eines Framebuffers u.U. daf\u00fcr sorgt das sich der propriet\u00e4re Grafiktreiber nicht mehr aktivieren l\u00e4\u00dft weil zuvor schon der Open-Source Treiber aktiviert wurde. Zwar kann man diesen <em>&#8216;black-listen&#8217;<\/em> aber dann funktioniert in manchen F\u00e4llen die Ausgabe des Splash-Screens nicht mehr.<\/p><\/blockquote>\n<p>Damit beim Startprozess der <em>X-Server<\/em> nun direkt <em>Kodi<\/em> startet und nicht den <em>Login-Greeter<\/em> des <em>Windowmanagers<\/em> weist man <em>lightdm<\/em> an direkt die <em>XSession<\/em> der Benutzers <em>kodi<\/em> zu verwenden, daf\u00fcr sollte das <em>kodi-standalone<\/em> Paket installiert sein welches die daf\u00fcr ben\u00f6tigten Dateien mitbringt.<br \/>\nAls kleines Gimmick kann man sich die Anmeldung \u00fcber den Desktop erhalten wenn man <em>lightdm<\/em> in sogenannte <em>Seats<\/em> unterteilt. Damit wird eine <em>XSession<\/em> (und damit <em>Kodi<\/em>) ganz gew\u00f6hnlich \u00fcber den <em>Display<\/em> der lokalen Grafikkarte gestartet. Zus\u00e4tzlich kann man sich im Netz aber immer noch per <em>XDMCP<\/em> Protokoll am <em>XFCE Desktop<\/em> anmelden. Dazu f\u00fcgt man in die Datei <em>\/etc\/lightdm\/lightdm.conf<\/em> folgendes ein:<\/p>\n<pre>[...]\n#\n# Seat configuration\n#\n# Each seat must start with \"Seat:\".\n# Uses settings from [SeatDefaults], any of these can be overriden by setting them in this section.\n#\n\n# put greeter on seat 0 as a 'virtual' remote display\n[Seat:0]\ntype=xremote\ngreeter-session=lightdm-gtk-greeter\nxserver-allow-tcp=true\nuser-session=default\n\n# start kodi xsession on seat 1 on the local display\n[Seat:1]\nxdg-seat=seat1\nautologin-user=kodi\nautologin-user-timeout=0\nuser-session=kodi\ngreeter-session=\nminimum-vt=8\n\n#\n# XDMCP Server configuration\n#\n# enabled = True if XDMCP connections should be allowed\n# port = UDP\/IP port to listen for connections on\n# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf)\n#\n# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn.  Alternatively\n# it can be a word and the first 7 characters are used as the key.\n#\n[XDMCPServer]\nenabled=true\nport=177\nkey=<\/pre>\n<p>Durch die Zeile <em>autologin-user=kodi<\/em> startet <em>lightdm<\/em> direkt in die <em>XSession<\/em> des Benutzers <em>kodi<\/em>, in dessen Startskript wird wiederrum <em>Kodi<\/em> ohne Umwege gestartet, das hat den Vorteil das nirgendwo ein <em>Windowmanager<\/em> dazwischen sitzt.<\/p>\n<blockquote><p><span style=\"color: #ff0000;\">Achtung!<\/span><br \/>\nZu dieser Startmethode gibt es noch einige Alternativen je nach Distribution, manche bevorzugen Init-Skripts, manche verwenden systemd oder upstart, sogar Socket Activation ist m\u00f6glich. Ich habe mich f\u00fcr diese entschieden weil sie zum einen den Desktop per XDMCP erh\u00e4lt und zum anderen als Konfiguration recht einfach zu realisieren ist. Manch andere Methode erfordert doch einiges mehr an Bash-KungFu.<\/p><\/blockquote>\n<p>Nach einem Neustart sollte nun direkt <em>Kodi<\/em> starten. Wer dazu seine Box bereits im Wohnzimmer platziert hat m\u00f6chte evtl. eine Fernbedienung f\u00fcr die weitere Konfiguration benutzen um nicht umst\u00e4ndlicherweise jedes Mal Tastatur und Maus anzuschlie\u00dfen, eine Anleitung wie man das Smartphone daf\u00fcr verwendet findet man <a href=\"http:\/\/3ronco.vahanus.net\/?p=273&amp;page=6\">hier<\/a>.<\/p>\n<p><img decoding=\"async\" src=\".\/wp-content\/uploads\/sites\/8\/2015\/09\/BootUpKodi.jpg\" alt=\"\"><\/p>\n<h3>Basiseinstellungen zur Video- &amp; Audioausgabe<\/h3>\n<p>\u00dcblicherweise schlie\u00dft man die Grafikkarte per HDMI an, eigentlich kann man hier mit den voreingestellten Standardwerten fortfahren, achten sollte man nur darauf das die native Aufl\u00f6sung des Display verwendet wird, i.d.R. ist das bei Fernsehern die 1920&#215;1080 <em>FullHD<\/em>-Aufl\u00f6sung mit einer Wiederholrate (<em>Refresh Rate<\/em>) von 60 Hz au\u00dferdem sollte unter <em>Display Mode<\/em> die Einstellung <em>Full Screen<\/em> gew\u00e4hlt sein. Unter <em>Preferred Mode<\/em> sollte man evtl. &#8220;Same as movie&#8221; einstellen, das sorgt daf\u00fcr das die Wiederholrate ggfs. an die Wiedergabe des Videos angepasst wird sollte das erforderlich sein.<\/p>\n<p><img decoding=\"async\" src=\".\/wp-content\/uploads\/sites\/8\/2015\/09\/Kodi-Settings-System-Video.jpg\" alt=\"Video Settings\"><\/p>\n<p>Normalerweise wird f\u00fcr die Audio-Ausgabe der 3,5mm Klinken-Ausgang der Audio-Karte verwendet. Fast alle neueren <em>Mainboards<\/em> bieten aber auch eine Audio-Ausgabe per <em>HDMI<\/em> an um die Audio-Ausgabe des Fernsehers zu nutzen und um weitere Kabel einzusparen. Wer ein separates Boxen-System verwendet kann hier u.U. die Cinch-Ausg\u00e4nge des Fernsehers verwenden, das hat den Vorteil das man sich zus\u00e4tzliches Umschalten der Audioquelle auf einer separaten Fernbedienung einsparen kann, sollten mehrere Ger\u00e4te an den Fernseher angeschlossen sein da jedes Ger\u00e4t seine Audiospur per <em>HDMI<\/em> einspeist.<\/p>\n<p><img decoding=\"async\" src=\".\/wp-content\/uploads\/sites\/8\/2015\/09\/Kodi-Settings-System-Audio.jpg\" alt=\"Select audio output device.\"><\/p>\n<h3>Konfiguration des <em>kodi-pvr-vdr-vnsi<\/em> PlugIn<\/h3>\n<p>Um jetzt zun\u00e4chst einmal eine grundlegende Fernsehfunktionalit\u00e4t zu erhalten konfigurieren wir <em>Kodi<\/em> f\u00fcr die Benutzung mit <em>VDR<\/em>.<\/p>\n<p>Um in die Einstellungen zu gelangen navigiert man zu:<\/p>\n<pre>Settings &gt;&gt;\nAdd-Ons &gt;&gt;\nDisabled Add-ons &gt;&gt;\nPVR Client &gt;&gt;\nVDR VNSI Client &gt;&gt;\nConfigure<\/pre>\n<p>anschlie\u00dfend sollte man hier landen:<\/p>\n<p><img decoding=\"async\" src=\".\/wp-content\/uploads\/sites\/8\/2015\/09\/Kodi-VDR-VNSI-Settings.jpg\" alt=\"Kodi's VDR VNSI Client Settings\"><\/p>\n<p>Das Erscheinungsbild dieses Konfigurationsdialogs weicht vom \u00fcblichen Look ab weil ich hier ein anderes <em>Theme<\/em> verwende aber die Felder als solche sollten zu identifizieren sein. Die entscheidende Einstellung hier ist der <em>VDR Hostname or IP<\/em> den wir, aufgrund unserer vorangegangenen Einstellung in VDR, auf <em>localhost<\/em> oder entsprechend auf <em>127.0.0.1<\/em> setzen. Der Port sollte auf 34890 eingestellt sein, i.d.R. sind diese Einstellung bereits so gesetzt in dem Fall kann man den Dialog einfach mit OK best\u00e4tigen und aktivieren indem man anschlie\u00dfend <em>Enable<\/em> ausw\u00e4hlt. Abschlie\u00dfend mu\u00df man nun noch das <em>TV Feature<\/em> unter <em>Settings &gt;&gt; TV &gt;&gt; General &gt;&gt; Enable<\/em> aktivieren.<\/p>\n<p><img decoding=\"async\" src=\".\/wp-content\/uploads\/sites\/8\/2015\/09\/Kodi-Settings-TV-enable.jpg\" alt=\"\"><\/p>\n<p>Nach einem weiteren Neustart f\u00e4llt zun\u00e4chst die Einblendung oben rechts ins Auge&#8230;<\/p>\n<p><img decoding=\"async\" src=\".\/wp-content\/uploads\/sites\/8\/2015\/09\/Kodi-PVR-manager.jpg\" alt=\"PVR manager is starting up...\"><\/p>\n<p>&#8230; und anschlie\u00dfend findet ein Scan der <em>EPG<\/em> Programmdaten statt.<\/p>\n<p><img decoding=\"async\" src=\".\/wp-content\/uploads\/sites\/8\/2015\/09\/Kodi-EPG.jpg\" alt=\"Loading EPG from database...\"><\/p>\n<p>&#8230; welches im EPG Men\u00fc dann so aussieht<\/p>\n<p><img decoding=\"async\" src=\".\/wp-content\/uploads\/sites\/8\/2015\/09\/Kodi-TV-EPG.jpg\" alt=\"EPG menu\"><\/p>\n<p>et voil\u00e0<\/p>\n<p><img decoding=\"async\" src=\".\/wp-content\/uploads\/sites\/8\/2015\/09\/Kodi-TV-Menu.jpg\" alt=\"Kodi's TV menu\"><br \/>\n<img decoding=\"async\" src=\".\/wp-content\/uploads\/sites\/8\/2015\/09\/Kodi-TV.jpg\" alt=\"Kodi's TV Feature\"><\/p>\n<p>Quellen:<br \/>\n<a href=\"http:\/\/kodi.tv\">kodi.tv<\/a><br \/>\n<a href=\"https:\/\/wiki.archlinux.org\/index.php\/Kodi#Xsession_with_LightDM\">Kodi Xsession with lightdm.<\/a><br \/>\n<a href=\"http:\/\/unix.stackexchange.com\/questions\/87169\/autostart-all-lightdm-seats-and-show-one-as-default\">Autostart all LightDM seats and show one as default<\/a><br \/>\n<a href=\"http:\/\/forums.debian.net\/viewtopic.php?f=5&amp;t=66484\">Make the boot realy quiet<\/a><br \/>\n<!--nextpage--><\/p>\n<h2>Kodi Extras<\/h2>\n<p>Hier noch einige Extras die das Leben im Umgang mit <em>Kodi<\/em> erleichtern. Zus\u00e4tzlich zum Standard-<em>AddOn-Repository<\/em> der <em>Kodi<\/em>-Macher lassen sich noch weitere, von anderen Anbietern installieren. Nat\u00fcrlich sollte man damit vorsichtig sein wenn man sich nicht sicher sein kann ob die Quelle vertrauensw\u00fcrdig ist. Es w\u00e4re durchaus m\u00f6glich das sowas gerne als Einfallstor f\u00fcr Viren und Trojaner mi\u00dfbraucht wird, nichtsdestotrotz existieren einige private Repos von Kodi-Programmierern die dort ihre <em>AddOns<\/em> anbieten die sich eigentlich noch in der Entwicklung befinden jedoch schon \u00f6ffentlich zug\u00e4nglich sind. Viele dieser <em>Beta-AddOns<\/em> werden aber schon seit einer Weile entwickelt und manche davon funktionieren schon recht zu verl\u00e4ssig.<br \/>\nAlle <em>AddOns<\/em> aufzulisten w\u00fcrde hier zu weit gehen aber einige der g\u00e4ngigsten <em>AddOns<\/em> aus dem Standard-Repository sind z.B. <em>YouTube<\/em>, <em>Twitch<\/em>, <em>Netflixbmc<\/em>, <em>Rom Collection Browser<\/em>, &#8230; auf einige dieser m\u00f6chte sp\u00e4ter noch n\u00e4her eingehen. Aber zuvor noch ein Blick auf die M\u00f6glichkeit <em>Kodi<\/em> vom eigenen <em>Smartphone<\/em> fern zu bedienen.<\/p>\n<h3>Remotes on Steroids, &#8230; eh no, Androids<\/h3>\n<p>Normalerweise machen sich diese <em>Apps<\/em>, die als Fernbedienung f\u00fcr <em>Kodi<\/em> fungieren sollen, das <em>WLAN<\/em> des <em>Subnetzes<\/em> zu nutze in der sich auch eine <em>Kodi<\/em>-Maschine finden l\u00e4\u00dft. Dabei w\u00e4hlt man im ersten Schritt aus welche Instanz einer <em>Kodi<\/em>-Maschine man steuern m\u00f6chte, es ist also auch m\u00f6glich mehrere Instanzen zu steuern. Wurde eine Instanz ausgew\u00e4hlt, landet man in einer Bedien\u00f6berfl\u00e4che die einer Fernbedienung schon sehr \u00e4hnlich sieht.<br \/>\nIn diesem Beispiel gehe ich von <em>Android<\/em> aus, ich bin mir aber relativ sicher dass es dieselben oder \u00e4hnliche <em>Apps<\/em> ebenfalls f\u00fcr <em>iOS<\/em> gibt, jedoch gehe ich hier nicht n\u00e4her darauf ein. Die offizielle <em>Remote-App<\/em> f\u00fcr <em>Kodi<\/em> nennt sich <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=org.xbmc.kore\" target=\"_blank\">Kore<\/a>.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/lh3.ggpht.com\/UB_cUbC6zsjrbwr0OiHzbezLEHZf3TTvE3kbJYfwVHG-x7msH3hm6yL74cEPzevvLt0=h900\" alt=\"Official remote app for Kodi: Kore\" width=\"315\" height=\"525\"><\/p>\n<p><em>Kore<\/em> bietet die gew\u00f6hnlichen Kn\u00f6pfe zur Men\u00fcnavigation, Auswahl von Men\u00fceintr\u00e4gen oder den Aufruf zus\u00e4tzlicher Informationsdialoge z.B. <em>EPG<\/em> oder Abfragen zum aktuell laufenden Film aus den g\u00e4ngigen Filmdatenbanken. Zwei weitere Bildschirme erg\u00e4nzen die Hauptbedienung, der Eine um eine Wiedergabeliste mit Eintr\u00e4gen die wie in einer Warteschlange abgespielt werden. Lokale Videos k\u00f6nnen hier ebenso auftauchen wie <em>YouTube<\/em>-Videos die durch den <em>Share<\/em>-Knopf in diese Liste aufgenommen wurden. Der andere Bildschirm bietet die g\u00e4ngige Videokontrolle, &#8230;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/lh6.ggpht.com\/rNxYlODJOy9sienzy0mSpPd2GKtnS2l8p5WsWW1cSsFMnO9pHnLZqN35UqZlnFm5mw=h900\" alt=\"Videocontroller of Kore\" width=\"315\" height=\"525\"><\/p>\n<p>&#8230; wie Play, Stop, Pause und eine Playbar in der auch das sonst \u00fcbliche Spulen ersetzt wird indem man einfach einen Zeitindex w\u00e4hlt. Die Lautst\u00e4rke kann \u00fcber die Wippschalter an der Seite reguliert werden so wie das sonst auch \u00fcblich ist allerdings nur solange die <em>App<\/em> auch angezeigt wird, wechselt man in einer andere <em>App<\/em> wird logischerweise dessen Lautst\u00e4rke reguliert und nicht die der <em>Kodi<\/em>-Maschine!<\/p>\n<h4><em>Push-Notifications<\/em> als Einblendung<\/h4>\n<p><em>Notify<\/em> ist eine <em>Kompanion-App<\/em> for <em>Kore<\/em> die es erlaubt <em>Push<\/em>-Nachrichten bei <em>Kodi<\/em> oben rechts einzublenden. Anrufe, <em>Chat<\/em> oder <em>eMail<\/em>, so bleibt man auf dem Laufenden und mu\u00df nicht mal mehr zum <em>Smartphone<\/em> greifen.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-471\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/09\/Screenshot_Kore_Notify.png\" alt=\"Screenshot_Kore_Notify\" width=\"315\" height=\"525\"><\/p>\n<p>Die <em>App<\/em> erlaubt nat\u00fcrlich eine Auswahl derjenigen <em>Push<\/em>-Nachrichten die auf <em>Kodi<\/em> angezeigt werden sollen ansonsten k\u00f6nnte ein reger <em>Chat<\/em> sehr schnell als st\u00f6rend empfunden werden. Diese <em>App<\/em> ist bisher leider noch in der Betaphase und \u00fcber <em>Google Play<\/em> z.Z. nicht direkt verf\u00fcgbar wer sich aber der Testergruppe bei <em>Google+<\/em> anschlie\u00dfen m\u00f6chte erh\u00e4lt einen <em>Download-Link<\/em>.<\/p>\n<h4>Battle of the Remotes<\/h4>\n<p>Als Alternative hat auch die <em>Remote-App<\/em> <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=org.leetzone.android.yatsewidgetfree&amp;hl=de\">Yatse<\/a> f\u00fcr <em>Kodi<\/em> besondere Popularit\u00e4t erlangt. Diese bietet nahezu alle <em>Features<\/em> von <em>Kore<\/em> an, ist \u00e4hnlich strukturiert und geht manchmal noch ein bi\u00dfchen dar\u00fcber hinaus:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-471\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/09\/Yatse1.jpg\" alt=\"Another remote for Kodi: Yatse\" width=\"315\" height=\"525\"><\/p>\n<p>Ein ganz besonderes Feature ist der <em>Fingerslide<\/em>, den man mit dem Knopf ganz rechts aktivieren kann. Die \u00fcblichen Kn\u00f6pfe verschwinden dann und es bleibt nur noch eine Fl\u00e4che \u00fcbrig, die <em>Slides<\/em> mit dem Finger registriert:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-471\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/09\/Yatse2.jpg\" alt=\"Switch to Slidemode\" width=\"315\" height=\"525\"><\/p>\n<p>was auch optisch durch einen blauen Punkt wiedergegeben wird wenn diese Fl\u00e4che ber\u00fchrt wird.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-471\" src=\"http:\/\/3ronco.vahanus.net\/wp-content\/uploads\/sites\/8\/2015\/09\/Yatse3.jpg\" alt=\"Yatse's Fingerslide\" width=\"315\" height=\"525\"><\/p>\n<p>Rauf &amp; runter wechselt das Programm, Rechts &amp; Links spult vor und zur\u00fcck, <em>Single-Tap<\/em> w\u00e4hlt einen Menueintrag aus. <em>Double-Tap<\/em> kehrt zur \u00fcbergeordneten Men\u00fc zur\u00fcck. Gro\u00dfartig intuitiv!<\/p>\n<h4>Der l\u00e4stige Sperrbildschirm<\/h4>\n<p>Wer ein Weile lang eine <em>App<\/em> dieser Art als Fernbedienung verwendet, wird bald merken das sich der Sperrbildschirm des Smartphones bald als recht l\u00e4stig erweist weil jede kleine Bedienung nach kurzer Zeit eine erneute Entsperrung erfordert auch wenn man nur mal kurz die Lautst\u00e4rke \u00e4ndern m\u00f6chte. Eine M\u00f6glichkeit w\u00e4re die Dauer bis zur Sperrung zu verl\u00e4ngern aber das verschiebt das Problem nur und wirkt dann teilweise noch l\u00e4stiger weil unterschiedliche Zeitspannen dar\u00fcber entscheiden ob nun entsperrt werden mu\u00df.<br \/>\nEine M\u00f6glichkeit den Sperrbildschirm komplett abzustellen ist nicht empfehlenswert da das <em>Smartphone<\/em> bei Benutzung in der freien Wildbahn dann g\u00e4nzlich ungesch\u00fctzt w\u00e4re. Eine elegante L\u00f6sung bietet sich hier nur f\u00fcr <em>Poweruser<\/em> an die <em>Root<\/em>-Zugriff auf das <em>Smartphone<\/em> haben und z.B. <em>Frameworks<\/em> wie <em>Xposed<\/em> verwenden. Hier gibt es ein Modul namens <em>No Lock Home<\/em> das den Sperrbildschirm nur tempor\u00e4r abstellt z.B. wenn man zuhause im privaten <em>WLAN<\/em> eingew\u00e4hlt ist.<\/p>\n<h3>Amazon Prime<\/h3>\n<p>blah!<\/p>\n<h3>Netflix<\/h3>\n<p>meh!<\/p>\n<p>Quellen:<br \/>\n<a href=\"http:\/\/www.tutonaut.de\/anleitung-amazon-prime-instant-video-kodi-xbmc-einrichten.html\">Anleitung: Amazon Prime Instant Video in Kodi (XBMC) einrichten<\/a><br \/>\n<a href=\"https:\/\/play.google.com\/store\/apps\/details?id=org.xbmc.kore\">Kore<\/a><br \/>\n<a href=\"https:\/\/play.google.com\/store\/apps\/details?id=org.leetzone.android.yatsewidgetfree\">Yatse<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Als kleines Hobbyprojekt hatte ich mir schon lange vorgenommen mir ein eigenes Entertainment Hub mit Kodi (vgl. XBMC) zu bauen, dabei soll dieses System im Alltagsgebrauch meinen alten TechniSat Receiver ersetzen. Es soll u.a. dazu dienen Fernsehen zu schauen, Musik zu h\u00f6ren z.B. lokale Streams, von CD oder auch online per Internet Radio au\u00dferdem m\u00f6chte [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[37,38,29],"class_list":["post-273","post","type-post","status-publish","format-standard","hentry","category-bb","tag-hardware","tag-kodi","tag-linux"],"_links":{"self":[{"href":"http:\/\/3ronco.vahanus.net\/index.php?rest_route=\/wp\/v2\/posts\/273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/3ronco.vahanus.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/3ronco.vahanus.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/3ronco.vahanus.net\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/3ronco.vahanus.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=273"}],"version-history":[{"count":152,"href":"http:\/\/3ronco.vahanus.net\/index.php?rest_route=\/wp\/v2\/posts\/273\/revisions"}],"predecessor-version":[{"id":907,"href":"http:\/\/3ronco.vahanus.net\/index.php?rest_route=\/wp\/v2\/posts\/273\/revisions\/907"}],"wp:attachment":[{"href":"http:\/\/3ronco.vahanus.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/3ronco.vahanus.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=273"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/3ronco.vahanus.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}