Dobiwe: Anwendungen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche

((DobiWe|Startseite))

mpd - der mplayer-dienst

Ist auch in stesies Feed: :-):

ipkg install mpd

Jetzt muss noch eine /etc/mpd.conf angelegt werden:

##REQUIREDPATHS#############
music_directory "/media/ram/mpd/"
playlist_directory "/media/ram/playlists"
db_file "/media/ram/mpd/.mpd/mpd.db"
log_file "/media/ram/mpd.log"
error_file "/media/ram/mpd.error"
############################

port "6600"

Ein Startskript als /etc/init.d/mpd abgelegen:

#!/bin/sh

mpd=/usr/bin/mpd 
test -x "$mpd" || exit 0 
case "$1" in 
    start) echo -n "Starting mpd: ";start-stop-daemon --start ¬
--quiet --exec $mpd; echo "." ;; 
    stop) echo -n "Stopping mpd: ";start-stop-daemon --stop ¬
--quiet --exec $mpd; echo "." ;; 
    *) echo "Usage: /etc/init.d/mpd {start|stop}"; exit 1 ;;
esac 
exit 0

Dann die Datei noch ausführbar machen:

chmod +x /etc/init.d/mpd

Jetzt noch ein

mkdir /home/root/.mpd 
mkdir /home/root/.mpd/playlists 

hinterher und man kann testen:

root@h3600:~# /etc/init.d/mpd start
Starting mpd: .


ncmpc - ncurses-basiertes Frontend

Stefan hat freunlicherweise ein gepatchtes Paket erstellt, dass einen unschönen Darstellungsfehler mit der verwendeten Konsole behebt:

ipkg install ncmpc

Starticon für ncmpc: Hier hinterlegt man sich irgendwo ein schönes Bildchen, dann diese Datei /usr/share/applications/ncmpc.desktop anlegen:

Desktop Entry]
Name=ncmpc
Comment=ncurses based frontend for mpd
Type=PanelApp
Icon=/opt/QtPalmtop/pics/mpd.png
Categories=Panel;Utility;MB
Exec=mb-applet-launcher -o -1 -l /opt/QtPalmtop/pics/mpd.png /usr/bin/ncmpc_start.sh


mpc

mpc ist ein Kommandozeilentool zum Steuern des mpd. Wir brauchen es für die Belegung der Funktionstasten:

root@h3600:~# ipkg install mpc
Installing mpc (0.11.2-r0) to root...
Configuring mpc


Amixer zum Setzen der Sound-Einstellungen

TODO alsa-utils-amixer in stesies feed!

Das Problem: zu Beginn ist der Bass-Boost des Ipaq aktiviert und die Höhen sind auch aufgedreht. Wir möchten aber (wenn überhaupt!) den Klang am Verstärker regeln, also müssen wir den Frequenzgang beim Booten glätten:

root@h3600:~# ipkg -force-overwrite install alsa-utils-amixer

Jetzt zeigt sich, was man mit amixer alles regeln kann:

root@h3600:~# amixer scontrols
Simple mixer control 'Master',0
Simple mixer control 'Bass',0
Simple mixer control 'Treble',0
Simple mixer control 'Line',0
[schnipp]

Uns interessieren natürlich hauptsächlich Master, Bass und Treble: Der Witz ist, dass wenn man jetzt z.B. Bass und Treble auf 0 setzt, der Boost trotzdem drin bleibt! (:redface:) Für dieses Verhalten habe ich noch keine Erklärung gefunden, daher setze ich später im Startscript für den ncmpc den Wert erst auf 1, dann auch 0: ist zwar unschön, funktioniert aber! %)

Im Startscript wird das etwa so aussehen:

# Boombastic-Sound abstellen :)
amixer -q -c 0 sset 'Bass' 1
amixer -q -c 0 sset 'Bass' 0
amixer -q -c 0 sset 'Treble' 1
amixer -q -c 0 sset 'Treble' 0
amixer -q -c 0 sset 'Master' 50

Jetzt sollte der "Boombastic-Sound" weg sein ;) Man sollte eine Master-Lautstärke für den Start wählen, die die Boxen nicht sprengt, wenn man versehentlich den Verstärker noch aufgedreht hat 8-).


Startskript für mpd & ncmpc

dieses Skript ausführbar als /usr/bin/ncmpc_start.sh anlegen:

