Advanced Linux Sound Architecture: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
(→‎Pakete installieren: Separate Installation von alsa-lib herausgenommen, da nicht mehr nötig.)
(services beschrieben Anrede geändert usw.)
Zeile 4: Zeile 4:


Alsa ist im Kernel und somit auch in allen <code>linux</code>-Paketen bereits enhalten.
Alsa ist im Kernel und somit auch in allen <code>linux</code>-Paketen bereits enhalten.
Vergiss nicht, den passenden Alsa Treiber zu aktivieren, wenn du dir deinen eigenen Kernel baust.
Falls ein eigener kernel gebaut wurde, so sollte das entsprechende Alsa-Treibermodul geladen werden.


Alle benötigten Module sollten von udev automatisch erkannt und geladen werden, mit Ausnahme von ISA Karten sollte keine zusätzliche Konfiguration notwendig sein.
Alle benötigten Module sollten von udev automatisch erkannt und geladen werden, mit Ausnahme von ISA Karten sollte keine zusätzliche Konfiguration notwendig sein.
Benutze '''NIEMALS''' <code>alsaconf</code>, wenn du eine PCI oder ISAPNP Soundkarte hast, dies könnte udev durcheinander bringen!
Zur Beachtung, es ist '''NIEMALS''' <code>alsaconf</code> zu benutzen, wenn eine PCI oder ISAPNP Soundkarte vorhanden ist, dies könnte udev durcheinander bringen!


===Pakete installieren===
===Pakete installieren===
Zeile 15: Zeile 15:
  # pacman -S alsa-utils
  # pacman -S alsa-utils


* Empfohlen, wenn du Programme mit OSS Unterstützung, kombiniert mit dmix, verwenden möchtest:
* Empfohlen, wenn Programme mit OSS Unterstützung, kombiniert mit dmix, verwendet werden sollen:


  # pacman -S alsa-oss
  # pacman -S alsa-oss
Zeile 25: Zeile 25:
===Sicherstellen, dass die Soundmodule geladen sind===
===Sicherstellen, dass die Soundmodule geladen sind===


In den meisten Fällen erkennt udev die Soundkarte richtig, OSS Kompatibilitätsmodule eingeschlossen. Du kannst dies mit dem folgenden Befehl überprüfen:
In den meisten Fällen erkennt udev die Soundkarte richtig, OSS Kompatibilitätsmodule eingeschlossen. Man kann dies mit dem folgenden Befehl überprüfen:


  # lsmod | grep 'snd'
  # lsmod | grep 'snd'
Zeile 49: Zeile 49:


Wenn die Ausgabe ähnlich aussieht, so wurden die Soundtreiber erfolgreich erkannt (in diesem Fall sind <code>snd_intel8x0</code> und <code>snd_usb_audio</code> die Gerätetreiber).
Wenn die Ausgabe ähnlich aussieht, so wurden die Soundtreiber erfolgreich erkannt (in diesem Fall sind <code>snd_intel8x0</code> und <code>snd_usb_audio</code> die Gerätetreiber).
Du kannst auch das Verzeichnis <code>/dev/snd</code> auf die passenden Gerätedateien überprüfen:
Man kann auch das Verzeichnis <code>/dev/snd</code> auf die passenden Gerätedateien überprüfen:


  # ls -l /dev/snd/
  # ls -l /dev/snd/
Zeile 65: Zeile 65:
Wenn mindestens die Dateien <code>controlC0</code> und <code>pcmC0D0p</code> oder ähnliches vorhanden sind, so sind die Soundmodule richtig ermittelt und geladen worden.
Wenn mindestens die Dateien <code>controlC0</code> und <code>pcmC0D0p</code> oder ähnliches vorhanden sind, so sind die Soundmodule richtig ermittelt und geladen worden.


Sollte dies nicht der Fall sein, so sind die Soundmodule nicht richtig erkannt worden. '''Wenn man auf IRC oder in den Foren nach Hilfe fragt, sollte man die obigen Befehle mitteilen.''' Versuch, die Module manuell zu laden:


