Benutzer:Runiq: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Runiq (Diskussion | Beiträge)
Die Seite wurde neu angelegt: „{{Unvollständig}} Category:Systemverwaltung Category:Unvollständig Category:Daemons Von der [http://freedesktop.org/wiki/Software/systemd Projek…“
 
Runiq (Diskussion | Beiträge)
Entwurf für den MPD-Artikel
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Unvollständig}}
[[[Category:Anwendungen]]
[[Category:Systemverwaltung]]
[[[Category:Multimedia]]
[[Category:Unvollständig]]
[[[Category:Server]]
[[Category:Daemons]]
[[[Category:Sound]]
{{unvollständig}}
{{righttoc}}
MPD ist ein Audio-Player mit einer Server-Struktur. Er läuft im Hintergrund als Daemon, besitzt eine Playlistverwaltung und eine Musik-Datenbank.


Von der [http://freedesktop.org/wiki/Software/systemd Projektseite]:
{{Installation|repo=extra|paket=mpd}}


'''''systemd'' ist ein System- und Dienstemanager für Linux, kompatibel mit den SysV- und LSB-Initsystemen. '''systemd''' bietet Möglichkeiten zum parallelen Start von Diensten, kann diese über [[D-Bus]] und Sockets starten und erst bei Bedarf starten, behält Prozesse mit Linux [[cgroups|control groups]] im Überblick, unterstützt das Erstellen von Snapshots und das Wiederherstellen des Systems aus selbigen, kümmert sich um Mountpoints. Es fungiert als Drop-In-Ersatz für [[SysVinit|sysvinit]].''
== Konfiguration ==
MPD kann systemweit (Einstellungen betreffen alle Nutzer) oder mit Userrechten (Einstellungen werden vom jeweiligen Nutzer übernommen) gestartet werden. Es ist also auch möglich, mehrere Instanzen des Daemons laufen zu haben. Je nach Einsatzgebiet bietet sich die eine oder die andere Variante an. Auf einem Desktop-System macht sich die Nutzer-Version besser.  


{{Hinweis|1=Für eine ausführliche Erklärung, warum Arch zu systemd gewechselt ist, siehe [https://bbs.archlinux.org/viewtopic.php?pid=1149530#p1149530 diesen Post].}}
Damit MPD Ton ausgeben kann, muss entweder [[ALSA]] oder [[OSS]] installiert und funktionsfähig sein, wahlweise auch [[Pulseaudio]].


Siehe außerdem den [[Wikipedia:Systemd|Wikipedia-Artikel]].
MPD wird über die Datei {{ic|mpd.conf}} konfiguriert ({{ic|man 5 mpd.conf}}). Der Speicherort dieser Datei hängt ebenfalls davon ab, ob MPD als Systemdienst oder mit Nutzerrechten konfiguriert wird (mehr dazu unten). Die wichtigsten Einstellungen sind:


== Dinge, die vor dem Wechsel bedacht werden sollten ==
* {{ic|music_directory}} - Speicherordner für Musikdateien
* {{ic|db_file}} – Pfad zu MPD-eigenen Musikdatenbank
* {{ic|log_file}} – Logdatei des Daemons
* {{ic|playlist_directory}} – Speicherordner für Playlists
* {{ic|pid_file}} – Datei, in der MPD seine Prozess-ID speichert
* {{ic|audio_output}} – Einstellungen für Tonausgabe
* {{ic|state_file}} – "Zustand" von MPD (Playlist, Lied, Position im Lied, etc.)
* {{ic|sticker_file}} - "Sticker"-Datenbank (wo Clients Informationen über Lieder speichern)


* Es wird empfohlen, zum neuen '''initscripts'''-Konfigurationssystem zu wechseln, das im [[rc.conf|rc.conf-Artikel]] beschrieben ist. Sobald das erledigt ist, ist ein Großteil der Arbeit, die beim Wechsel anfällt, getan.
{{Hinweis|Die Dateien müssen bereits existieren und die korrekten Rechte haben, wenn MPD gestartet wird. Fehler in der Konfiguration wird MPD mit einem Abbruch und einer Fehlermeldung quittieren.}}
* [http://freedesktop.org/wiki/Software/systemd/ Belies] dich über systemd.
* Nimm zur Kenntnis, dass systemd ein '''journal'''-System hat, das '''syslog''' ersetzt, auch wenn die beiden nebeneinander existieren können. Siehe den [[#Journal|Journal-Abschnitt]] weiter unten.
* Obwohl systemd Teile der Funktionalität von '''cron''', '''acpid''' oder '''xinetd''' ersetzen kann, ist es nicht notwendig, diese Dienste komplett fallen zu lassen – es sei denn, du willst es.


== Installation ==
=== Systemweiter Start ===
Die Standard-Konfiguration von MPD (zu finden unter {{ic|/usr/share/doc/mpd.conf.example}}) sieht einen systemweiten Start von MPD vor. Die Konfigurationsdatei liegt für diesen Fall unter {{ic|/etc/mpd.conf}}. Die Pfade zu den oben erwähnten Dateien zeigen alle auf verschiedene Unterverzeichnisse von {{ic|/var/lib/mpd}} und benutzen ''mpd'' als User. Da {{ic|/var/lib/mpd}} jedoch standardmäßig ''root'' gehört, muss MPD zunächst Schreibrechte für dieses Verzeichnis erhalten:
 
{{bc|# chown -R mpd /var/lib/mpd}}
 
==== Musikverzeichnis ====
Die Einstellung {{ic|music_directory}} in {{ic|/etc/mpd.conf}} muss auf das Musikverzeichnis zeigen:
 
{{hc|/etc/mpd.conf|
music_directory /pfad/zum/musikverzeichnis
}}
 
{{Hinweis|MPD muss Ausführungsrechte ({{ic|+x}}) in ''allen'' Elternverzeichnissen des Musikverzeichisses haben.}}
 
Das Musikverzeichnis muss von MPD gelesen werden können. Wenn es außerhalb von {{ic|/var/lib/mpd}} liegt, ist das jedoch häufig nicht der Fall. Um dies zu umgehen, kann man das Musikverzeichnis neu an einen Ort mounten, den der ''mpd''-User sehen kann, in diesem Fall {{ic|/var/lib/mpd/music}}:
 
{{bc|
# mkdir /var/lib/mpd/music
# mount -o bind /pfad/zum/musikverzeichnis /var/lib/mpd/music
}}
 
Dies kann man auch in die {{ic|/etc/fstab}} eintragen, damit das Verzeichnis gleich bei Systemstart gemountet wird:
 
{{hc|/etc/fstab|
/pfad/zum/musikverzeichnis  /var/lib/mpd/music none bind
}}
 
Eine andere Möglichkeit ist, einen symbolischen Link in das Musikverzeichnis zu legen:
 
{{bc|
# mkdir /var/lib/mpd/music
# ln -s /pfad/zum/musikverzeichnis /var/lib/mpd/music/
}}
 
Bei dieser Lösung müssen die Rechte der Musikdateien so angepasst werden, dass MPD sie lesen kann. Außerdem muss die {{ic|follow_outside_symlinks}}-Option für MPD gesetzt sein:
 
{{hc|/etc/mpd.conf|
follow_outside_symlinks yes
}}
 
Für den Fall, dass die Musiksammlung über mehrere Ordner verteilt ist (beispielsweise bei mehreren Usern, die ihre Sammlungen zusammenlegen wollen), können beide Lösungen benutzt werden: Entweder man mountet die Sammlungen in Unterordner des Musikverzeichnisses, oder man legt mehrere symbolische Links an.
 
==== MPD starten ====
 
MPD kann über den Systemd-Dienst {{ic|mpd.service}} kontrolliert werden. Der erste Start des Daemons kann eine Weile dauern, da MPD zunächst das Musikverzeichnis scannt und die gefundenen Dateien in seine interne Datenbank einträgt.
 
Man sollte nun den Daemon kurz testen, indem man einen entsprechenden Client aufruft (beispielsweise {{Paket|mpd}} oder {{Paket|ncmpc}}). Wenn dieser Client sich erfolgreich mit MPD verbunden hat, kann man die Tonausgabe konfigurieren.
 
==== Tonausgabe konfigurieren ====
 
Die standardmäßig mitgelieferte {{ic|/usr/share/doc/mpd.conf.example}} stellt einige Standardprofile zur Tonausgabe bereit. In diesem Abschnitt soll nur auf ALSA und PulseAudio eingegangen werden.
 
ALSA-Benutzer benötigen folgendes {{ic|audio_output}}-Profil:
 
{{hc|/etc/mpd.conf|
audio_output {
  type "alsa"
  name "ALSA-Ausgabe"
}
}}
 
{{Achtung|MPD muss Zugriff auf das Audio-Ausgabegerät in {{ic|/dev/snd}} haben. Wenn nicht, können Fehler wie {{ic|[alsa]: Failed to open ALSA device "default": No such file or directory}} oder {{ic|player_thread: problems opening audio device while playing "Song Name.mp3"}} auftreten. Um dies zu umgehen, muss der ''mpd''-User der Gruppe ''audio'' hinzugefügt werden: {{ic|gpasswd -a mpd audio}}
}}
 
Das Profil für PulseAudio-Nutzer sieht ganz ähnlich aus:
 
{{hc|/etc/mpd.conf|
audio_output {
  type "pulse"
  name "PulseAudio-Ausgabe"
}
}}
 
PulseAudio selbst unterstützt eine Menge verschiedener Ausgabeoperationen, von denen viele analog zu denen von MPD selbst sind; beispielsweise kann die Ausgabe auf einen anderen Computer umgeleitet werden. Wie dies zu bewerkstelligen ist, kann man im [http://mpd.wikia.com/wiki/PulseAudio MPD Community Wiki] selbst nachlesen.
 
{{Achtung|Benutzer von PulseAudio, die MPD als Systemdienst benutzen möchten, müssen einen Workaround benutzen, damit der Systemdienst MPD mit dem Nutzerdienst PulseAudio funktioniert.}}
 
ALSA, OSS und PulseAudio unterstützen außerdem den {{ic|mixer_type}}-Parameter für die {{ic|audio_output}}-Variable, über die angegeben wird, wie die Lautstärke von MPD geregelt wird: {{ic|software}} regelt sie unabhängig von anderen Programmen, {{ic|hardware}} regelt die Lautstärke direkt auf der Soundkarte selbst.
 
{{hc|/etc/mpd.conf|
mixer_type "software"
}}
 
==== Ablauf des MPD-Starts ====
 
Ein Start von MPD als Systemdienst läuft folgendermaßen ab:
 
# MPD wird von systemd mit Superuser-Rechten gestartet und liest seine Konfigurationsdatei {{ic|/etc/mpd.conf}}.
# MPD weiß jetzt, als welcher User er laufen soll, und wechselt entsprechend seine Berechtigungen.
# MPD konfiguriert sich gemäß den übrigen Angaben in seiner Konfigurationsdatei.
 
Durch diese Rechteänderung werden Tilden in den Konfigurationsdateien ({{ic|~}}) auf das Heimatverzeichnis des Users zeigen, als der MPD laufen soll, und nicht auf das Heimatverzeichnis von ''root''. Um Missverständnissen vorzubeugen, empfiehlt es sich, stattdessen die Pfade auszuschreiben ({{ic|/home/user}} statt {{ic|~}}).
 
=== MPD als Nutzer ===
 
Anstatt einen MPD systemweit laufen zu lassen, kann man den Daemon auch so konfigurieren, dass man ihn als Nutzer aufruft. Dies hat folgende Vorteile:
 
* Weniger Rechteprobleme: MPD kann auf dieselben Verzeichnisse und Dateien zugreifen, auf die man auch als Nutzer Zugriff hat.
* Keine Probleme mit der Kommunikation zwischen System-PulseAudio und Nutzer-Pulseaudio.
 
Die Konfigurationsdatei befindet sich in diesem Fall unter {{ic|$XDG_CONFIG_HOME/mpd/mpd.conf}} bzw. {{ic|~/.config/mpd/mpd.conf}}, wahlweise auch unter {{ic|~/.mpdconf}} oder {{ic|~/.mpd/mpd.conf}}. Entsprechend der [http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html XDG Base Directory Specification] bietet es sich an, die anderen Dateien in die entsprechenden Verzeichnisse zu legen:
 
{{hc|$XDG_CONFIG_HOME/mpd/mpd.conf|
db_file "~/.local/share/mpd/db"
log_file "~/.local/share/mpd/log"
sticker_file "~/.local/share/mpd/sticker"
pid_file "~/.cache/mpd/pid"
state_file "~/.cache/mpd/state"
music_directory "~/musik"
playlist_directory "~/playlists"
}}
 
Die entsprechenden Verzeichnisse und Dateien müssen noch erzeugt werden:
 
{{bc|
$ mkdir -p ~/.{config,local/share/}mpd
$ touch ~/.local/share/{db,log,sticker} ~/.cache/mpd/{pid,state}
}}

Aktuelle Version vom 6. Januar 2014, 16:15 Uhr

[[[Category:Anwendungen]] [[[Category:Multimedia]] [[[Category:Server]] [[[Category:Sound]] Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!


MPD ist ein Audio-Player mit einer Server-Struktur. Er läuft im Hintergrund als Daemon, besitzt eine Playlistverwaltung und eine Musik-Datenbank.

Installation

Das Programm ist als mpd in extra verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S mpd

Konfiguration

MPD kann systemweit (Einstellungen betreffen alle Nutzer) oder mit Userrechten (Einstellungen werden vom jeweiligen Nutzer übernommen) gestartet werden. Es ist also auch möglich, mehrere Instanzen des Daemons laufen zu haben. Je nach Einsatzgebiet bietet sich die eine oder die andere Variante an. Auf einem Desktop-System macht sich die Nutzer-Version besser.

Damit MPD Ton ausgeben kann, muss entweder ALSA oder OSS installiert und funktionsfähig sein, wahlweise auch Pulseaudio.

MPD wird über die Datei mpd.conf konfiguriert (man 5 mpd.conf). Der Speicherort dieser Datei hängt ebenfalls davon ab, ob MPD als Systemdienst oder mit Nutzerrechten konfiguriert wird (mehr dazu unten). Die wichtigsten Einstellungen sind:

  • music_directory - Speicherordner für Musikdateien
  • db_file – Pfad zu MPD-eigenen Musikdatenbank
  • log_file – Logdatei des Daemons
  • playlist_directory – Speicherordner für Playlists
  • pid_file – Datei, in der MPD seine Prozess-ID speichert
  • audio_output – Einstellungen für Tonausgabe
  • state_file – "Zustand" von MPD (Playlist, Lied, Position im Lied, etc.)
  • sticker_file - "Sticker"-Datenbank (wo Clients Informationen über Lieder speichern)

Hinweis: Die Dateien müssen bereits existieren und die korrekten Rechte haben, wenn MPD gestartet wird. Fehler in der Konfiguration wird MPD mit einem Abbruch und einer Fehlermeldung quittieren.

Systemweiter Start

Die Standard-Konfiguration von MPD (zu finden unter /usr/share/doc/mpd.conf.example) sieht einen systemweiten Start von MPD vor. Die Konfigurationsdatei liegt für diesen Fall unter /etc/mpd.conf. Die Pfade zu den oben erwähnten Dateien zeigen alle auf verschiedene Unterverzeichnisse von /var/lib/mpd und benutzen mpd als User. Da /var/lib/mpd jedoch standardmäßig root gehört, muss MPD zunächst Schreibrechte für dieses Verzeichnis erhalten:

# chown -R mpd /var/lib/mpd

Musikverzeichnis

Die Einstellung music_directory in /etc/mpd.conf muss auf das Musikverzeichnis zeigen:

/etc/mpd.conf
music_directory /pfad/zum/musikverzeichnis

Hinweis: MPD muss Ausführungsrechte (+x) in allen Elternverzeichnissen des Musikverzeichisses haben.

Das Musikverzeichnis muss von MPD gelesen werden können. Wenn es außerhalb von /var/lib/mpd liegt, ist das jedoch häufig nicht der Fall. Um dies zu umgehen, kann man das Musikverzeichnis neu an einen Ort mounten, den der mpd-User sehen kann, in diesem Fall /var/lib/mpd/music:

# mkdir /var/lib/mpd/music
# mount -o bind /pfad/zum/musikverzeichnis /var/lib/mpd/music

Dies kann man auch in die /etc/fstab eintragen, damit das Verzeichnis gleich bei Systemstart gemountet wird:

/etc/fstab
/pfad/zum/musikverzeichnis  /var/lib/mpd/music none bind

Eine andere Möglichkeit ist, einen symbolischen Link in das Musikverzeichnis zu legen:

# mkdir /var/lib/mpd/music
# ln -s /pfad/zum/musikverzeichnis /var/lib/mpd/music/

Bei dieser Lösung müssen die Rechte der Musikdateien so angepasst werden, dass MPD sie lesen kann. Außerdem muss die follow_outside_symlinks-Option für MPD gesetzt sein:

/etc/mpd.conf
follow_outside_symlinks yes

Für den Fall, dass die Musiksammlung über mehrere Ordner verteilt ist (beispielsweise bei mehreren Usern, die ihre Sammlungen zusammenlegen wollen), können beide Lösungen benutzt werden: Entweder man mountet die Sammlungen in Unterordner des Musikverzeichnisses, oder man legt mehrere symbolische Links an.

MPD starten

MPD kann über den Systemd-Dienst mpd.service kontrolliert werden. Der erste Start des Daemons kann eine Weile dauern, da MPD zunächst das Musikverzeichnis scannt und die gefundenen Dateien in seine interne Datenbank einträgt.

Man sollte nun den Daemon kurz testen, indem man einen entsprechenden Client aufruft (beispielsweise mpd oder ncmpc). Wenn dieser Client sich erfolgreich mit MPD verbunden hat, kann man die Tonausgabe konfigurieren.

Tonausgabe konfigurieren

Die standardmäßig mitgelieferte /usr/share/doc/mpd.conf.example stellt einige Standardprofile zur Tonausgabe bereit. In diesem Abschnitt soll nur auf ALSA und PulseAudio eingegangen werden.

ALSA-Benutzer benötigen folgendes audio_output-Profil:

/etc/mpd.conf
audio_output {
  type "alsa"
  name "ALSA-Ausgabe"
}

Achtung: MPD muss Zugriff auf das Audio-Ausgabegerät in /dev/snd haben. Wenn nicht, können Fehler wie [alsa]: Failed to open ALSA device "default": No such file or directory oder player_thread: problems opening audio device while playing "Song Name.mp3" auftreten. Um dies zu umgehen, muss der mpd-User der Gruppe audio hinzugefügt werden: gpasswd -a mpd audio


Das Profil für PulseAudio-Nutzer sieht ganz ähnlich aus:

/etc/mpd.conf
audio_output {
  type "pulse"
  name "PulseAudio-Ausgabe"
}

PulseAudio selbst unterstützt eine Menge verschiedener Ausgabeoperationen, von denen viele analog zu denen von MPD selbst sind; beispielsweise kann die Ausgabe auf einen anderen Computer umgeleitet werden. Wie dies zu bewerkstelligen ist, kann man im MPD Community Wiki selbst nachlesen.

Achtung: Benutzer von PulseAudio, die MPD als Systemdienst benutzen möchten, müssen einen Workaround benutzen, damit der Systemdienst MPD mit dem Nutzerdienst PulseAudio funktioniert.


ALSA, OSS und PulseAudio unterstützen außerdem den mixer_type-Parameter für die audio_output-Variable, über die angegeben wird, wie die Lautstärke von MPD geregelt wird: software regelt sie unabhängig von anderen Programmen, hardware regelt die Lautstärke direkt auf der Soundkarte selbst.

/etc/mpd.conf
mixer_type			"software"

Ablauf des MPD-Starts

Ein Start von MPD als Systemdienst läuft folgendermaßen ab:

  1. MPD wird von systemd mit Superuser-Rechten gestartet und liest seine Konfigurationsdatei /etc/mpd.conf.
  2. MPD weiß jetzt, als welcher User er laufen soll, und wechselt entsprechend seine Berechtigungen.
  3. MPD konfiguriert sich gemäß den übrigen Angaben in seiner Konfigurationsdatei.

Durch diese Rechteänderung werden Tilden in den Konfigurationsdateien (~) auf das Heimatverzeichnis des Users zeigen, als der MPD laufen soll, und nicht auf das Heimatverzeichnis von root. Um Missverständnissen vorzubeugen, empfiehlt es sich, stattdessen die Pfade auszuschreiben (/home/user statt ~).

MPD als Nutzer

Anstatt einen MPD systemweit laufen zu lassen, kann man den Daemon auch so konfigurieren, dass man ihn als Nutzer aufruft. Dies hat folgende Vorteile:

  • Weniger Rechteprobleme: MPD kann auf dieselben Verzeichnisse und Dateien zugreifen, auf die man auch als Nutzer Zugriff hat.
  • Keine Probleme mit der Kommunikation zwischen System-PulseAudio und Nutzer-Pulseaudio.

Die Konfigurationsdatei befindet sich in diesem Fall unter $XDG_CONFIG_HOME/mpd/mpd.conf bzw. ~/.config/mpd/mpd.conf, wahlweise auch unter ~/.mpdconf oder ~/.mpd/mpd.conf. Entsprechend der XDG Base Directory Specification bietet es sich an, die anderen Dateien in die entsprechenden Verzeichnisse zu legen:

$XDG_CONFIG_HOME/mpd/mpd.conf
db_file "~/.local/share/mpd/db"
log_file "~/.local/share/mpd/log"
sticker_file "~/.local/share/mpd/sticker"
pid_file "~/.cache/mpd/pid"
state_file "~/.cache/mpd/state"
music_directory "~/musik"
playlist_directory "~/playlists"

Die entsprechenden Verzeichnisse und Dateien müssen noch erzeugt werden:

$ mkdir -p ~/.{config,local/share/}mpd
$ touch ~/.local/share/{db,log,sticker} ~/.cache/mpd/{pid,state}