#!/bin/sh

# Startskript für den ncmpc, der durch ein Desktop-Icon aufgerufen wird
# per irpty werden IR-Codes an den ncmpc weitergereicht
# die Konfiguration liegt in /etc/ncmpc.lirc

# Manchmal kommt beim Resume das eth0-Interface nicht hoch:
ifup eth0

# Boombastic-Sound abstellen :)
amixer -q -c 0 sset 'Bass' 1
amixer -q -c 0 sset 'Bass' 0
amixer -q -c 0 sset 'Treble' 1
amixer -q -c 0 sset 'Treble' 0
amixer -q -c 0 sset 'Master' 50

# Prüfen, ob noch einer oder mehrere Mounts von einer ev. schon abgesteckten 
# Fritzbox-Platte vorhanden ist, falls ja alle unmounten!
while mount | grep /media/ram/mpd  > /dev/null ; do umount /media/ram/mpd ; done

# symlink für playlisten-Verzeichnis erstellen falls noch nicht vorhanden
[ -d /media/ram/playlists ]  | ln -s /home/root/.mpd/playlists/ /media/ram/

# Verzeichnisstruktur wie im conf-File gefordert herstellen wenn noch nicht vorhanden
[ -d /media/ram/mpd/ ]  | mkdir /media/ram/mpd/;mkdir /media/ram/mpd/.mpd/;¬
ln -s /home/root/.mpd/mpd.db /media/ram/mpd/.mpd/
 
# Erst ev. laufenden mpd beenden:
ps ax | grep mpd | grep -v grep && /etc/init.d/mpd stop

# Mount-Versuch der Fritzbox-Platte, falls sie nicht zur Verfügung steht,
# liegt in /media/ram/mpd eine Verzeichnisstruktur, die die mpd.conf erfüllt.
# Das erspart das Nutzen zweier Verschiedener conf-Files (tnx stesie for the tip!)
mount  /media/ram/mpd > /dev/null

# mpd-Dienst neu starten und ncmpc in Konsolenfenster öffnen
/etc/init.d/mpd start && sleep 5 && rxvt -fn 6x10 -e /usr/bin/ncmpc_irpty.sh

am Ende wird in einer neuen Konsole /usr/bin/ncmpc_irpty.sh aufgerufen und leitet die Kommandos der Fernbedienung via irpty an den ncmpc weiter ;)

Das Skript /usr/bin/ncmpc_irpty.sh anlegen und ausführbar machen:

#!/bin/sh
# sleep 1 nötig, sonst erkennt ncmpc die Konsolengröße nicht
# und es kommt zu Fehldarstellungen!
mpc load last_playlist
sleep 1
irpty /etc/ncmpc.lirc -- ncmpc


Stopskript für mpd & ncmpc

Beim Suspend2RAM müssen wir ncmpc und mpd sauber beenden, sonst droht beim Resume ein Einfrieren des X-Servers Ausserdem prüft das Startskript jedesmal das Vorhandensein des ((DobiWeSmbfs|smb-Shares)), den wir im nächsten Kapitel einrichten- d.h. wenn man das Radio leid ist, einfach den smb-Share bereitstellen (in meinem Fall: die Harddisk an die Fritzbox hängen :-)) und schon kann man sein ganz persönliches Wunschkonzert zusammenstellen!

Folgendes als ausführbares /usr/bin/s2ram.sh anlegen:

#!/bin/sh

# Skript um den dobiwe in den suspend2ram zu schicken

# wiedergabe beenden
mpc stop

# aktuelle playlist wegsichern
mpc rm last_playlist
mpc save last_playlist

# ncmpc und mpd beenden
killall ncmpc
/etc/init.d/mpd stop

# jetzt erst in den suspend schalten
apm -s


Resumeskript für mpd & ncmpc

Beim Wiedereinschalten (resume) muss natürlich alles wieder gestartet werden:

Folgendes als ausführbares /etc/apm/resume.d/40ncmpc_restart anlegen:

#!/bin/sh

sh /usr/bin/ncmpc_start.sh

Jetzt sollte man einfach im laufenden Betrieb ausschalten können- beim wiedereinschalten dauert es eine Weile und der ncmpc-Bildschirm erscheint wieder.


Weiter geht es mit dem Anbinden eines smb-Shares- z.B. eine externe USB-Platte an der Fritzbox!