Advanced Linux Sound Architecture: Unterschied zwischen den Versionen
Pierre (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
K →Einen zusätzlichen Regler hinzufügen: als veraltet markiert |
||
(38 dazwischenliegende Versionen von 19 Benutzern werden nicht angezeigt) | |||
Zeile 3: | Zeile 3: | ||
===Kernel Treiber=== | ===Kernel Treiber=== | ||
[[Wikipedia:Advanced Linux Sound Architecture|Advanced Linux Sound Architecture]] ('''ALSA''') ist im Kernel und somit auch in allen <code>linux</code>-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. | 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''' <code>alsaconf</code> zu benutzen, wenn eine PCI oder ISAPNP Soundkarte vorhanden ist, dies könnte udev durcheinander bringen! | |||
===Pakete installieren=== | ===Pakete installieren=== | ||
* | * Wird für native ALSA Programme und zur Administration benötigt: | ||
# pacman - | # pacman -S alsa-utils | ||
* Empfohlen, wenn | * Empfohlen, wenn Programme mit OSS Unterstützung, kombiniert mit dmix, verwendet werden sollen: | ||
# pacman -S alsa-oss | # pacman -S alsa-oss | ||
Das Paket <code>alsa-lib</code> muss mittlerweile nicht mehr separat installiert werden, da es schon automatisch von <code>alsa-utils</code> als Abhängigkeit mitinstalliert wird. | |||
==Konfiguration== | ==Konfiguration== | ||
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. | 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' | ||
snd_usb_audio 69696 0 | snd_usb_audio 69696 0 | ||
snd_usb_lib 13504 1 snd_usb_audio | snd_usb_lib 13504 1 snd_usb_audio | ||
Zeile 51: | 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). | ||
Man kann auch das Verzeichnis <code>/dev/snd</code> auf die passenden Gerätedateien überprüfen: | |||
# ls -l /dev/snd/ | # ls -l /dev/snd/ | ||
total 0 | total 0 | ||
crw-rw---- 1 root audio 116, 0 Apr 8 14:17 controlC0 | crw-rw---- 1 root audio 116, 0 Apr 8 14:17 controlC0 | ||
Zeile 69: | 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: | |||
* Suchen des Moduls für die 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>). | ||
* | * Modul laden: | ||
# modprobe snd-NAME-DES-MODULS | # modprobe snd-NAME-DES-MODULS | ||
# modprobe snd-pcm-oss | # modprobe snd-pcm-oss | ||
* | * Ü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. | ||
===Zugriffsrechte=== | ===Zugriffsrechte=== | ||
Um die Soundkarte als normaler Benutzer benutzen zu können, | Um die Soundkarte als normaler Benutzer benutzen zu können, muss der Benutzer in der Gruppe audio sein. | ||
* | * Hinzufügen des Benutzers zur Gruppe <code>audio</code>: | ||
# gpasswd -a BENUTZER audio | # gpasswd -a BENUTZER audio | ||
* | * Benutzer abmelden und wieder anmelden. | ||
===Soundkanäle aktivieren und Soundkarte testen=== | ===Soundkanäle aktivieren und Soundkarte testen=== | ||
* 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:''' | '''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: | ||
amixer set Master 75 unmute | amixer set Master,0 75% unmute | ||
amixer set PCM 75 unmute | amixer set PCM,0 75% unmute | ||
* | * Versuchen eine Wave Datei abzuspielen: | ||
aplay /usr/share/sounds/alsa/Front_Center.wav | 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-state.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 / | |||
===Festlegen des Default-Device=== | ===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: | 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 | # cat /proc/asound/cards | ||
Zeile 125: | Zeile 117: | ||
1 [Bt878 ]: Bt87x - Brooktree Bt878 | 1 [Bt878 ]: Bt87x - Brooktree Bt878 | ||
Brooktree Bt878 at 0xfdffe000, irq 21 | Brooktree Bt878 at 0xfdffe000, irq 21 | ||
2 [Audigy2 ]: Audigy2 - Audigy 4 [SB0610] | 2 ['''Audigy2''' ]: Audigy2 - Audigy 4 [SB0610] | ||
Audigy 4 [SB0610] (rev.0, serial:0x10211102) at 0xe800, irq 20 | Audigy 4 [SB0610] (rev.0, serial:0x10211102) at 0xe800, irq 20 | ||
Nun editiert man eine der beiden Dateien: | Nun editiert man eine der beiden Dateien: | ||
*<code>/etc/asound.conf</code> für systemweite Einstellungen, die alle Benutzer betreffen (root Rechte beim | *<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 | *<code>~/.asoundrc</code> für Einstellungen, die nur einen Benutzeraccount betreffen. | ||
Um ein simples sound Device als Standard durch !default (bei der alsa api als standard device definiert) zu definieren, fügt folgendes unter ~/.asoundrc hinzu: | |||
pcm.!default { | pcm.!default { | ||
type hw | type hw | ||
card Audigy2 | card '''Audigy2''' | ||
} | } | ||
ctl.!default { | ctl.!default { | ||
type hw | type hw | ||
card Audigy2 | card '''Audigy2''' | ||
} | } | ||
Der Wert <code>Audigy2</code> erhält man aus der obigen Ausgabe. Stattdessen | Nun habt ihr ein einfaches Sounddevice erstellt; um weitere Konfigurationen für Sounddevices festzulegen (e.g. plugins, slaves, etc) seht euch die Alsa Dokumentation [http://alsa.opensrc.org/.asoundrc] an! | ||
Der Wert <code>Audigy2</code> erhält man aus der obigen Ausgabe. Stattdessen lässt sich auch die Nummer eintragen, was aber nicht zu empfehlen ist, da sich bei einem Reboot die Reihenfolge ändern kann. | |||
'''Achtung''': es gab früher eine Datei namens <code>/etc/alsa.conf</code> mit sehr ähnlichem Inhalt. Es gibt heute noch tools, die eine solche Datei anlegen. Diese Datei wird aber offenbar nicht mehr benutzt, sie ist bedeutungslos und ihre Existenz verwirrend. Alle wesentlichen Einstellungen müssen in die Datei <code>/etc/asound.conf</code>. Wo eine <code>/etc/alsa.conf</code> existiert, kann sie getrost gelöscht werden. | |||
Um lediglich das standard device für ALSA zu ändern (dies hat den Vorteil, dass ihr auf die Standardeinstellungen von ALSA zurückgreifen könnt, wie etwas software Mixing für Ausgabe und Eingabe) wäre folgende Vorgehensweise zu empfehlen: | |||
<code> touch ~/.asoundrc</code> | |||
nun fügt folgendes zu <code>~/.asoundrc</code> hinzu: | |||
defaults.ctl.card <number of your sound device> | |||
defaults.pcm.card <number of your sound device> | |||
defaults.timer.card <number of your sound device> | |||
oder, falls das Device über den Devicenamen adressiert werden soll: | |||
defaults.ctl.!card "<name of your sound device>" | |||
defaults.pcm.!card "<name of your sound device>" | |||
defaults.timer.!card "<name of your sound device>" | |||
===SPDIF Soundausgabe=== | ===SPDIF Soundausgabe=== | ||
Zeile 152: | Zeile 161: | ||
* Ansonsten, ohne Gnome | * Ansonsten, ohne Gnome | ||
** Ändere <code>IEC958 Playback Switch</code> in der Datei <code>/etc/asound.state</code> von <code>false</code> nach <code>true</code> und <code>IEC958 Playback AC97-SPSA</code> nach <code>0</code>. | ** Ändere <code>IEC958 Playback Switch</code> in der Datei <code>/etc/asound.state</code> von <code>false</code> nach <code>true</code> und <code>IEC958 Playback AC97-SPSA</code> nach <code>0</code>. | ||
** Starte | ** Starte ALSA neu. | ||
Alternative Möglichkeit, um SPDIF automatisch beim Login zu starten (getestet mit einer SoundBlaster Audigy): | Alternative Möglichkeit, um SPDIF automatisch beim Login zu starten (getestet mit einer SoundBlaster Audigy): | ||
* | * Ein Script erstellen z.B. /etc/spdif.sh mit folgendem Inhalt: | ||
amixer set 'IEC958 Optical' 100 unmute | amixer set 'IEC958 Optical' 100 unmute | ||
amixer set 'Audigy Analog/Digital Output Jack' on | amixer set 'Audigy Analog/Digital Output Jack' on | ||
* Ein /etc/systemd/system/spdif.service erstellen mit folgendem Inhalt: | |||
[Unit] | |||
Description=SPDIF beim Login starten | |||
[Service] | |||
Type=oneshot | |||
ExecStart=/etc/spdif.sh | |||
[Install] | |||
WantedBy=multi-user.target | |||
Den Service starten mit | |||
systemctl start spdif.service | |||
Den Service beim nächsten booten automatisch starten: | |||
systemctl enable spdif.service | |||
Überprüfung amixers Einstellungen mit: | |||
amixer scontrols | amixer scontrols | ||
Zeile 167: | Zeile 188: | ||
==Immer noch kein Sound?== | ==Immer noch kein Sound?== | ||
Obwohl die Treiber für | 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 174: | Zeile 196: | ||
Für HDA-VIA/Realtek/Intel: | Für HDA-VIA/Realtek/Intel: | ||
options snd-hda-intel model=3stack | options snd-hda-intel model=3stack | ||
''Für HDA-Intel siehe auch: [[Hda-intel]] | |||
Für Lenovo N200 und ASUS F5SL Notebook: | Für Lenovo N200 und ASUS F5SL Notebook: | ||
Zeile 182: | Zeile 205: | ||
# startx | # 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 | * Stelle die Lautstärke für diesen Benutzer deinen Präferenzen nach ein (Wie bei Linux üblich, werden die Einstellungen für jeden Benutzer separat gespeichert): | ||
# alsamixer | # alsamixer | ||
Zeile 193: | Zeile 216: | ||
Seite kopiert von "http://wiki.archlinux.org/index.php/ALSA_Einrichten_(Deutsch)" und veröffentlicht unter der GNU Free Documentation License 1.2. | 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?== | ==Schlechte Soundqualität?== | ||
* | * Sollte es zu Verzerrungen kommen, sollte man überprüfen, ob ggf. "PCM" zu hoch eingestellt ist. Starten von | ||
$ alsamixer | $ alsamixer | ||
* | * und "PCM" "dB gain" auf 0.00 oder niedriger eingestellen. | ||
{{veraltet}} | |||
==Einen zusätzlichen Regler hinzufügen== | |||
Zusätzliche Regler können benutzt werden, um z.B. Programme einzeln in der Lautstärke regeln zu können, ähnlich wie bei PulseAudio. Benötigt werden dazu die Alsa-Plugins (siehe oben). Die Regler können wahlweise in /etc/asound.conf (global) oder in ~/.asoundrc (Benutzerbezogen) angelegt werden. Im folgenden wird ein Regler für das Programm mplayer angelegt. Dieser Regler muss anschließend im Programm, welches diesen verwenden soll eingestellt werden. Hinweise dazu sind in den Wikis/Dokus der betreffenden Programme zu finden. | |||
pcm.mplayer { | |||
type softvol | |||
slave.pcm "default" | |||
control.name "MPlayer" | |||
control.card 0 | |||
min_dB -35.0 | |||
max_dB 10.0 | |||
resolution 90 | |||
} | |||
Damit wird ein neues PCM-Gerät Namens "mplayer" angelegt, welches durch den Regler "MPlayer" im Pegel gesteuert wird. Das Signal wird anschließend über das Gerät "default" ausgegeben. Der Regler wird im vorgenannten Beispiel an der ersten Soundkarte "0" angelegt. | |||
Mit den Werten unter min_dB und max_dB kann man die Grenzen der Drosselung bzw. der Verstärkung des Signals definieren. Das persönliche Optimum findet man durch probieren raus. Mit dem Schalter "resolution" stellt man die Schrittweite des Reglers ein. Lässt man diesen Schalter weg, so liegt die Auflösung bei 256. | |||
Aus eigener Erfahrung möchte ich noch einen Hinweis zum Löschen eines solchen Reglers geben, da das bei mir einiges Suchen auslöste. Alsa speichert die aktuellen Einstellungen in der Datei "/var/lib/alsa/asound.state", darunter natürlich auch die Regler. Will man einen angelegten Regler wieder entfernen, so muss man diesen zunächst aus der Konfigurationsdatei (/etc/asound.conf oder ~/.asoundrc) entfernen. Damit ist dieser Regler dann tatsächlich auch nicht mehr vorhanden und kann nicht mehr verwendet werden, allerdings taucht dieser noch im Mixer-Programm auf. Um diesen loszuwerden, so ist es nötig, den Regler aus der asound.state unter Zuhilfenahme eines Bearbeitungsprogrammes (z.B. vim, nano) zu entfernen. Anschließend muss die Datei vor Schreibzugriff geschützt werden, sodass der Daemon die im System vorhanden Einstellungen beim Herunterfahren des Computers nicht darin speichern kann. Nach einem Neustart des Computers kann die Datei wieder in einen beschreibbaren Zustand versetzt werden. | |||
[[Kategorie:Sound]] | [[Kategorie:Sound]] | ||
[[Kategorie:Services]] | |||
[[en:Advanced Linux Sound Architecture]] |
Aktuelle Version vom 8. Dezember 2020, 20:03 Uhr
Installation
Kernel Treiber
Advanced Linux Sound Architecture (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
muss 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:
- Suchen des Moduls für die Soundkarte: http://www.alsa-project.org/alsa-doc/
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 obalsamixer
oderamixer
richtig eingestellt sind oder Fehlermeldungen ausgeben.
Zugriffsrechte
Um die Soundkarte als normaler Benutzer benutzen zu können, muss 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-state.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.
Um ein simples sound Device als Standard durch !default (bei der alsa api als standard device definiert) zu definieren, fügt folgendes unter ~/.asoundrc hinzu:
pcm.!default { type hw card Audigy2 } ctl.!default { type hw card Audigy2 }
Nun habt ihr ein einfaches Sounddevice erstellt; um weitere Konfigurationen für Sounddevices festzulegen (e.g. plugins, slaves, etc) seht euch die Alsa Dokumentation [1] an!
Der Wert Audigy2
erhält man aus der obigen Ausgabe. Stattdessen lässt sich auch die Nummer eintragen, was aber nicht zu empfehlen ist, da sich bei einem Reboot die Reihenfolge ändern kann.
Achtung: es gab früher eine Datei namens /etc/alsa.conf
mit sehr ähnlichem Inhalt. Es gibt heute noch tools, die eine solche Datei anlegen. Diese Datei wird aber offenbar nicht mehr benutzt, sie ist bedeutungslos und ihre Existenz verwirrend. Alle wesentlichen Einstellungen müssen in die Datei /etc/asound.conf
. Wo eine /etc/alsa.conf
existiert, kann sie getrost gelöscht werden.
Um lediglich das standard device für ALSA zu ändern (dies hat den Vorteil, dass ihr auf die Standardeinstellungen von ALSA zurückgreifen könnt, wie etwas software Mixing für Ausgabe und Eingabe) wäre folgende Vorgehensweise zu empfehlen:
touch ~/.asoundrc
nun fügt folgendes zu ~/.asoundrc
hinzu:
defaults.ctl.card <number of your sound device> defaults.pcm.card <number of your sound device> defaults.timer.card <number of your sound device>
oder, falls das Device über den Devicenamen adressiert werden soll:
defaults.ctl.!card "<name of your sound device>" defaults.pcm.!card "<name of your sound device>" defaults.timer.!card "<name of your sound device>"
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
vonfalse
nachtrue
undIEC958 Playback AC97-SPSA
nach0
. - Starte ALSA neu.
- Ändere
Alternative Möglichkeit, um SPDIF automatisch beim Login zu starten (getestet mit einer SoundBlaster Audigy):
- Ein Script erstellen z.B. /etc/spdif.sh mit folgendem Inhalt:
amixer set 'IEC958 Optical' 100 unmute amixer set 'Audigy Analog/Digital Output Jack' on
- Ein /etc/systemd/system/spdif.service erstellen mit folgendem Inhalt:
[Unit] Description=SPDIF beim Login starten [Service] Type=oneshot ExecStart=/etc/spdif.sh [Install] WantedBy=multi-user.target
Den Service starten mit
systemctl start spdif.service
Den Service beim nächsten booten automatisch starten:
systemctl enable spdif.service
Ü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
- Starte 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 separat 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.
Dieser Artikel wurde als veraltet markiert, und sollte kontrolliert, und gegebenfalls korrigiert bzw. aktualisiert werden.
Einen zusätzlichen Regler hinzufügen
Zusätzliche Regler können benutzt werden, um z.B. Programme einzeln in der Lautstärke regeln zu können, ähnlich wie bei PulseAudio. Benötigt werden dazu die Alsa-Plugins (siehe oben). Die Regler können wahlweise in /etc/asound.conf (global) oder in ~/.asoundrc (Benutzerbezogen) angelegt werden. Im folgenden wird ein Regler für das Programm mplayer angelegt. Dieser Regler muss anschließend im Programm, welches diesen verwenden soll eingestellt werden. Hinweise dazu sind in den Wikis/Dokus der betreffenden Programme zu finden.
pcm.mplayer { type softvol slave.pcm "default" control.name "MPlayer" control.card 0 min_dB -35.0 max_dB 10.0 resolution 90 }
Damit wird ein neues PCM-Gerät Namens "mplayer" angelegt, welches durch den Regler "MPlayer" im Pegel gesteuert wird. Das Signal wird anschließend über das Gerät "default" ausgegeben. Der Regler wird im vorgenannten Beispiel an der ersten Soundkarte "0" angelegt.
Mit den Werten unter min_dB und max_dB kann man die Grenzen der Drosselung bzw. der Verstärkung des Signals definieren. Das persönliche Optimum findet man durch probieren raus. Mit dem Schalter "resolution" stellt man die Schrittweite des Reglers ein. Lässt man diesen Schalter weg, so liegt die Auflösung bei 256.
Aus eigener Erfahrung möchte ich noch einen Hinweis zum Löschen eines solchen Reglers geben, da das bei mir einiges Suchen auslöste. Alsa speichert die aktuellen Einstellungen in der Datei "/var/lib/alsa/asound.state", darunter natürlich auch die Regler. Will man einen angelegten Regler wieder entfernen, so muss man diesen zunächst aus der Konfigurationsdatei (/etc/asound.conf oder ~/.asoundrc) entfernen. Damit ist dieser Regler dann tatsächlich auch nicht mehr vorhanden und kann nicht mehr verwendet werden, allerdings taucht dieser noch im Mixer-Programm auf. Um diesen loszuwerden, so ist es nötig, den Regler aus der asound.state unter Zuhilfenahme eines Bearbeitungsprogrammes (z.B. vim, nano) zu entfernen. Anschließend muss die Datei vor Schreibzugriff geschützt werden, sodass der Daemon die im System vorhanden Einstellungen beim Herunterfahren des Computers nicht darin speichern kann. Nach einem Neustart des Computers kann die Datei wieder in einen beschreibbaren Zustand versetzt werden.