Sollte dies nicht der Fall sein, so sind die Soundmodule nicht richtig erkannt worden. '''Wenn du auf IRC oder in den Foren nach Hilfe fragst, teile bitte die Ausgabe der obigen Befehle mit.''' Versuche, die Module manuell zu laden:
* Suchen des Moduls für die Soundkarte: http://www.alsa-project.org/alsa-doc/  
 
* Suche das Modul für deine Soundkarte: http://www.alsa-project.org/alsa-doc/  
Das Modul hat das Präfix <code>snd-</code>  (Beispiel: <code>snd-via82xx</code>).
Das Modul hat das Präfix <code>snd-</code>  (Beispiel: <code>snd-via82xx</code>).
* Lade die Module:  
* Modul laden:
  # modprobe snd-NAME-DES-MODULS
  # modprobe snd-NAME-DES-MODULS
  # modprobe snd-pcm-oss
  # modprobe snd-pcm-oss
* Überprüfe, ob die Gerätedateien in <code>/dev/snd</code> (siehe oben) vorhanden sind und ob <code>alsamixer</code> oder <code>amixer</code> richtig eingestellt sind oder Fehlermeldungen ausgeben.
* Überprüfen, ob die Gerätedateien in <code>/dev/snd</code> (siehe oben) vorhanden sind und ob <code>alsamixer</code> oder <code>amixer</code> richtig eingestellt sind oder Fehlermeldungen ausgeben.
* Füge <code>snd-pcm-oss</code> und <code>snd-NAME-DES-MODULS</code> der liste der MODULE in <code>/etc/rc.conf</code> hinzu, damit sie beim nächsten Start geladen werden.


===Zugriffsrechte===
===Zugriffsrechte===


Um die Soundkarte als normaler Benutzer benutzen zu können, sind folgende Schritte vonnöten:
Um die Soundkarte als normaler Benutzer benutzen zu können, muß der Benutzer in der Gruppe Audio sein


* Füge den Benutzer zur Gruppe <code>audio</code> hinzu:
* Hinzufügen des Benutzers zur Gruppe <code>audio</code>:
  # gpasswd -a BENUTZER audio
  # gpasswd -a BENUTZER audio


* Log dich aus und wieder ein.
* Benutzer abmelden und wieder anmelden.


===Soundkanäle aktivieren und Soundkarte testen===
===Soundkanäle aktivieren und Soundkarte testen===
Um die folgenden Schritte als normaler Benutzer durchzuführen, musst du die Schritte unter ''Zugriffsrechte'' ausgeführt haben.


* Lautstärke einstellen
* Lautstärke einstellen


Es wird empfohlen, <code>alsamixer</code> zum Einstellen der Lautstärke und aktivieren der Kanäle zu verwenden.
Es wird empfohlen, <code>alsamixer</code> zum Einstellen der Lautstärke und aktivieren der Kanäle zu verwenden.
'''ACHTUNG:''' Benutze die Taste 'M' in <code>alsamixer</code>, um Kanäle zu aktivieren und vergiss nicht, die Lautstärke zu bestimmen.
'''ACHTUNG:''' Benutzung der Taste 'M' in <code>alsamixer</code>, um Kanäle zu aktivieren und nicht vergessen, die Lautstärke bestimmen.


Ersatzweise kann auch <code>amixer</code> eingesetzt werden, welches jedoch weniger komfortabel ist:
Ersatzweise kann auch <code>amixer</code> eingesetzt werden, welches jedoch weniger komfortabel ist:
Zeile 98: Zeile 94:
  amixer set PCM,0 75% unmute
  amixer set PCM,0 75% unmute


* Versuche nun, eine Wave Datei abzuspielen:
* Versuchen eine Wave Datei abzuspielen:


  aplay /usr/share/sounds/alsa/Front_Center.wav
  aplay /usr/share/sounds/alsa/Front_Center.wav
Zeile 104: Zeile 100:
===Alsa Mixer Einstellungen beim Start wiederherstellen===
===Alsa Mixer Einstellungen beim Start wiederherstellen===


Einfach <code>alsa</code> zu dem DAEMONS-Array der rc.conf hinzufügen. Dadurch werden die Soundeinstellungen beim Beenden gespeichert, und diese beim Starten wieder hergestellt.
Es gibt 2 Services (Dienste) zum speichern und wiederherstellen der Mixereinstellungen. Um diese zu aktivieren:
# systemctl enable alsa-store.service
# systemctl enable alsa-restore.service


