Getestet auf: Raspberry Pi 2B v1.1 + HifiBerry DAC+ → Kenwood HD 1000 · DietPi ARMv7 / Debian Trixie (13) · Stand: März 2026
Einige Paketnamen und Installationswege unterscheiden sich von älteren Anleitungen. Alle Befehle auf dieser Seite sind für Trixie verifiziert.
| Komponente | Hinweis |
|---|---|
| Raspberry Pi 2B | ARMv7, 1 GB RAM — ausreichend für reine Streaming-Aufgaben |
| HifiBerry DAC+ | DAC+ Standard / DAC+ Pro / DAC2 Pro — alle unterstützt |
| MicroSD-Karte | ≥ 8 GB, Class 10 (empfohlen: 16 GB SanDisk Endurance) |
| Netzwerk | Ethernet empfohlen für Multiroom-Stabilität; WLAN möglich |
| PC/Mac | Zum Flashen des Images und SSH-Zugriff |
| Spotify Premium | Pflicht für Spotify Connect über librespot |
Das korrekte Image für den Pi 2B ist das ARM 32-bit (ARMv7 / armhf) Image von dietpi.com.
Wichtig beim Image-Download: Auf der DietPi-Downloadseite unbedingt ARM 32-bit wählen — nicht ARMv6 oder ARM 64-bit. Der Pi 2B v1.1 hat einen ARMv7-Prozessor und ist nicht 64-Bit-fähig.
dietpi.txt auf der FAT-Partition anpassen:# /boot/dietpi.txt — Voreinstellungen für headless-Betrieb: AUTO_SETUP_GLOBAL_PASSWORD=dein_sicheres_passwort AUTO_SETUP_LOCALE=de_DE.UTF-8 AUTO_SETUP_KEYBOARD_LAYOUT=de AUTO_SETUP_TIMEZONE=Europe/Berlin AUTO_SETUP_NET_ETHERNET_ENABLED=1 AUTO_SETUP_NET_WIFI_ENABLED=0 AUTO_SETUP_NET_USESTATIC=0 AUTO_SETUP_NET_HOSTNAME=stream01 AUTO_SETUP_BOOT_WAIT_FOR_NETWORK=1 AUTO_SETUP_SWAPFILE_SIZE=1 AUTO_SETUP_SWAPFILE_LOCATION=/var/swap AUTO_SETUP_HEADLESS=1 AUTO_SETUP_SSH_SERVER_INDEX=-2 AUTO_SETUP_LOGGING_INDEX=-1 AUTO_SETUP_RAMLOG_MAXSIZE=50 AUTO_SETUP_AUTOSTART_TARGET_INDEX=0 AUTO_SETUP_AUTOSTART_LOGIN_USER=root AUTO_SETUP_AUTOMATED=1 CONFIG_CPU_GOVERNOR=schedutil CONFIG_NTP_MODE=2 CONFIG_SOUNDCARD=none CONFIG_ENABLE_IPV6=1
# /boot/dietpi-wifi.txt — nur bei WLAN-Betrieb: aWIFI_SSID[0]='NetzwerkName' aWIFI_KEY[0]='WLAN-Passwort'
Headless-Betrieb: Mit AUTO_SETUP_AUTOMATED=1 läuft die Erstinstallation vollständig automatisch durch. Kein Monitor nötig — der Pi ist nach ca. 5–10 Minuten per SSH erreichbar.
ssh root@stream01 # oder: ssh root@192.168.x.xxx # Passwort: dein_sicheres_passwort
Neuere HifiBerry-Karten melden sich per EEPROM automatisch:
cat /proc/device-tree/hat/product
Die Ausgabe erscheint direkt vor dem Prompt ohne Zeilenumbruch, z. B.: DAC+root@stream01:~# — der Modellname ist der Teil vor root.
| Ausgabe | Modell | Treiber in dietpi-config |
|---|---|---|
DAC+ | HifiBerry DAC+ Standard | hifiberry-dacplus-std |
DAC+ Pro | HifiBerry DAC+ Pro | hifiberry-dacplus-pro |
DAC2 Pro | HifiBerry DAC2 Pro | hifiberry-dacplus-pro |
| Keine Ausgabe | Älteres Modell | Optisch identifizieren |
dietpi-config # → Audio Options → Sound Card # → Passendes Modell auswählen (z. B. hifiberry-dacplus-std für DAC+) # → Reboot bestätigen
# Vorhandene audio-Zeile auskommentieren: #dtparam=audio=on # Je nach DAC-Modell eine der folgenden Zeilen hinzufügen: dtoverlay=hifiberry-dac # DAC+ Standard / DAC+ Light dtoverlay=hifiberry-dacplus # DAC+ Pro dtoverlay=hifiberry-dacplus-pro # DAC2 Pro
# Nach Reboot: ALSA-Geräte auflisten aplay -l # Erwartete Ausgabe: # card 0: sndrpihifiberry [snd_rpi_hifiberry_dacplus], device 0 ... # Testton abspielen (Ctrl+C zum Stoppen): speaker-test -D plughw:0 -c 2 -t sine
Falls kein Ton kommt: Lautstärkeregler mit alsamixer prüfen — nach Installation oft auf 0% oder Mute. Mit den Pfeiltasten hochregeln, M zum Unmute.
nano /etc/asound.conf
pcm.!default {
type hw
card 0
device 0
}
ctl.!default {
type hw
card 0
}
Audiophiler Hinweis: type hw erzwingt direkten Hardware-Zugriff ohne Software-Resampling — bit-perfekte Ausgabe. DietPi trägt device 0 automatisch ein, was technisch präziser ist und so bleiben kann.
| Einstellung | Wert | Begründung |
|---|---|---|
| Sound Card | hifiberry-dacplus-std | Erkannter Hardware-Treiber |
| Auto-conversion | Off | Erhält bit-perfekte Qualität |
| PSU noise reduction | On | Minimiert elektrische Interferenzen |
| DietPi-JustBoom | — | Ignorieren, nur für JustBoom-Karten |
Trixie-Hinweis: Das offizielle Raspotify-Installations-Script schlägt auf Debian Trixie fehl, weil das Paket libasound2 in libasound2t64 umbenannt wurde. Die zuverlässige Methode ist ausschließlich dietpi-software.
dietpi-software # → Browse Software → Raspotify (ID 170) # → Mit Leertaste auswählen → Install
DietPi erkennt Trixie automatisch und umgeht die Abhängigkeitsprobleme intern.
nano /etc/raspotify/conf
# ── Gerätename (erscheint in der Spotify-App) ────────────────── LIBRESPOT_NAME='Office UG' # ── Audioqualität ────────────────────────────────────────────── LIBRESPOT_BITRATE='320' # ── ALSA-Device explizit auf HifiBerry setzen ────────────────── LIBRESPOT_BACKEND='alsa' LIBRESPOT_DEVICE='hw:0,0' # ── Audiophile Optionen ──────────────────────────────────────── LIBRESPOT_VOLUME_NORMALISATION='' # leer = deaktiviert LIBRESPOT_DITHERING='none' # kein Dithering bei 32-Bit-DAC LIBRESPOT_FORMAT='S32' # 32-Bit-Output für DAC+ # ── Zeroconf-Port fixieren (verhindert random port bei Restart) ─ LIBRESPOT_ZEROCONF_PORT='44677' # ── Device-Typ (erscheint als Icon in Spotify) ───────────────── LIBRESPOT_DEVICE_TYPE='avr'
systemctl restart raspotify systemctl enable raspotify systemctl status raspotify # Sollte 'active (running)' zeigen # Log bei Problemen: journalctl -u raspotify -f
Nach dem Neustart erscheint Office UG in der Spotify-App unter Geräte. Falls der alte Name noch erscheint: Spotify-App vollständig schließen und neu öffnen — der Cache aktualisiert sich nach ca. 10 Sekunden.
apt-get install -y mpd mpc
Die Abhängigkeitsliste ist auf Trixie sehr lang — einfach mit Y bestätigen, alle Pakete sind notwendig.
nano /etc/mpd.conf
# ── Grundeinstellungen ─────────────────────────────────────────
music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/database"
log_file "/var/log/mpd/mpd.log"
pid_file "/run/mpd/pid"
state_file "/var/lib/mpd/state"
user "mpd"
bind_to_address "localhost"
port "6600"
# ── Audio-Output: direkt auf HifiBerry ────────────────────────
audio_output {
type "alsa"
name "HifiBerry DAC"
device "hw:0,0"
format "*:*:*"
mixer_type "software"
}
# ── Logging ────────────────────────────────────────────────────
log_level "default"
auto_update "no"
Trixie-Hinweis: Den Parameter sticker_database nicht eintragen — er wurde in der MPD-Version auf Trixie entfernt und führt zu einem Start-Fehler.
Trixie-spezifisch: Das Datenbankverzeichnis existiert nach der Installation nicht automatisch und muss manuell angelegt werden, sonst startet MPD mit einem Fehler.
mkdir -p /var/lib/mpd chown -R mpd:audio /var/lib/mpd systemctl restart mpd systemctl enable mpd systemctl status mpd # Sollte 'active (running)' zeigen
Jeder Sender bekommt eine eigene Playlist-Datei — so lassen sie sich in myMPD direkt per Tipp auswählen.
nano /var/lib/mpd/playlists/BOB-Grunge.m3u
#EXTM3U #EXTINF:-1,Radio BOB! Grunge (Nirvana, Pearl Jam, Soundgarden...) http://streams.radiobob.de/bob-grunge/mp3-192/mediaplayer
nano /var/lib/mpd/playlists/BOB-ClassicRock.m3u
#EXTM3U #EXTINF:-1,Radio BOB! Classic Rock (60er, 70er & 80er) http://streams.radiobob.de/bob-classicrock/mp3-192/mediaplayer
nano /var/lib/mpd/playlists/BOB-BestOfRock.m3u
#EXTM3U #EXTINF:-1,Radio BOB! Best of Rock (quer durch alle Jahrzehnte) http://streams.radiobob.de/bob-bestofrock/mp3-192/mediaplayer
nano /var/lib/mpd/playlists/BOB-70erRock.m3u
#EXTM3U #EXTINF:-1,Radio BOB! 70er Rock (Led Zeppelin, Queen, Pink Floyd...) https://streams.radiobob.de/70errock/mp3-192/streams.radiobob.de/
# Datenbank aktualisieren und Testlauf: mpc update mpc clear mpc load BOB-Grunge mpc play mpc status # Sollte '[playing]' zeigen
Aktuelle Stream-URLs immer unter radiobob.de/empfang/livestream prüfen. Radio Bob bietet über 60 Streams — weitere Genres lassen sich nach demselben Schema ergänzen.
myMPD ist in C geschrieben, läuft als eigenständiger Webserver ohne Apache/nginx, ist als Progressive Web App (PWA) auf dem Smartphone installierbar und benötigt minimale Ressourcen — ideal für den Pi 2B.
| Feature | Beschreibung |
|---|---|
| PWA | Zum Home-Screen hinzufügbar — wirkt wie eine native App |
| Standalone-Server | Ports 8080/8443, kein Apache/nginx nötig |
| Mobile-optimiert | Responsive Design, Touch-freundlich |
| Ressourcenschonend | Backend in C, kein Node.js / PHP |
| Webradio-Verwaltung | Streams direkt im UI hinzufügen |
| Aktiv gepflegt | Regelmäßige Releases, armhf-Pakete vorhanden |
Trixie-Hinweis: Weder das bullseye- noch das bookworm-Repository funktionieren zuverlässig auf Trixie. Der GPG-Key-Pfad auf GitHub gibt 404 zurück. Die einzige zuverlässige Methode ist dietpi-software.
dietpi-software # → Browse Software → myMPD (ID 183) # → Mit Leertaste auswählen → Install
DietPi löst alle Abhängigkeiten automatisch auf. Pakete wie libflac14, libid3tag0 und liblua5.4-0 werden automatisch mitinstalliert — keine manuelle Vorinstallation nötig.
systemctl enable mympd systemctl start mympd systemctl status mympd # Sollte 'active (running)' zeigen
myMPD läuft auf folgenden Ports:
| Port | Verwendung |
|---|---|
| 8080 | HTTP — funktioniert, aber Browser zeigt „unsicher„ |
| 8443 | HTTPS — empfohlen, einmalig Sicherheitswarnung akzeptieren |
Aufruf im Browser:
https://192.168.x.xxx:8443
Sicherheitswarnung beim ersten Aufruf einmalig akzeptieren (self-signed Zertifikat). Danach läuft myMPD normal. HTTPS auf Port 8443 ist Voraussetzung für die PWA-Installation auf dem Handy.
myMPD verbindet sich nach der Installation via dietpi-software automatisch mit MPD auf localhost:6600 — kein Setup-Assistent nötig.
Die myMPD-Startseite ist zunächst leer. Schnellzugriff-Icons hinzufügen:
BOB-Grunge aufrufenadd_to_home_screen)BOB-ClassicRock, BOB-BestOfRock, BOB-70erRockEinen Stream starten:
https://192.168.x.xxx:8443 im Browser öffnenhttps://192.168.x.xxx:8443 in Safari öffnenSnapcast ermöglicht zeitsynchrone Wiedergabe auf mehreren Geräten. Der Pi 2B läuft als Server und gleichzeitig als Client. Weitere Räume erhalten einen eigenen Pi als Snapcast-Client.
| Snapcast Server (dieser Pi 2B) | Snapcast Client(s) |
|---|---|
| Empfängt Audio von MPD via named pipe | Beliebige weitere Linux-Geräte / Pis im Netzwerk |
| Verteilt den Stream mit Timing-Informationen | Verbinden sich mit dem Server, spielen zeitsynchron ab |
apt-get install -y snapserver snapclient
# Named Pipe erstellen: mkfifo /tmp/snapfifo chown mpd:audio /tmp/snapfifo
FIFO-Output in /etc/mpd.conf ergänzen (zusätzlich zum bestehenden ALSA-Output):
audio_output {
type "fifo"
name "Snapcast Pipe"
path "/tmp/snapfifo"
format "48000:16:2"
mixer_type "software"
}
nano /etc/snapserver.conf
[stream] source = pipe:///tmp/snapfifo?name=MPD&sampleformat=48000:16:2&codec=flac [server] # Web-UI auf Port 1780 (optional, für Lautstärke-Anpassung pro Client)
systemctl restart snapserver snapclient
systemctl enable snapserver snapclient
systemctl status snapserver
Auf jedem weiteren Gerät (z. B. Raspberry Pi Zero 2 W, Pi 3/4):
apt-get install -y snapclient nano /etc/default/snapclient # START_SNAPCLIENT=true # SNAPCLIENT_OPTS="--host 192.168.x.xxx" ← IP des Pi 2B (stream01) systemctl enable snapclient systemctl start snapclient
Snapcast bietet eine eigene Web-UI auf Port 1780 (http://stream01:1780) zur Anpassung der Client-Lautstärken und Latenz-Delays. myMPD steuert die Wiedergabe selbst — Snapcast übernimmt nur die Verteilung.
┌─────────────────────────────────────────────────────────────────┐ │ Spotify App (Smartphone / PC) │ │ └─→ Raspotify (librespot) ──→ ALSA hw:0,0 │ │ └─→ HifiBerry DAC+ │ │ └─→ Kenwood HD 1000│ ├─────────────────────────────────────────────────────────────────┤ │ myMPD Web-UI (Browser / PWA) │ │ └─→ MPD ──→ ALSA hw:0,0 ──→ HifiBerry DAC+ → Kenwood │ │ └─→ FIFO /tmp/snapfifo │ │ └─→ Snapcast Server │ │ └─→ Snapcast Client(s) → Räume │ └─────────────────────────────────────────────────────────────────┘
Wichtig: Raspotify und MPD können nicht gleichzeitig auf hw:0,0 zugreifen. Wenn Spotify aktiv ist, muss MPD gestoppt sein — und umgekehrt. Für audiophilen Betrieb ist das die saubere Lösung: immer nur eine Quelle aktiv.
Falls gleichzeitiger Zugriff dennoch gewünscht ist, kann ALSA-dmix als Software-Mixer dienen. Für audiophile Ansprüche nicht empfohlen, da Software-Resampling eingeführt wird:
# /etc/asound.conf (dmix-Variante — nur falls unbedingt nötig):
pcm.dmixed {
type dmix
ipc_key 1024
slave {
pcm "hw:0,0"
rate 48000
format S32_LE
period_size 1024
buffer_size 8192
}
}
pcm.!default {
type plug
slave.pcm dmixed
}
# Falls myMPD den DAC nicht bekommt — Raspotify manuell stoppen: systemctl stop raspotify mpc clear mpc load BOB-Grunge mpc play # Raspotify danach wieder starten (wartet still im Hintergrund): systemctl start raspotify
# Falls Spotify den DAC nicht bekommt — MPD manuell stoppen: mpc stop # Spotify-App neu verbinden
Faustregel: Stop statt Pause. mpc pause hält den Stream an, gibt hw:0,0 aber nicht frei. Nur mpc stop gibt den DAC vollständig frei. Dasselbe gilt für Spotify: Pause hält die ALSA-Verbindung offen.
systemctl enable raspotify mpd mympd # Bei installiertem Snapcast zusätzlich: systemctl enable snapserver snapclient # Gesamtüberblick aller Service-Status: systemctl status raspotify mpd mympd
# Über DietPi-Config (empfohlen): dietpi-config # → Network Options → Adapters → Ethernet → Static # Oder manuell /etc/network/interfaces: auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 192.168.1.1 8.8.8.8
# DietPi-eigenes Update-System: dietpi-update # System-Pakete (MPD, Snapcast): apt-get update && apt-get upgrade -y # Raspotify und myMPD wurden über dietpi-software installiert: dietpi-software reinstall 170 # Raspotify dietpi-software reinstall 183 # myMPD
Die Konfigurationsdateien bleiben bei dietpi-software reinstall erhalten — /etc/raspotify/conf und die MPD-Playlists werden nicht überschrieben.
# Lautstärkeregler prüfen und anpassen: alsamixer # ALSA-Gerätebelegung prüfen (wer blockiert hw:0,0?): fuser /dev/snd/* # MPD-Logs live verfolgen: tail -f /var/log/mpd/mpd.log # Snapcast-Verbindungen prüfen: journalctl -u snapserver -f # Aktuell spielenden Titel anzeigen: mpc current # Systemressourcen (CPU/RAM) des Pi 2B: htop
| Service | Port | URL / Zweck |
|---|---|---|
| myMPD Web-UI (HTTPS) | 8443 | https://192.168.x.xxx:8443 — Hauptsteuerung, PWA |
| myMPD Web-UI (HTTP) | 8080 | http://192.168.x.xxx:8080 — alternativ, kein PWA |
| Snapcast Web-UI | 1780 | http://stream01:1780 — Multiroom-Pegel |
| MPD | 6600 | localhost only — via myMPD oder mpc |
| Raspotify (Zeroconf) | 44677 | Spotify-Connect-Discovery (intern) |
| SSH | 22 | ssh root@stream01 |
systemctl status raspotify journalctl -u raspotify -n 50 # Zeroconf / mDNS sicherstellen: apt-get install -y avahi-daemon systemctl enable avahi-daemon && systemctl start avahi-daemon
# Lautstärke prüfen (oft nach Installation auf 0 oder Mute): alsamixer # Wer blockiert den DAC? fuser /dev/snd/* # ALSA-Konfiguration direkt testen: aplay -D hw:0,0 /usr/share/sounds/alsa/Front_Center.wav # HifiBerry-Overlay aktiv? dtoverlay -l
# Detaillierte Fehlerausgabe: journalctl -xeu mpd.service # Häufigste Ursache auf Trixie: sticker_database noch in mpd.conf # → Zeile entfernen: nano /etc/mpd.conf # sticker_database "/var/lib/mpd/sticker.sql" ← diese Zeile löschen # Zweithäufigste Ursache: Datenbankverzeichnis fehlt mkdir -p /var/lib/mpd chown -R mpd:audio /var/lib/mpd systemctl restart mpd
chown -R mpd:audio /var/lib/mpd chmod 750 /var/lib/mpd # Named Pipe neu anlegen (falls Snapcast genutzt wird): rm -f /tmp/snapfifo mkfifo /tmp/snapfifo chown mpd:audio /tmp/snapfifo systemctl restart mpd
# Stream-URL direkt testen: mpc clear mpc add http://streams.radiobob.de/bob-grunge/mp3-192/mediaplayer mpc play mpc status # Internetverbindung prüfen: ping radiobob.de -c 4
Aktuelle Stream-URLs immer unter radiobob.de/empfang/livestream prüfen.
# Auf welchem Port läuft myMPD? ss -tlnp | grep mympd # → Ausgabe zeigt Port 8080 (HTTP) und 8443 (HTTPS) # Aufruf im Browser: # https://192.168.x.xxx:8443 (empfohlen, für PWA) # http://192.168.x.xxx:8080 (alternativ) systemctl status mympd journalctl -u mympd -n 50
In myMPD muss die Playlist erst in die Warteschlange geladen werden:
Oder per Kommandozeile:
mpc clear
mpc load BOB-Grunge
mpc play
# Nach einem System-Upgrade neu installieren: dietpi-software reinstall 170 # Raspotify dietpi-software reinstall 183 # myMPD # Konfiguration prüfen: cat /etc/raspotify/conf ls /var/lib/mpd/playlists/
Weiterführende Links
DietPi Forum | Raspotify auf GitHub | myMPD Dokumentation | Snapcast auf GitHub | Radio Bob Streams
Getestet auf: Raspberry Pi 2B v1.1 + HifiBerry DAC+ → Kenwood HD 1000 · DietPi ARMv7 / Debian Trixie (13) · Stand: März 2026