FreeBSD handbook中文版 14 聲卡
2024-07-26 00:29:05
供稿:網友
目錄
14 聲卡
14.1 概要
14.2 尋找正確的設備
14.3 重新編譯內核
14.4 創建和測試設備裝載的節點
14.5 常見的問題
14.6 MP3 音樂
=============================================================
第14 章聲卡
=============================================================
(翻譯中出現的任何問題或錯誤,請廣大讀者及時反饋給我:freebsdhandbook@163.com)
14.1 概要
FreeBSD 支持很多種聲卡,允許你輸出各種格式的音樂。包括MP3,WAV,Ogg Vorbis 等
等格式的音樂。FreeBSD Ports 中也包含了很多應用程序可以允許你編輯音樂文件。
讀完這章,你將了解到這些:
. 如何定位你的聲卡。
. 如何配置你的系統以便你的聲卡能達到最佳狀態。
. 通過使用專門的程序測試你的聲卡的工作狀態的方法。
. 如何解決聲卡安裝的一些問題。
讀這章之前,你應當了解這些:
. 如何配置和安裝一個新內核(第9 章)
14.2 尋找正確的設備
在開始以前,應該要知道你擁有的聲卡的型號,它所用的芯片,還有它是PCI 還是ISA
卡。FreeBSD 廣泛地支持多種PCI 及ISA 卡。如果在下面列表中沒有發現與你一樣的卡,請
參考pcm 聯機手冊。這不是完整的列表;不過已經列出了大部分通用的聲卡。
. Crystal 4237, 4236, 4232, 4231
. Yamaha OPL-SAx
. OPTi931
. Ensoniq AudioPCI 1370/1371
. ESS Solo-1/1E
. NeoMagic 256AV/ZX
. Sound Blaster PRo, 16, 32, AWE64, AWE128, Live
第1 頁FreeBSD 使用手冊
. Creative ViBRA16
. Advanced Asound 100, 110, and Logic ALS120
. ES 1868, 1869, 1879, 1888
. Gravis UltraSound
. Aureal Vortex 1 or 2
內核中使用的驅動程序視所擁有的聲卡而定。下面的段落提供了更多的信息以及那些需
要加入內核設置的資料。
14.2.1 Creative, Advance 和ESS Sound Cards
如果有上面這些卡之一,請在內核中加入
device pcm
如果有PnP ISA 卡,也請在內核中加入
device sbc
對于非PnP ISA 卡,請在內核中加入
device pcm 和device sbc0 at isa? port0x220 irq 5 drq 1 flags 0x15
那些是默認的設置??赡苄枰淖僆RQ 或其它。其它信息請參考sbc 聯機手冊。
注意: 未經修補的FreeBSD 4.0 不支持Sound Blaster Live;這不包含在這份文件中。
建議在嘗試使用這張卡以前更新到最新版的-STABLE。
14.2.2 Gravis UltraSound Cards
對于PnP ISA 卡,請在內核中加入
device pcm
和
device gusc
如果有非PnP ISA 卡,請在內核中加入
device pcm
和
device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13
可能需要更改IRQ 或其它。其它信息請參考gusc 聯機手冊。
第2 頁FreeBSD 使用手冊
14.2.3 Crystal 聲卡
對于Crystal 卡,請在內核中加入
device pcm
和
device csa
14.2.4 一般支持
對于PnP ISA 或PCI 卡,請在內核設置中加入
device pcm
如果有不含bridge 驅動程序的非PnP ISA 聲卡,請在內核中加入
device pcm0 at isa? irq 10 drq 1 flags 0x0
可能需要改變IRQ 或其它,以符合硬件設置。
14.3 重新編譯內核
在加入所需的驅動程序至內核設置后,請重新編譯內核。其它信息請參考手冊的第9.3
節。
14.4 建立和測試設備裝載的節點
重新啟動后,登陸并執行cat /dev/sndstat。會出現類似下面的輸出信息:
FreeBSD Audio Driver (newpcm) Sep 21 2000 18:29:53
Installed devices:
pcm0: <Aureal Vortex 8830> at memory 0xfeb40000 irq 5 (4p/1r +channels duplex)
如果看到錯誤信息,表示前面某個步驟錯了。如果發生了,請重新檢查一次內核設置以
確定選擇了正確的設備。
如果沒有錯誤信息而且顯示pcm0,請執行su 變成root 并如下執行:
# cd /dev
# sh MAKEDEV snd0
如果沒有錯誤信息而且顯示pcm1,使用su 變成root 并如下執行:
# cd /dev
# sh MAKEDEV snd1
請注意上面任一個命令將不會產生/dev/snd 設備!而是產生一組設備節點包括:
第3 頁FreeBSD 使用手冊
說明設備
與SPARC 兼容的聲音設備/dev/audio
數字聲音設備/dev/dsp
象/dev/dsp,但每次取樣為16 bits /dev/dspW
/dev/midi midi 訪問設備
控制端口混音設備/dev/mixer
/dev/music Level 2 音序接口
/dev/sequencer 音序設備
可編程設備接口/dev/pss
如果順利,現在應該有個可正常工作的聲卡了。如果沒有,請參考下一節。
14.5 常見的問題
14.5.1. 我遇到一個unsupported subdevice XX error!
一個或多個設備節點沒有被正確的產生。請重復上面的步驟。
14.5.2. 我遇到一個sb_dspwr(XX) timed out 的錯誤!
I/O port 沒有設置正確。
14.5.3. 我遇到a bad irq XX 的錯誤!
IRQ 設置有誤。請確定設置的IRQ 和聲卡IRQ 一致。
14.5.4.我遇到“xxx: gus pcm not attached, out of memory” 的錯誤。這是什么造成
的?
如果發生了,表示沒有足夠的內存來使用這個設備。
14.6 MP3 音樂
14.6.1 MP3 播放器
最流行的XFree86 MP3 播放器是XMMS。Winamp 的skins 也能被用在XMMS 上。XMMS 也
支持插件。
XMMS 能從audio/xmms port 或package 中安裝。XMMS 接口是很直觀的,它有一個播放
目錄,一個圖形的均衡器等。這些都很象winamp。也可以在audio/mpg123 port 中選擇一
個命令行的MP3 播放器??梢赃@樣做:
第4 頁FreeBSD 使用手冊
# mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Playing MPEG stream from BT - Foobar-GreastHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
在你的系統中,/dev/dsp1.0 應該被dsp 設備接口所替換。
14.6.2 轉換CD 音軌
在把CD 或CD 音軌轉換成MP3 時,在CD 上的聲音數據必須被轉到硬盤上。這可以把CDDA
數據轉成WAV 文件來完成。cdda2wav 工具,是sysutils/cdrtools 套件的一部分。下面的
命令可以把整個CD 轉成一個個(每個音軌)WAV 文件:
# cdda2wav -D 0,1,0 -B
-D 0,1,0指出了SCSI 設備是0,1,0,它是與cdrecord -scanbus 輸出相符合的。轉換
每個音軌,可以加上-t 選項:
# cdda2wav -D 0,1,0 -t 7
這個例子可以從CD 上抓取7 個音軌??梢灾付ㄒ粋€范圍,如1 到7:
# cdda2wav -D 0,1,0 -t 1+7
cdda2wav 只支持SCSI CDROM 驅動器。對于IDE 驅動器可以選擇其它的工具。
14.6.3 MP3 編碼
現在,可以選擇lame 這個mp3 編碼器??梢栽赼udio/lame 中找到。
第5 頁FreeBSD 使用手冊
使用轉換的WAV 文件,可以使用下面的命令把audio01.wav 轉成audio01.mp3:
# lame -h -b 128 /
--tt " Foo Song Title" /
--ta " FooBar Artist" /
--tl " FooBar Album" /
--ty " 2001" /
--tc " Ripped and encoded by Foo" /
--tg " Genre" /
audio01.wav audio01.mp3
128K 是標準的MP3 比特率。多數使用160, 或192。更高的比特率,可能需要更多的磁
盤空間。-h 選項可以打開“higher quality but a little slower”模式。
14.6.4 MP3 解碼
為了把mp3 轉成CD,它們必須被轉成不被壓縮的WAV 格式。XMMS 和mpg123 都支持這些。
在XMMS 中寫入磁盤:
1. 運行XMMS.
2. 在窗口上單擊右鍵打開XMMS 菜單。
3. 在Options 中選擇Preference。
4. 改變Output Plugin 為Disk Writer Plugin。
5. 鍵入Configure.
6. 鍵入一個要寫的非壓縮文件的目錄。
7. 打開一個MP3 文件,把volume 設成100%,EQ 設為關閉。
8. 鍵入Play -- XMMS 將顯示正在播放的MP3 文件,但聽不見聲音。說明它正在
轉換MP3.
第6 頁FreeBSD 使用手冊
9. 如果要聽MP3,記得將Output Plugin 設回默認值。
在mpg123 中寫成stdout:
1. Run mpg123 -s audio01.mp3 > audio01.pcm
XMMS 用WAV 格式寫一個文件,而mpg123 把MP3 寫成PCM 音樂格式。這些格式能用
cdrecord 或burncd 程序來寫成CDR 光盤??梢钥纯吹?2.6 節的在FreeBSD 中使用CD
burner。
第7 頁