Sollte dies nicht funktionieren, dann kann man das gleiche Ergebnis mit folgenden Eingaben (als root) erreichen:
Sollte dies nicht funktionieren, dann kann man das gleiche Ergebnis mit folgenden Eingaben (als root) erreichen:
  # rm /var/lib/alsa/asound.state
  # rm /var/lib/alsa/asound.state
# /etc/rc.d/alsa stop


===Festlegen des Default-Device===
===Festlegen des Default-Device===
Zeile 127: Zeile 123:


*<code>/etc/asound.conf</code> für systemweite Einstellungen, die alle Benutzer betreffen (root Rechte beim editieren nicht vergessen).
*<code>/etc/asound.conf</code> für systemweite Einstellungen, die alle Benutzer betreffen (root Rechte beim editieren nicht vergessen).
*<code>~/.asoundrc</code> für Einstellungen, die nur deinen Benutzeraccount betreffen.
*<code>~/.asoundrc</code> für Einstellungen, die nur einen Benutzeraccount betreffen.


Dort fügt man folgendes ein:
Dort füge man folgendes ein:


  pcm.!default {
  pcm.!default {
Zeile 157: Zeile 153:




Überprüfe amixers Einstellungen mit:
Überprüfung amixers Einstellungen mit:


  amixer scontrols
  amixer scontrols
Zeile 163: Zeile 159:
==Immer noch kein Sound?==
==Immer noch kein Sound?==


Obwohl die Treiber für deine Soundkarte richtig installiert und sowohl Lautstärke als auch Kanäle richtig eingestellt sind, könnte es sein, dass du immer noch nichts hörst! Füge folgende Zeile deiner <code>/etc/modprobe.d/sound.conf</code> hinzu, um dieses Problem zu lösen.
Obwohl die Treiber für die Soundkarte richtig installiert und sowohl Lautstärke als auch Kanäle richtig eingestellt sind, könnte es sein, dass man noch immer nichts hört!  
Hinzufügen folgender Zeile in <code>/etc/modprobe.d/sound.conf</code> um dieses Problem zu lösen.


Für <code>via82xx</code>:
Für <code>via82xx</code>:
Zeile 193: Zeile 190:


==Schlechte Soundqualität?==
==Schlechte Soundqualität?==
* Sollte es zu Verzerrungen kommen, solltest du überprüfen, ob ggf. "PCM" zu hoch eingestellt ist. Starte
* Sollte es zu Verzerrungen kommen, sollte man überprüfen, ob ggf. "PCM" zu hoch eingestellt ist. Starten von
  $ alsamixer
  $ alsamixer
* und regle "PCM" so dass "dB gain" auf 0.00 oder niedriger eingestellt ist.
* und "PCM" "dB gain" auf 0.00 oder niedriger eingestellen.





Version vom 29. Oktober 2012, 21:22 Uhr

Installation

Kernel Treiber

Alsa ist im Kernel und somit auch in allen linux-Paketen bereits enhalten. Falls ein eigener kernel gebaut wurde, so sollte das entsprechende Alsa-Treibermodul geladen werden.

Alle benötigten Module sollten von udev automatisch erkannt und geladen werden, mit Ausnahme von ISA Karten sollte keine zusätzliche Konfiguration notwendig sein. Zur Beachtung, es ist NIEMALS alsaconf zu benutzen, wenn eine PCI oder ISAPNP Soundkarte vorhanden ist, dies könnte udev durcheinander bringen!

Pakete installieren

  • Wird für native Alsa Programme und zur Administration benötigt:
# pacman -S alsa-utils
  • Empfohlen, wenn Programme mit OSS Unterstützung, kombiniert mit dmix, verwendet werden sollen:
# pacman -S alsa-oss

Das Paket alsa-lib muß mittlerweile nicht mehr separat installiert werden, da es schon automatisch von alsa-utils als Abhängigkeit mitinstalliert wird.

Konfiguration

Sicherstellen, dass die Soundmodule geladen sind

In den meisten Fällen erkennt udev die Soundkarte richtig, OSS Kompatibilitätsmodule eingeschlossen. Man kann dies mit dem folgenden Befehl überprüfen:

# lsmod | grep 'snd'
snd_usb_audio          69696  0 
snd_usb_lib            13504  1 snd_usb_audio
snd_rawmidi            20064  1 snd_usb_lib
snd_hwdep               7044  1 snd_usb_audio
snd_seq_oss            29412  0 
snd_seq_midi_event      6080  1 snd_seq_oss
snd_seq                46220  4 snd_seq_oss,snd_seq_midi_event
snd_seq_device          6796  3 snd_rawmidi,snd_seq_oss,snd_seq
snd_pcm_oss            45216  0 
snd_mixer_oss          15232  1 snd_pcm_oss
snd_intel8x0           27932  0 
snd_ac97_codec         87648  1 snd_intel8x0
snd_ac97_bus            1792  1 snd_ac97_codec
snd_pcm                76296  4
snd_usb_audio,snd_pcm_oss,snd_intel8x0,snd_ac97_codec
snd_timer              19780  2 snd_seq,snd_pcm
snd                    43776  12
snd_usb_audio,snd_rawmidi,snd_hwdep,snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer
snd_page_alloc          7944  2 snd_intel8x0,snd_pcm

Wenn die Ausgabe ähnlich aussieht, so wurden die Soundtreiber erfolgreich erkannt (in diesem Fall sind snd_intel8x0 und snd_usb_audio die Gerätetreiber). Man kann auch das Verzeichnis /dev/snd auf die passenden Gerätedateien überprüfen:

# ls -l /dev/snd/
total 0
crw-rw----  1 root audio 116,  0 Apr  8 14:17 controlC0
crw-rw----  1 root audio 116, 32 Apr  8 14:17 controlC1
crw-rw----  1 root audio 116, 24 Apr  8 14:17 pcmC0D0c
crw-rw----  1 root audio 116, 16 Apr  8 14:17 pcmC0D0p
crw-rw----  1 root audio 116, 25 Apr  8 14:17 pcmC0D1c
crw-rw----  1 root audio 116, 56 Apr  8 14:17 pcmC1D0c
crw-rw----  1 root audio 116, 48 Apr  8 14:17 pcmC1D0p
crw-rw----  1 root audio 116,  1 Apr  8 14:17 seq
crw-rw----  1 root audio 116, 33 Apr  8 14:17 timer

Wenn mindestens die Dateien controlC0 und pcmC0D0p oder ähnliches vorhanden sind, so sind die Soundmodule richtig ermittelt und geladen worden.

Sollte dies nicht der Fall sein, so sind die Soundmodule nicht richtig erkannt worden. Wenn man auf IRC oder in den Foren nach Hilfe fragt, sollte man die obigen Befehle mitteilen. Versuch, die Module manuell zu laden:

Das Modul hat das Präfix snd- (Beispiel: snd-via82xx).

  • Modul laden:
# modprobe snd-NAME-DES-MODULS
# modprobe snd-pcm-oss
  • Überprüfen, ob die Gerätedateien in /dev/snd (siehe oben) vorhanden sind und ob alsamixer oder amixer richtig eingestellt sind oder Fehlermeldungen ausgeben.

Zugriffsrechte

Um die Soundkarte als normaler Benutzer benutzen zu können, muß der Benutzer in der Gruppe Audio sein

  • Hinzufügen des Benutzers zur Gruppe audio:
# gpasswd -a BENUTZER audio
  • Benutzer abmelden und wieder anmelden.

Soundkanäle aktivieren und Soundkarte testen

  • Lautstärke einstellen

Es wird empfohlen, alsamixer zum Einstellen der Lautstärke und aktivieren der Kanäle zu verwenden. ACHTUNG: Benutzung der Taste 'M' in alsamixer, um Kanäle zu aktivieren und nicht vergessen, die Lautstärke bestimmen.

Ersatzweise kann auch amixer eingesetzt werden, welches jedoch weniger komfortabel ist:

amixer set Master,0 75% unmute
amixer set PCM,0 75% unmute
  • Versuchen eine Wave Datei abzuspielen:
aplay /usr/share/sounds/alsa/Front_Center.wav

Alsa Mixer Einstellungen beim Start wiederherstellen

Es gibt 2 Services (Dienste) zum speichern und wiederherstellen der Mixereinstellungen. Um diese zu aktivieren:

# systemctl enable alsa-store.service
# systemctl enable alsa-restore.service

Sollte dies nicht funktionieren, dann kann man das gleiche Ergebnis mit folgenden Eingaben (als root) erreichen:

# rm /var/lib/alsa/asound.state

Festlegen des Default-Device

Falls man mehrere Ausgabegeräte besitzt ist es manchmal nötig ein Default-Gerät festzulegen. Dazu gibt man die Karten über folgenden Befehl aus:

# cat /proc/asound/cards

Die Ausgabe könnte so aussehen:

0 [HDMI           ]: HDA-Intel - HDA ATI HDMI
                     HDA ATI HDMI at 0xfe9ec000 irq 19
1 [Bt878          ]: Bt87x - Brooktree Bt878
                     Brooktree Bt878 at 0xfdffe000, irq 21
2 [Audigy2        ]: Audigy2 - Audigy 4 [SB0610]
                     Audigy 4 [SB0610] (rev.0, serial:0x10211102) at 0xe800, irq 20

Nun editiert man eine der beiden Dateien:

  • /etc/asound.conf für systemweite Einstellungen, die alle Benutzer betreffen (root Rechte beim editieren nicht vergessen).
  • ~/.asoundrc für Einstellungen, die nur einen Benutzeraccount betreffen.

Dort füge man folgendes ein:

pcm.!default {
    type hw
    card Audigy2
}
ctl.!default {
    type hw
    card Audigy2
}

Der Wert Audigy2 erhält man aus der obigen Ausgabe. Stattdessen läßt sich auch die Nummer eintragen, was aber nicht zu empfehlen ist, da sich bei einem Reboot die Reihenfolge ändern kann.

SPDIF Soundausgabe

(von gralves von den gentoo foren)

  • Ändere IEC958 nach PCM in den Optionen der Gnome Lautstärke Kontrolle.
  • Ansonsten, ohne Gnome
    • Ändere IEC958 Playback Switch in der Datei /etc/asound.state von false nach true und IEC958 Playback AC97-SPSA nach 0.
    • Starte Alsa neu.

Alternative Möglichkeit, um SPDIF automatisch beim Login zu starten (getestet mit einer SoundBlaster Audigy):

  • Füge die folgenden Zeilen deiner /etc/rc.local hinzu:
amixer set 'IEC958 Optical' 100 unmute
amixer set 'Audigy Analog/Digital Output Jack' on


Überprüfung amixers Einstellungen mit:

amixer scontrols

Immer noch kein Sound?

Obwohl die Treiber für die Soundkarte richtig installiert und sowohl Lautstärke als auch Kanäle richtig eingestellt sind, könnte es sein, dass man noch immer nichts hört! Hinzufügen folgender Zeile in /etc/modprobe.d/sound.conf um dieses Problem zu lösen.

Für via82xx:

options snd-NAME-DES-MODULS ac97_quirk=0

Für HDA-VIA/Realtek/Intel:

options snd-hda-intel model=3stack

Für HDA-Intel siehe auch: Hda-intel

Für Lenovo N200 und ASUS F5SL Notebook:

options snd-hda-intel model=lenovo

Konfiguration für KDE

# startx
  • Stelle die Lautstärke für diesen Benutzer deinen Präferenzen nach ein (Wie bei Linux üblich, werden die Einstellungen für jeden Benutzer seperat gespeichert):
# alsamixer
  • KDE 3.3
    • Starte KMix und deaktiviere die Option "Lautstärke beim Anmelden wiederherstellen"


Seite kopiert von "http://wiki.archlinux.org/index.php/ALSA_Einrichten_(Deutsch)" und veröffentlicht unter der GNU Free Documentation License 1.2.


Schlechte Soundqualität?

  • Sollte es zu Verzerrungen kommen, sollte man überprüfen, ob ggf. "PCM" zu hoch eingestellt ist. Starten von
$ alsamixer
  • und "PCM" "dB gain" auf 0.00 oder niedriger eingestellen.