Um einen Musikserver auf Fedora laufen zu lassen sind nur wenige Schritte erforderlich.


Benötigte RPM-Pakete

Die notwendigen Pakete lassen sich problemlos per DNF installieren:

  • mpd (Server)
  • cantata (Client)
dnf install mpd cantata

MPD konfigurieren

  • Ich verwende meinen MPD Server für Wohnzimmer lokal und als http-stream für mein Schlafzimmer :-)
  • [root@mpd]: nano /etc/mpd.conf
    music_directory                   "/home/USERNAME/Musik"                                                                                                                                                      
    playlist_directory                "/home/USERNAME/Playlists"                                                                                                                                            
    db_file                           "/var/lib/mpd/mpd.db"                                                                                                                                              
    log_file                          "/dev/stdout"                                                                                                                                                      
    state_file                        "/run/mpd/mpdstate"                                                                                                                                                
    user                              "mpd"
    bind_to_address                   "0.0.0.0"
    port                              "6600"
    log_level                         "default"
    
    audio_output {
    enabled                          "yes"
    always_on                        "yes"
    type                             "httpd"
    name                             "mpd-stream"
    encoder                          "lame"
    bind_to_address                  "0.0.0.0"
    port                             "8000"
    quality                          "9.0"
    #bitrate                                 "128"
    format                           "44100:16:2"
    replay_gain_handler              "none"
    }
              
    audio_output {
    type                             "pulse"
    name                             "Pulseaudio"
    replay_gain_handler              "none"
    }
                 
    audio_output_format               "44100:16:2"
    audio_buffer_size                 "32768"
    buffer_before_play                "90%"
                 
    connection_timeout                "60"
    max_connections                   "20"
    max_playlist_length               "100000"
    max_command_list_size             "2048"
    max_output_buffer_size            "32768"
                 
    save_absolute_paths_in_playlists  "no"
    metadata_to_use                   "artist,album,title,track,name,genre,date,composer,performer,disc"
                 
    volume_normalization              "yes"
    gapless_mp3_playback              "yes"
    replaygain                        "track"
    	
    	

Als nächstes müssen Sie den Dienst starten

  • [root@mpd]: systemctl start mpd
  • [root@mpd]: systemctl enable mpd

[root@mpd]: rpm -qa | grep mpd
mpd-0.20.6-4.fc25.20170407.dk.x86_64

Autoplay nach reboot

Ich möchte nicht nach jedem neustart cantata aufreissen und die Musik in die Liste ziehen und auf play drücken deshalb hab ich meinen mpd so umgebaut dass er mit dem Track wo er vor dem poweroff stehen geblieben ist gleich weiter spielt!

Meine systemd-unit datei sieht so aus
[root@mpd:] cat /usr/lib/systemd/system/mpd.service
[Unit]
Description=Music Player Daemon
After=network.service systemd-networkd.service network-online.target pulsed.service

[Service]
ExecStart=/usr/bin/mpd --no-daemon --stderr
ExecStartPost=-/usr/local/bin/mpd-post-start.sh
User=mpd
Group=mpd
Restart=always
RestartSec=30
TimeoutSec=15
Nice=-10
LimitRTPRIO=50
LimitRTTIME=infinity
StandardOutput=0

PrivateTmp=yes
PrivateDevices=yes
NoNewPrivileges=yes
CapabilityBoundingSet=CAP_CHOWN CAP_SYS_NICE
AmbientCapabilities=CAP_SYS_NICE
RestrictAddressFamilies=~AF_APPLETALK AF_ATMPVC AF_AX25 AF_IPX AF_NETLINK AF_PACKET AF_X25
SystemCallFilter=~acct modify_ldt add_key adjtimex clock_adjtime delete_module fanotify_init finit_module get_mempolicy init_module io_destroy io_getevents iopl ioperm io_setup io_submit io_cancel kcmp kexec_load keyctl lookup_dcookie mbind migrate_pages mount move_pages open_by_handle_at perf_event_open pivot_root process_vm_readv process_vm_writev ptrace remap_file_pages request_key set_mempolicy swapoff swapon umount2 uselib vmsplice
SystemCallArchitectures=x86-64

ReadOnlyDirectories=/etc
ReadOnlyDirectories=/usr
ReadOnlyDirectories=/var/lib
ReadWriteDirectories=/var/lib/mpd
ReadWriteDirectories=/home/USERNAME/Musik
Dieser Script startet die aktuelle Wiedergabeliste und schaltet die Lautstärke auf 100%
[root@mpd]: cat /usr/local/bin/mpd-post-start.sh
/usr/bin/mpd
/usr/bin/mpc --port 6600 --host 127.0.0.1 play 2> /dev/null > /dev/null
/usr/bin/mpc --port 6600 --host 127.0.0.1 volume 100 2> /dev/null > /dev/null
Diese config Datei speichert die aktuelle Playlist und syncronisiert zwischen den Ordner /var/lib/mpd/mpdstate und /run/mpd/mpdstate
Dass diese config-datei auch funktioniert müssen die zwei Ordner angelegt werden
[root@mpd]: cat /etc/systemd/system/mpd.service.d/mpdstate.conf
[Service]
ExecStartPre=/usr/bin/rsync --quiet --recursive --times /var/lib/mpd/mpdstate /run/mpd/mpdstate
ExecStopPost=/usr/bin/rsync --quiet --recursive --times /run/mpd/mpdstate /var/lib/mpd/mpdstate

Diese Seite verwendet Cookies, da sie für eine uneingeschränkte Nutzung benötigt werden. Datenschutzerklärung