在FreeBSD中要使用音效卡,首先要將音效卡的驅動程式載入進系統,但是機器究竟需要使用什麼樣的音效卡驅動程式卻是一個問題,按照相關手冊中的介紹,我們可以輸入這樣的命令:
- # kldload snd_driver &
然後您會發現,音效卡確實能夠工作了,可一旦重啟機器後,仍然得要輸入這個命令才能讓音效卡繼續工作,怎麼才能夠不用這麼麻煩呢?如果您已經能夠聽到音效卡發出的聲音了,那麼在終端下輸入下面命令:
- # cat /dev/sndstat
然後觀察輸出,也許您的輸出格式和我的比較相似:
FreeBSD Audio Driver (newpcm: 32bit 2007061600/i386)
Installed devices:
pcm0: <Acer Labs M5451> at io 0x1800 irq 9 kld snd_t4dwave
[GIANT]
(1p:1v/1r:1vchannels duplex default)
上面資訊中的kld snd_t4dwave向我們揭示了驅動的名稱,在我這裡是snd_t4dwave,好了,接下來我們要更改設定檔 /boot/loader.conf
, 讓系統啟動能夠自動載入這個驅動。首先我們在預設的啟動設定檔(/boot/defaults/loader.conf
)附加元件中找到關於這個驅動的配置,因為這個設定檔內容比較多,我們可以用gawk來抽取我們需要的資訊:
- # gawk '$0 ~ /snd_t4dwave/ {print $1}' /boot/defaults/loader.conf
snd_t4dwave_load="NO"
輸出資訊顧名思義,就是載入snd_t4dwave這個驅動程式的開關,將上面的這句改為
snd_t4dwave_load="YES"
後,添加到/boot/loader.conf中,那麼再次重啟機器,音效卡將會被自動載入進系統。
上面說了這麼多,其實步驟還是挺繁瑣的,這裡有一個script,能夠自動協助您完成上面所有的工序:
- #! /bin/sh
- ################################################################################
- # Program: sndConfig
- #
- # FreeBSD預設不載入音效卡驅動,這個程式能夠自動檢測您的音效卡類型,並修改
- # 這一預設行為
- #
- # Author: hailongchang@163.com
- #
- # Date: 2008/05/10
- ################################################################################
-
- snd_pos=/dev/sndstat
-
- if
[ ! -e $snd_pos ]; then
- `kldload snd_driver &`
- fi
- snd_driver=`cat /dev/sndstat | gawk
'$0 ~ /kld/ {print}'
|
- gawk
'match($0,/snd_[a-zA-Z0-9]+/,dname) {print dname[0]}'
`
-
- snd_tag=`gawk
'$0 ~ /'
"$snd_driver"
'/ {print $1}'
/boot/defaults/loader.conf`
-
- snd_change=`echo $snd_tag | sed
's/NO/YES/'
`
-
- echo
"I will write this sentence: "
`echo $snd_change`
" to your /boot/loader.conf."
-
- `echo $snd_change >> /boot/loader.conf`