2008年6月22日 星期日

將USB-DAC設成預設的音效介面

在Linux下,/dev目錄下的audio和dsp即為音效介面,而自從購入USB-DAC也經過一段時間了,但是在Ubuntu下,確無法正常的將USB-DAC辨視成預設的音效介面,USB-DAC總是被辨視成audio1和dsp1,也就是第二個音效介面,可是我系統上,明明就只有一個USB-DAC阿 Orz,所以在每次開機後,都要用一些奇怪的招式讓Ubuntu把USB-DAC辨視成audio和dsp。

記得剛裝上USB-DAC時,我就Google過這個問題了,不過那時候不知道是關鍵字不對還是眼殘了,總之就是沒有找到答案。今天心血來潮又上網Google了一下,沒想到我常常看的Ubuntu正體中文站就有解答了,而且還是兩年前的文章 XD

將USB-DAC設為預設音效介面(或是你的系統有兩張音效卡,而你想將某張非預設的音效卡改為預設值)的作法如下:
1. 先檢查系統目前有哪些音效介面。
cat /proc/asound/modules/
在我的系統下,出現在以下的訊息,這即是奇怪的地方了,抓到的明明就只有一個音效介面,為啥偏偏要設成第二個(0是預設,1是第二個)。
1 snd_usb_audio
在有兩張音效卡的系統下,應該會出現以下的訊息。
0 snd_aaa_bbb
1 snd_ccc_ddd

0和1即為此音效介面的索引(index),snd_後的即為此音效介面的名稱。
2. 編輯/etc/modprobe.d/alsa-base
sudo vi /etc/modprobe.d/alsa-base
找到這段。
# Prevent abnormal drivers from grabbing index 0
options bt87x index=-2
options cx88_alsa index=-2
options saa7134-alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
options snd-usb-audio index=-2
options snd-usb-usx2y index=-2
options snd-usb-caiaq index=-2

將你要設成預設的音效介面的index改成0。以我的系統為例,我是要將usb-audio改成預設音效介面,所以將usb-audio的index改成0,修改後如下。
# Prevent abnormal drivers from grabbing index 0
options bt87x index=-2
options cx88_alsa index=-2
options saa7134-alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
# Set USP-DAC to default audio device. <-這是的註解..可忽略..
options snd-usb-audio index=0
options snd-usb-usx2y index=-2
options snd-usb-caiaq index=-2

3. 大功告成,重新開機好幾次,確定開機後,在/dev目錄下都是audio和dsp,這樣以後就不用搞一些奇怪的手段了。
以上的修改方式僅在Ubuntu 8.04驗證過,其於版本或是其他Linux發佈版不確定能不能照做.....
[Ubuntu] 如何設定音效卡優先順序
完整音效問題解決指南