サウンドデバイスの認識順序を指定

Ubnutuだと、複数のサウンドバイスがある場合、認識される順序が決まっていないようだ。おかげで、音が出るときと出ないときがあってイライラしていたんだけど、ようやく解決策が見つかった。

まずは認識されているモジュール名を確認。自分の場合は以下のような出力。

# cat /proc/asound/modules
 0 snd_cmipci     # サウンドカード
 1 snd_hda_intel  # オンボードのサウンドデバイス

このインデックスが、起動するたびに変わったり変わらなかったりしてた。なので、これを明示的に指定してやる。この設定は/etc/modprobe.d/alsa-baseというファイルをいじるようだ。

# vi /etc/modprobe.d/alsa-base

このファイルの末尾に以下の記述を追加。

options snd_cmipci    index=0
options snd_hda_intel index=1

一般化すると、

options ${デバイス1} index=${番号1}
options ${デバイス2} index=${番号2}

これで、snd_cmipciが最初に、snd_hda_intelが次に認識されるようになりました。めでたしめでたし。