Aktivierung der Soundausgabe unter Ubuntu Server

geschrieben am 03.06.2015
Schlagwörter: , ,

music

Ein Server – egal ob Zuhause oder im Büro – übernimmt für gewöhnlich keine Multimedia-Aufgaben. Er dient als Fileserver, Host für virtuelle Maschinen, Domain Controller oder übernimmt andere Aufgaben. Möchte man seinen Server aber zum Beispiel als zentrales Radiogerät nutzen, kann das unter Ubuntu durchaus zu grauen Haaren führen. Dabei ist die Lösung denkbar einfach.

Für unsere ionas-Server nutzen wir Mopidy als zentrale Musikbox. Radiostreams und auf dem Server gespeicherte mp3-Dateien können so mit dem Gerät abgespielt werden, ohne das zusätzlich ein Radio benötigt wird.
Da die Serverversion von Ubuntu mit unkonfigurierter Soundausgabe ausgeliefert wird, mussten wir einen kurzen aber wirksamen Weg finde, diese wieder zu aktivieren. Lesen Sie hier, wie es geht.

Dieser Artikel beschäftigt sich mit der Aktivierung der Stereoausgabe über den normalen Klinke-Anschluss, nicht mit der Ausgabe über HDMI.

ALSA – Advanced Linux Sound Architecture

ALSA – die grundlegende Soundarchitektur – ist als Bestandteil des Grundsystems bereits auf jedem Ubuntu Server vorhanden, da es aus Kernelmodulen besteht. PulseAudio, ein erweiterter Soundserver der in den meisten Desktopsystemen genutzt wird, ist hingegen nicht installiert.
Um eine zufriedenstellende Soundausgabe zu ermöglichen ist dies aber auch nicht notwendig, da die Kommunikation zwischen Software und Soundkarte ohnehin auch von Pulse über ALSA geleitet werden müsste.
Grundsätzlich müssen also keine weiteren Pakete installiert werden.

Diagnose

Zunächst testen wir die Ausgabe mit aplay, einem Bordmittel von ALSA.

sudo aplay /usr/share/sounds/alsa/Front_Center.wav

Erwartungsgemäß sollten nun einige Fehlermeldungen angezeigt werden.

Als nächster Schritt empfiehlt es sich, zu testen, ob die Soundkarte erkannt wird, und welche als Standard ausgewählt ist.
Die einfachste Möglich ist hier, direkt mit ALSA-Mitteln zu arbeiten.

Mit alsamixer können wir zunächst testen, ob unsere Soundkarte(n) erkannt werden. Bei aktueller Hardware sind für gewöhnlich sowohl normale PCM- als auch HDMI-Soundkarten onboard mitgeliefert.

Der folgende Befehl liefert eine Übersicht.

sudo alsamixer

Mit „F6“ lassen wir uns nun die erkannten Soundkarten anzeigen. Hier sollte nun wenigstens eine Soundkarte angezeigt sein. In der Regel finden wir aber 3 Einträge:

-  (default) 
0  HDA Intel HDMI
1  HDA Intel PCH

In diesem Fall wollen wir die PCH-Karte aktivieren.

Kein Sound unter Ubuntu Server

In der Grundkonfiguration ist Ubuntu Server nicht in der Lage, die ausgewählte Soundkarte als Standard zu speichern.
Dies können wir testen, indem die entsprechende PCH-Soundkarte ausgewählt und mit „Enter“ bestätigt wird. Nun verlassen wir alsamixer und rufen ihn erneut auf.
Die zuvor ausgewählte Soundkarte sollte nun nicht als Default ausgewählt sein.
Deshalb kümmern wir uns selbst um diese Aufgabe.

Hier zu legen wir unter „/etc/“ eine „asound.conf“ an, in welcher wir folgende Informationen speichern:

pcm.!default { 
  type plug 
  slave { 
    pcm "hw:1,0" 
  } 
} 
ctl.!default { 
  type hw 
  card 1 
} 

WICHTIG: Sollte hier nur eine PCH-Soundkarte angezeigt werden, oder die PCH-Karte nicht unter Punkt „1“ aufgeführt werden, muss in der asound.conf die entsprechende Nummer anstelle der 1 eingetragen werden.

Test der Umstellung

Nachdem nun die asound.conf angelegt wurde, können wir testen, ob die Soundkarte nun vom System genutzt werden kann.

Hierzu rufen wir erneut amixer auf. Nun sollte die richtige Karte direkt angezeigt werden. Ist dies nicht der Fall, muss wie oben beschrieben nochmal der Eintrag in asound.conf geprüft werden.

Wurde die richtige Karte ausgewählt, sollten nun die Lautstärkelevel eingestellt werden. Es empfiehlt sich, hierbei innerhalb des oberen, weiß angezeigten Lautstärkebereichs zu bleiben, um eine ausreichende Lautstärke ohne Klirren oder Verzerrung zu erreichen.

Um die Funktion der Soundkarte zu testen spielen wir erneut eine Datei mit aplay ab:

sudo aplay /usr/share/sounds/alsa/Front_Center.wav

Ton sollte nun noch nicht zu hören sein, aber die Folgende Meldung sollte anstatt der vorherigen Fehlermedungen angezeigt werden:

Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono

Dies ist ein Zeichen dafür, dass die Karte erkannt und richtig eingestellt wurde. Alle Mitglieder der „audio“-Gruppe können nun die Soundkarte nutzen.

Ton wird ausschließlich deshalb nicht ausgegeben, da die einzelnen Kanäle als Standard in Ubuntu Server gemuted sind, also auch bei funktionierender Konfiguration und eingestellter Lautstärke erstmal keinen Ton liefern.

Um sie zu aktivieren, müssen wir uns zunächst einen Überblick über die verfügbaren Kanäle verschaffen.

sudo amixer scontrols

Die dadurch angezeigte Liste enthält Einträge aller verfügbaren Kanäle:

Simple mixer control 'Master',0 
Simple mixer control 'Headphone',0 
Simple mixer control 'Front',0 
Simple mixer control 'Front Mic',0 
Simple mixer control 'Front Mic Boost',0 
Simple mixer control 'Surround',0 
Simple mixer control 'Center',0 
.
.
.
.

Soundausgabe unter Ubuntu Server einschalten

Für die Stereo-Ausgänge des Boards (Klinke) sind zwei Kanäle wichtig: „Master“ und „Headphone“. Diese beiden müssen wir nun einschalten.

sudo amixer sset 'Master' unmute
sudo amixer sset 'Headphone' unmute

Nachdem die beiden Kanäle eingeschaltet wurden sollte nun durch einen erneuten Aufruf von aplay tatsächlich Ton abgespielt werden.

sudo aplay /usr/share/sounds/alsa/Front_Center.wav

Ein angeschlossener Lautsprecher oder Kopfhörer natürlich vorausgesetzt.

Fazit

Die wenigsten Leute benötigen bei einem Linux Server die Soundausgabe. Trotzdem ist es im ersten Moment verwirrend, wenn die Soundausgabe aktiv, aber trotzdem kein Sound aus den Boxen kommt. Mit unserer Anleitung haben Sie in wenigen Minuten die Soundausgabe in Ihrem Server aktiviert.



« | »