Inhaltsverzeichnis
MPD Audio Server
Der mpd ist eine Software, die im shack mit mindestens diesen Komponenten benutzt wird:
- mpd
- webinterface
- soundserver (http stream und pulseaudio)
- client
Dank recht guter Erfahrungen mit dem MPD wird es gerade wiederaufleben gelassen. Auf dieser Seite entsteht die neue Dokumentation.
Projektziel
Es soll einen Server geben, auf dem die Musik und Streams eingerichtet werden. Es soll möglich sein, dass pro Raum ein Gerät stehen kann, das vom MPD angestreamt wird, sodass man Musik pro Raum regulieren kann. Es soll mindestens eine anstreambare Box in der Lounge stehen. Dazu läuft eine Instanz des Webinterfaces und des MPD pro Raum, in dem einer gebraucht wird. Im Folgenden wird grob zusammengefasst, wie es für die Louge aufgesetzt wurde, sodass man sich daran orientieren kann, das beginnt ab dem „Konfiguration anpassen für die Lounge“ - Abschnitt.
Installation des Servers
Der Server ist eine VM. Ausgehend von einer standard Debian installation:
Installation of Server:
- apt-get install vim less mpd libasound2-plugins screen
- apt-get remove nano
Configuration of music user / mpd:
- adduser shack
- chmod g+s /home/shack
- chmod g+w /home/shack/music/ /home/shack/playlists/
- mkdir /home/shack/playlists
- mkdir /home/shack/music
- edit /etc/mpd.conf
Konfiguration anpassen für die Lounge
Configuration of Webinterface
Die Entscheidung fiel (mangelns besseren Wissens und mal rumprobiert haben) auf ein Webinterface namens „client175“. Dieses
Der Client kann heruntergeladen werden auf http://code.google.com/p/client175/. Die Konfiguration für die Lounge gibts im Wiki unter shack_wie_tut_der_mpd:client175-config.
Testen ob alles tut via
python server.py
Proxy aufsetzen und die MPD-Webinterface-Instanzen mit /raumname zugänglich machen
apt-get install apache2
Aktivieren des mod proxy:
a2enmod proxy a2enmod proxy_http /etc/init.d/apache2 restart
Dann die Apache Config der Seite einspielen und fertig.
Auf http://lounge.mpd.shack/ läuft der MPD für die lounge.
Die Client Konfiguration
Für den Client wird ein NFS-Root vorbereitet. Auf dem Server:
apt-get install nfs-kernel-server echo "/nfs/wyseterm/ 10.42.0.0/16(ro,sync,no_subtree_check)" > /etc/exports exportfs -a mkdir /nfs mkdir /nfs/wyseterm debootstrap --arch=i386 squeeze /nfs/wyseterm chroot /nfs/wyseterm apt-get install debian-keyring vim less linux-image-2.6.32-5-686 apt-get remove nano
Als näcshtes wird die FSTAB eingeschoben.
Dann die Config für den TFTP boot unter der mac-adresse ablegen.
DEFAULT boot/mpd/vmlinuz append vga=normal initrd=boot/mpd/initrd.img root=/dev/nfs nfsroot=10.42.0.114:/nfs/wyseterm http://lounge.mpd.shack:8000/mpd.ogg
Konfiguration der Installation
Der MPD-Client kriegt per Kernel Commandline sein Stream target mit. (anhängen von mpdstream=http://lounge.mpd.shack:8000/mpd.ogg für die lounge).
Auswertung durch 2 Skripte:
/root/bin/music.pl
#!/usr/bin/perl use strict; my $CMDLINE = '/proc/cmdline'; open(my $fh, "<$CMDLINE") or die("cannot open cmdline $CMDLINE\n"); my $line = <$fh>; close($fh); my @params = split / /,$line; for(my $i=0; $i<$#params; ++$i) { my ($k,$v) = split /=/,$params[$i]; print $v if($k eq "mpdstream"); }
und /root/bin/enterpriseloop.pl
#!/usr/bin/perl use strict; my $CMD='ogg123 -b 64 $(/root/bin/music.pl)'; while(1) { system($CMD); print("stream died, waiting for a bit before trying again\n"); sleep(3); }
und dann der Eintrag in der inittab:
6:23:respawn:perl /root/bin/enterpriseloop.pl 38400 tty6
sowie die alsa Einstellungen so machen, dass alsa auf so 80% Lautstärke steht.
Die Clients erkennen via COmmandline ihren targetstream. Daher können alle vom gleichen nfs readonly booten.
Client updated db
in die crontab von root eintragen:
0 * * * * mpc –port 66000 update
MPD Controlports
Lounge ... 6600 Seminarraum ... 6601 Elab ... 6602 kueche ... 6603 crafting ... 6604 fablab ... 6605 workshop ... 6606 klo ... 6607
MPD Audio Out
Lounge ... 8000 Seminarraum ... 8001 Elab ... 8002 kueche ... 8003 crafting ... 8004 fablab ... 8005 workshop ... 8006 klo ... 8007
Testen: einen Stream adden
URL zum Merken für Content (einen stream) http://de.scenemusic.net/necta192.mp3
Trouble Shooting
Lounge: MPD läuft, aber in der Lounge kommt keine Musik
Falls der MPD läuft, in der Lounge aber trotz eingeschaltetem Verstärkerdings und ausreichend gepegelter Lautstärke keine Musik zu hören ist, empfiehlt der bronsen folgende Schritte:
- Verstärkerdings ausschalten
- Chemotherapie ausschalten
- Chemotherapie einschalten
- warten
- noch so lange warten, bis Chemotherapie gepiepst hat
- Verstärkerdings einschalten
Vergisst man, das Verstärkerdings auszuschalten bevor man Chemotherapie einschaltet, DANN STERBEN LEUTE!