Oletusäänikortin asettaminen
Tyypillisessä Linux-järjestelmässä on hyvin vaikeaa valita yksi äänikortti ylitse muiden. Äänijärjestelmiä on useita ja sovellukset eivät toimi yhtenäisesti. Voi myös olla, että äänikorttien järjestys vaihtuu joka käynnistyksen yhteydessä.
ALSA
ALSAn toimintaan voi vaikuttaa kahdella keinolla: asettamalla äänikorttien järjestysnumerot tai muokkaamalla käyttäjän asetustiedostoa. Ensimmäisen etu on taattu toimivuus, mutta jälkimmäisen käyttäjä voi vaihtaa melko helposti.
asoundconf
ALSAn asetustiedostot ovat hyvin monimutkaisia. Onneksi useissa Linux-jakeluissa on ohjelma nimeltä asoundconf, joka tekee muutokset käyttäjän puolesta:
asoundconf <äänikortin ALSA-nimi>
Komennon suorittaminen luo tiedostot ~/.asoundrc (jos sitä ei jo ole) ja ~/.asoundrc.asoundconf.
ALSAn antamat nimet äänikorteille saa tietoonsa komennolla:
cat /proc/asound/cards
Nimi on hakasulkujen sisällä oleva tunnus.
Indeksien asettaminen käsin
Aina silloin tällöin vastaan tulee sovellus, joka ei noudata ALSAn asetustiedoston oletusäänikorttiasetusta. Tällöin tarvitaan bugiraportin lisäksi järeämpiä keinoja.
Asetetaan ALSA-ajurien järjestys käsin. Listan mahdollisista ajureista saa komennolla:
lsmod | grep snd_
Ajurit voi pakottaa järjestykseen tiedostossa /etc/modprobe.d/alsa-base, esimerkiksi lisäämällä loppuun seuraavat rivit:
options snd_ice1724 index=0 options snd_hda_intel index=1
Nyt ICE1724-piiriin pohjautuva äänikortti saa indeksin 0 (oletus) ja emolevylle integroitu Intelin HDA-piiri indeksin 1, kun tietokone käynnistetään.
Testaaminen
Asetusten toimivuutta voi testata soittamalla äänitiedoston aplay-ohjelmalla:
aplay /usr/share/sounds/login.wav
Yleensä asoundconf ja aplay ovat paketissa nimeltä alsa-utils. Huomaa kuitenkin, että aplay ei vastaa "huonosti käyttäytyvää ohjelmaa".
PulseAudio
ALSAn kaltaisesti PulseAudio voidaan säätää kahdella tapaa, sillä huonosti ohjelmoidut sovellukset eivät osaa käyttää sen oletusäänikorttiasetusta hyväkseen.
Oletuskohteen asettaminen
Käynnistetään PulseAudio komentorivitilaan ja pyydetään sitä listaamaan kaikki äänikohteet (sink):
$ pulseaudio -C Welcome to PulseAudio! Use "help" for usage information. >>> list-sinks
Kopioidaan ensisijaisen äänikortin PulseAudio-nimi talteen. Se voi olla esimerkiksi:
alsa_output.pci_1412_1724_sound_card_0_alsa_playback_0
Sitten muokataan tiedostoa /etc/pulse/default.pa ja lisätään seuraavankaltainen rivi loppuun (vaihda toki oman äänikorttisi nimi tilalle):
set-default-sink alsa_output.pci_1412_1724_sound_card_0_alsa_playback_0
PulseAudion uudelleenkäynnistyksen jälkeen äänien pitäisi kuulua oikeasta äänikortista. Mikrofonilähdölle voi tehdä saman tempun.
Moduulien lataaminen käsin
Ylläoleva ei aina auta, sillä jotkut huonosti käyttäytyvät ohjelmat (kirjoitushetkellä muun muassa Adobe Flash / libflashsupport ja Gnomen ääniasetukset, gnome-sound-properties) käyttävät kohdetta numero 0 eivätkä oletusta.
Muokataan tiedostoa /etc/pulse/default.pa. Todennäköisesti siellä on rivi, joka etsii äänikortit automaattisesti:
load-module module-hal-detect
Kommentoidaan se pois käytöstä...
#load-module module-hal-detect
...ja ladataan äänikohteet ja -lähteet itse oikeassa järjestyksessä, esimerkiksi:
load-module module-alsa-sink device=hw:Revolution51 sink_name=Revolution51_sink load-module module-alsa-sink device=hw:NVidia sink_name=NVidia_sink load-module module-alsa-source device=hw:Revolution51 source_name=Revolution51_source
(Revolution51 on äänikortin ALSA-nimi tiedostosta /proc/asound/cards.) Nimet sink_name ja source_name voi valita itse. Mahdolliset alilaitteet merkitään kuten ALSAssa yleensä:
hw:NVidia,1
Sitten vielä asetetaan oletukset sitä asetusta käyttäville sovelluksille:
set-default-sink Revolution51_sink set-default-source Revolution51_source
PulseAudion testaaminen
Jos GStreamer on asennettu, voi PulseAudiota kokeilla komennolla:
gst-launch-0.10 audiotestsrc ! pulsesink