Mahlzeit,
dies soll als kurze Anleitung dienen, wie man den AppleTV 2 als reinen streaming client benutzt, d.h. weder Datenbank, noch Thumbnails (Medien schon gar nicht) werden auf dem ATV2 gespeichert, sondern aus dem lokalen Netzwerk eingebunden.
Beachtet werden muss dabei, dass die Datenbank Version fürs ATV2 (pre-)10.0 ist, es müssen also alle XBMC max. v10.0 sein. (*update* siehe Punkt 4.)
1.) MySQL Datenbank.
Zunächst müssen alle (teilnehmenden) XBMCs für die Nutzung einer MySQL Datenbank vorbereitet und die zentrale DB eingerichtet werden.
Wie das funktioniert erfahrt Ihr hier: [HowTo] Datenbank auf MySQL umstellen und im Netzwerk verfügbar machen.
Zusätzlich habe ich noch einen "read-only"-Datenbankbenutzer für den ATV2 erstellt:
2.) Thumbnails.
Damit alle XBMCs auch Zugriff auf die selben Thumbnails haben, wird dieser Ordner im Netzwerk per samba/Windowsfreigabe freigegeben und jeweils für die teilnehmenden XBMCs eingebunden.
Beispiel: smb.conf
3.) das "Einbinden" über 'pathsubstitution'.
Da man auf dem ATV2 keine samba-shares über das Bertiebssystem iOS mounten kann, muss man sich eines kleinen Tricks im XBMC bedienen und den internen samba-client des XBMCs benutzen. Mit der "pathsubstitution" in der [definition='2','1']advancedsettings[/definition].xml wird der lokale Thumbnails-Ordner durch die Freigabe ersetzt:
<pathsubstitution>
<substitute>
<from>special://masterprofile/Thumbnails</from>
<to>smb://xbmc:xbmc@192.168.2.2/xbmcthumbs/</to>
</substitute>
</pathsubstitution>
4.) Nutzen einer gemeinsamen Datenbank mit dem ATV2 (10.0 "Dharma") und pre-11.0 "Eden". (Umgehen des Versionskonfliktes)
Wie oben schon gesagt, ist die DB es ATVs auf dem Stand v42, der aktuelle source-code jedoch mittlerweile bei 44 angekommen.
Um diesen Konflikt zu umgehen kann man einen mysql-proxy aufsetzen, der die Anfragen entsprechend umschreibt und die richtige Versionsnummer ausgibt.
Danach folgenden Text als XBMCatv42.lua in /etc/mysql/ speichern. (beispielsweise)
function read_query( packet )
print(proxy.connection.client.src.address)
if string.byte(packet) == proxy.COM_QUERY then
local query = string.sub(packet, 2)
if string.match(string.upper(query), '^%s*SELECT IDVERSION FROM VERSION')
then
proxy.response.type = proxy.MYSQLD_PACKET_OK
proxy.response.resultset = {
fields = {
{
type = proxy.MYSQL_TYPE_INT,
name = "idVersion",
},
},
rows = { { 42 } }
}
return proxy.PROXY_SEND_RESULT
else
return proxy.PROXY_SEND_QUERY
end
end
end
Alles anzeigen
Nun könnt Ihr den proxy mit folgendem Kommando, z.B. über die rc.local, starten (IP Adressen und Port evtl. anpassen):
/usr/bin/mysql-proxy --max-open-files 1024 --proxy-lua-script=/etc/mysql/XBMCatv42.lua --proxy-address=192.168.2.2:3307 --proxy-backend-addresses=192.168.2.2:3306
Natürlich müsst Ihr dann in der [definition='2','1']advancedsettings[/definition].xml auf dem atv2 den Port für die Datenbankverbindung auf 3307 ändern:
[quelle]http://forum.xbmc.org/showpost.php?p=743080&postcount=193[/quelle]
Fragen / Meinungen / Kritik zu diesem HowTo im entsprechenden Diskussionsthread