%
% slims.tex
% Last Update: $Id$
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Kapitel Slims %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Achtung: Dateien muessen mit latin1-Encoding gespeichert werden!
% Attention: Files must be saved using latin1 encoding!
%

\chapter{Das Slims-Paket}
%------------------------

\section{Die Einleitung}
%-----------------------

    Dieses Paket basiert auf der Software Slimserver der amerikanischen
    Firma 'Logitech, Inc.'. Es erm"oglicht die komfortable Nutzung
    der 'Squeezebox'-Endger"ate und erlaubt das Abspielen von Musikdateien
    oder auch Audio-Streams.


\section{Die Funktionen}
%-----------------------

    Das Slims-Paket besteht aus folgenden Komponenten:

    \begin{itemize}
        \item Slimserver - wird zum Betrieb der Squeezebox-Endger"ate ben"otigt.\\
            (\url{http://www.slimdevices.com/})
        \item PhoneBook.pm - wird zur Anzeige eines Telefonbuchs ben"otigt.\\
            (\url{http://www.slimp3.rtfm.info/downloads/})
        \item RadioPlaylist.pm - wird zum Modifizieren der Radio-Liste ben"otigt.\\
            (\url{http://petherton.pwp.blueyonder.co.uk/SlimServer/})
        \item AmazonImage - wird zum Herunterladen von Plattenh"ullen-Bilddateien ben"otigt.\\
            (\url{http://www.victorland.com/slimp3/})
        \item SuperDateTime - wird zum Anzeigen von Wetterdaten verwendet.\\
            (\url{http://www.gregbrown.net/squeeze/})
    \end{itemize}

\section{Die Voraussetzungen}
%----------------------------

    Dieses Paket ben"otigt zur korrekten Funktion ein installiertes Perl-Paket.


\section{Die Installation}
%-------------------------

   Das Slims-Paket wird "uber das Setup-Men"u installiert. Wird eine
   "altere Paketversion vorgefunden, so wird deren Konfiguration
   gesichert und das alte Paket deinstalliert bevor die neuen
   Programmdateien installiert und die Konfiguration "ubernommen wird.
   Danach wird direkt der Konfigurations-Editor gestartet um die
   Konfiguration eventuell anpassen zu k"onnen. Nach Beendigung dieses
   Schrittes werden die Konfigurationsdateien generiert und das
   ben"otigte Programm gestartet.


\section{Das Men"u im Setup-Programm}
%------------------------------------

    Das Men"u im Setup-Programm ist wie folgt aufgebaut:

    \begin{itemize}
        \item Slimserver administration
        \begin{itemize}
            \item View documentation: Anzeigen der Dokumentation
            \item Edit configuration: Bearbeiten der Konfiguration
            \item Advanced configuration file handling: Konfigurationen verwalten
            \item View configuration log file: Die Konfigurations-Logmeldungen anzeigen
            \item Show Status: Status der Slimserver-Komponenten anzeigen
            \item Stop slimserver services: Alle Slimserver-Komponenten anhalten
            \item Start slimserver services: Alle Slimserver-Komponenten starten
            \item View log file: Die Slimserver-Logdatei anzeigen
            \item Return: Untermen"u verlassen
        \end{itemize}
    \end{itemize}

    Die Men"upunkte d"urften selbsterkl"arend sein, da sie keinerlei weitere
    Eingaben erwarten. Aus diesem Grund wird auf deren Funktion nicht weiter
    eingegangen.


\section{Die "Anderung der Konfiguration}
%----------------------------------------

    Die Konfiguration kann "uber den Men"upunkt 'Edit configuration'
    ge"andert werden. Standardm"a"sig wird der Editor aufgerufen, der in
    der Environment-Konfiguration "uber die Variable 'EDITOR' festgelegt
    wurde. Nachdem der Editor beendet wurde wird abgefragt, ob die
    Konfiguration aktiviert werden soll. Wird dies best"atigt, werden
    "uber ein Skript die Anpassungen umgehend wirksam gemacht.


\section{Die Konfigurationsdatei}
%--------------------------------

    In der Konfigurationsdatei, die "uber das Men"u zug"anglich ist, sind
    folgende Parameter vorhanden; wer sie von Hand editieren will findet
    die Konfigurationsdatei unter \texttt{/etc/config.d/slims}.


\section{Die Parameter}
%----------------------

\begin{description}
    \config{START\_SLIMS}{START\_SLIMS}{STARTSLIMS}
        F"ur die Aktivierung des Slims-Programms muss diese Variable auf
        den Wert 'yes' gestellt werden. Die Einstellung 'no' schaltet
        das Slims-Programm ab.

        G"ultige Werte: yes, no

        Standardeinstellung: \texttt{START\_SLIMS='no'}

    \config{SLIMS\_ALLOWED\_ADDRESSES}{SLIMS\_ALLOWED\_ADDRESSES}{SLIMSALLOWEDADDRESSES}
        "Uber diesen Parameter k"onnen IP-Adressen oder Netzwerke
        angegeben werden, von denen es zus"atzlich zum lokalen
        Host erlaubt ist eine Verbindung zum Slimserver-Daemon
        aufzubauen.

        G"ultige Werte: IP-Adressen und/oder Netzwerke

        Beispiel: \texttt{SLIMS\_ALLOWED\_ADDRESSES='192.168.6.20,192.168.7.0/24'}

    \config{SLIMS\_LISTEN\_PORT}{SLIMS\_LISTEN\_PORT}{SLIMSLISTENPORT}
        "Uber diesen Parameter wird der TCP-Port festgelegt, auf dem der
        Slimserver-Daemon den Web-Frontend f"ur die Konfiguration zur
        Verf"ugung stellt.

        G"ultige Werte: Zahl

        Standardeinstellung: \texttt{SLIMS\_LISTEN\_PORT='9000'}

    \config{SLIMS\_OPTIONS}{SLIMS\_OPTIONS}{SLIMSOPTIONS}
        "Uber diesen Parameter k"onnen optionale Startparameter
        definiert werden. Eine Liste dieser Parameter kann man
        sich mittels des folgenden Aufrufs anzeigen lassen:\\
        \texttt{/usr/bin/slimserver.pl --help}

        G"ultige Werte: Zul"assiger Parameter

        Beispiel: \texttt{SLIMS\_OPTIONS='--nosetup'}

    \config{SLIMS\_WEB\_AUTH}{SLIMS\_WEB\_AUTH}{SLIMSWEBAUTH}
        "Uber diesen Parameter wird festgelegt ob beim Zugriff
        auf die Slimserver-Weboberfl"ache eine Authentifizierung
        erfolgen soll oder nicht.

        G"ultige Werte: yes oder no

        Standardeinstellung: \texttt{SLIMS\_WEB\_AUTH='no'}

    \config{SLIMS\_WEB\_USER}{SLIMS\_WEB\_USER}{SLIMSWEBUSER}
        "Uber diesen Parameter wird der Benutzername festgelegt, mit
        dem die Authentifizierung an der Slimserver-Weboberfl"ache
        erfolgen soll. Dieser Parameter wird nur ausgewertet,
        wenn \jump{SLIMSWEBAUTH}{SLIMS\_WEB\_AUTH='yes'} gesetzt
        wurde.

        G"ultige Werte: Benutzername

        Beispiel: \texttt{SLIMS\_WEB\_USER='slims'}

    \config{SLIMS\_WEB\_PASS}{SLIMS\_WEB\_PASS}{SLIMSWEBPASS}
        "Uber diesen Parameter wird das Kennwort festgelegt, mit
        dem die Authentifizierung an der Slimserver-Weboberfl"ache
        erfolgen soll. Dieser Parameter wird nur ausgewertet,
        wenn \jump{SLIMSWEBAUTH}{SLIMS\_WEB\_AUTH='yes'} gesetzt
        wurde.

        G"ultige Werte: Kennwort

        Beispiel: \texttt{SLIMS\_WEB\_PASS='geheim'}

    \config{SLIMS\_HTTP\_PROXY}{SLIMS\_HTTP\_PROXY}{SLIMSHTTPPROXY}
        "Uber diesen Parameter kann der Name oder die IP-Adresse
        und den Port eines HTTP/Web Proxy definiert werden, den
        der SlimServer verwenden soll, um auf Server au"serhalb
        ihres Netzwerkes zugreifen zu k"onnen.\\
        (Format: xxx.xxx.xxx.xxx:yyy)

        G"ultige Werte: Name/IP-Adresse und TCP-Port

        Standardeinstellung: \texttt{SLIMS\_HTTP\_PROXY=$''$}

    \config{SLIMS\_AUDIO\_PATH}{SLIMS\_AUDIO\_PATH}{SLIMSAUDIOPATH}
        "Uber diesen Parameter wird das Verzeichnis definiert,
        welches der SlimServer nach Musikdateien durchsuchen
        und dessen Inhalt er zur Musiksammlung hinzuf"ugen soll.
%       Der Eintrag kann leer gelassen werden, falls eine
%       Musiksammlung von iTunes oder MoodLogic verwendet wird.

        G"ultige Werte: absolute Pfadangabe

        Standardeinstellung: \texttt{SLIMS\_AUDIO\_PATH='/var/slims/audio'}

    \config{SLIMS\_AUDIO\_PATH\_USER}{SLIMS\_AUDIO\_PATH\_USER}{SLIMSAUDIOPATHUSER}
        Optionaler Parameter: "Uber diesen Parameter kann ein vom Standard
        abweichender Eigent"umer des "uber den Parameter SLIMS\_AUDIO\_PATH
        definierten Verzeichnisses festgelegt werden. Wird dieser Parameter
        nicht gesetzt, so wird standardm"a"sig der Eigent"umer 'slims' gesetzt.
        \achtung{Wird dieser Parameter falsch gesetzt, so kann dem Slimserver
            der Zugriff auf die Audiodateien entzogen werden!}

        G"ultige Werte: g"ultiger Systembenutzer

        Beispiel: \texttt{SLIMS\_AUDIO\_PATH\_USER='slims'}

    \config{SLIMS\_AUDIO\_PATH\_GROUP}{SLIMS\_AUDIO\_PATH\_GROUP}{SLIMSAUDIOPATHGROUP}
        Optionaler Parameter: "Uber diesen Parameter kann eine vom Standard
        abweichende Eigent"umergruppe des "uber den Parameter SLIMS\_AUDIO\_PATH
        definierten Verzeichnisses festgelegt werden. Wird dieser Parameter
        nicht gesetzt, so wird standardm"a"sig die Eigent"umergruppe 'nogroup'
        gesetzt.
        \achtung{Wird dieser Parameter falsch gesetzt, so kann dem Slimserver
            der Zugriff auf die Audiodateien entzogen werden!}

        G"ultige Werte: g"ultiger Systemgruppe

        Beispiel: \texttt{SLIMS\_AUDIO\_PATH\_OWNER='nogroup'}

    \config{SLIMS\_COVER\_PATH}{SLIMS\_COVER\_PATH}{SLIMSCOVERPATH}
        "Uber diesen Parameter wird das Verzeichnis definiert,
        in welchem die Plattenh"ullen abgelegt werden sollen.
        Generell werden auch die Verzeichnisse der Musikdateien
        nach Bilddateien f"ur die Plattenh"ullen durchsucht.

        G"ultige Werte: absolute Pfadangabe

        Standardeinstellung: \texttt{SLIMS\_COVER\_PATH='/var/slims/cover'}

    \config{SLIMS\_PLAYLIST\_PATH}{SLIMS\_PLAYLIST\_PATH}{SLIMSPLAYLISTPATH}
        "Uber diesen Parameter wird das Verzeichnis definiert,
        in welchem die Wiedergabelisten abgelegt werden sollen.
%       Der Eintrag kann leer gelassen werden, falls keine
%       Wiedergabelisten abgespeichert werden sollen.

        G"ultige Werte: absolute Pfadangabe

        Standardeinstellung: \texttt{SLIMS\_PLAYLIST\_PATH='/var/slims/playlists'}

    \config{SLIMS\_MANUAL\_CONFIGURATION}{SLIMS\_MANUAL\_CONFIGURATION}{SLIMSMANUALCONFIGURATION}
        Wird der Parameter auf 'no' gesetzt, so wird die Konfigurationsdatei
        immer mittels Standardwerte neu geschrieben. Der Wert 'yes' hingegen
        sorgt daf"ur, dass nur die "uber die Konfiguration festgelegten
        Parameter aktualisiert werden. Eventuell "uber die Weboberfl"ache
        durchgef"uhrte "Anderungen bleiben so erhalten.

        G"ultige Werte: yes oder no

        Standardeinstellung: \texttt{SLIMS\_MANUAL\_CONFIGURATION='yes'}
\end{description}


\section{Die Logdateien}
%-----------------------

   Das Slims-Paket verwendet Logdateien, um Meldungen "uber seinen
   laufenden Betrieb zu speichern. Um zu verhindern, dass diese Dateien
   zu gro"s und un"ubersichtlich werden, kann man einstellen wie das System
   mit den Dateien umgehen soll.

\begin{description}
    \config{SLIMS\_LOG\_COUNT}{SLIMS\_LOG\_COUNT}{SLIMSLOGCOUNT}
        "Uber diesen Parameter wird eingestellt, wie viele Logdateien
        vorgehalten werden sollen. Wird dieser Wert "uberschritten, so
        wird die "alteste Logdatei gel"oscht.

        G"ultige Werte: Zahl

        Standardeinstellungen: \texttt{SLIMS\_LOG\_COUNT='10'}

    \config{SLIMS\_LOG\_INTERVAL}{SLIMS\_LOG\_INTERVAL}{SLIMSLOGINTERVAL}
        Dieser Parameter bestimmt in welchen Intervallen die
        Logdateien archiviert werden sollen. Zur Auswahl stehen die
        Schl"usselw"orter 'daily' - t"aglich, 'weekly' - w"ochentlich und
        'monthly - monatlich.

        G"ultige Werte: daily, weekly, monthly

        Standardeinstellungen: \texttt{SLIMS\_LOG\_INTERVALL='weekly'}
\end{description}


\section{Wie geht es weiter?}
%----------------------------

   Nachdem der Slimserver-Daemon gestartet wurde kann die Weboberfl"ache
   "uber einen Webbrowser aufgerufen werden. Hierzu wird einfach der
   Name des Servers, gefolgt von dem "uber den Parameter
   \jump{SLIMSLISTENPORT}{SLIMS\_LISTEN\_PORT} konfigurierten Port,
   eingegeben.

   Beispiel: \texttt{http://<servername>:9000/}

   Wenn \jump{SLIMSWEBAUTH}{SLIMS\_WEB\_AUTH='yes'} gesetzt wurde muss man
   sich vor dem Zugriff authentifizieren. Hierzu werden die "uber die
   Parameter \jump{SLIMSWEBUSER}{SLIMS\_WEB\_USER} und
   \jump{SLIMSWEBPASS}{SLIMS\_WEB\_PASS} festgelegten Account-Daten
   verwendet. Danach kann man die weitere Konfiguration "uber die
   Weboberfl"ache durchf"uhren.

   Wer zus"atzliche Informationen "uber die Slimserver-Server-Software
   oder auch die Squeezebox(en) ben"otigt kann diese "uber die Webseite
   des Herstellers (\url{http://www.slimdevices.com}) abrufen.


\section{Die Problemanalyse}
%---------------------------

\begin{description}
    \config{Debug-Ausgaben aktivieren}{Debug-Ausgaben aktivieren}{Debug-AusgabenaktivierenSLIMS}
        Falls man bei der Fehleranalyse absolut nicht weiterkommt, kann
        man die Variable \texttt{SLIMS\_DO\_DEBUG='yes'} zur
        Datei /etc/config.d/slims hinzuf"ugen und dann mittels
        '/etc/init.d/slims restart' den Slimserver-Daemon neu starten.
        Weitere Fehlersuchm"oglichkeiten k"onnen "uber die Weboberfl"ache des
        Slimserver konfiguriert werden.

    \config{Debug-Ausgaben deaktivieren}{Debug-Ausgaben deaktivieren}{Debug-AusgabendeaktivierenSLIMS}
        Um den Debug-Modus zu beenden muss der Parameter
        \texttt{SLIMS\_DO\_DEBUG='no'} gesetzt und der
        Slimserver-Daemon mittels '/etc/init.d/slims restart' neu
        gestartet werden.
\end{description}
