共計 3738 個字符,預計需要花費 10 分鐘才能閱讀完成。
這篇文章主要介紹了 Linux 中如何配置聲卡,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
聲卡配置過程
1. 內核聲卡驅動程序的配置
現在正在使用的聲卡主要有 PCI 和 ISA 兩種。在 linux 系統下,對這兩種類型聲卡的配置過程實際上是生成配置文件 /etc/modules.conf,建立正確的設備別名和聲卡設備驅動程序的對應關系。在正確的設置驅動模塊之后,使用混音器程序設置聲卡的輸出音量。
若您的聲卡是 ISA PnP 類型的,那么如果這塊聲卡在 dos(windows)系統下也工作良好,那么您可以先記住聲卡的工作參數,包括 IRQ、DMA 和 I /O。一般而言,在 linux 系統下應該使用和 DOS 下一樣的參數。
如果您不知道它的工作參數,您可以通過 /proc/isapnp 獲得聲卡的配置空間,它包括 dma、ioport 和 irq 等信息。然后您可以通過檢查 /proc/interrupts,/proc/ioports 和 /proc/dma 文件獲知系統中空閑的 irq、ioports 和 dma 等信息,由此您可以選擇合適的聲卡配置參數。
在 2.4.x 內核中,實現了 ISA PnP 支持,同時一部分聲卡驅動程序現在也支持無需使用 isapnp 工具完成自動檢測和配置了。關于聲卡設備的詳細信息您也可以查看內核文檔 /usr/src/linux/Documentation/sound/ 中的文件。
對于 PCI 聲卡而言,它們的驅動程序包含了自動檢測過程,所以您只需要插入正確的驅動模塊,聲卡一般就能正常工作了。
在聲卡模塊被 *** 次引用時,內核會要求加載相應的驅動模塊。與聲卡模塊對應的設備別名是 sound-slot-0(0 表示系統中的一個聲卡,以此類推)。例如,在 /etc/modules.conf 中加入:
alias sound-slot-0 esssolo1
就配置了 ESS Solo- 1 聲卡。這條語句表示在需要聲卡時,自動加載模塊 esssolo1。
有時加載了 sound-slot- 0 對應的設備模塊之后,并不能使聲卡的所有功能生效。這時設備就會請求訪問 sound-service-0- n 別名。n 代表了不同的設備:
編號 對應的設備
0 混音器(Mixer)
2 MIDI
3,4 DSP
這時就要求您設置正確的聲卡服務模塊別名,這樣聲卡才能夠正常工作。聲卡對應的設備文件:
設備文件名 設備描述
/dev/audio 正常連接到 /dev/audio0
/dev/audio0 sun 工作站兼容的聲音設備(僅部分實現,不支持 sun ioctl 接口,僅支持 u -law 編碼)
/dev/audio1 第二個聲音設備(安裝多個聲卡時使用)
/dev/dsp 正常連接到 /dev/dsp0
/dev/dsp0 *** 個數字采樣設備
/dev/dsp1 第二個數字采樣設備
/dev/mixer 正常連接到 /dev/mixer0
/dev/mixer0 *** 個聲音混音器
/dev/mixer1 第二個聲音混音器
/dev/music 高級序列化接口
/dev/sequencer 底層 MIDI,FM 和 GUS 存取
/dev/sequencer2 正常連接到 /dev/music
/dev/midi00 *** 個原 MIDI 端口
/dev/midi01 第二個原 MIDI 端口
/dev/midi02 第三個原 MIDI 端口
/dev/midi03 第四個原 MIDI 端口
/dev/sndstat 顯示聲音驅動程序的狀態
pc 揚聲器提供下列設備:
/dev/pcaudio 等價于 /dev/audio
/dev/pcsp 等價于 /dev/dsp
/dev/pcmixer 等價于 /dev/mixer
您可以直接將聲音文件送入對應的設備,比如,將.au 聲音文件通過將其送入 /dev/audio 中播放,原始采樣也可被送入 /dev/dsp。
cat sample.su /dev/audio
但是這樣做一般效果較差,播放時應采用 play 命令。對于 wavplay 和 vplay(snd-util 包)會以 *** 的效果播放 wav 文件,但是它們不能識別微軟 adpcm 壓縮的 wav 文件。若手動設置爭取正確的參數之后,splay 用于播放大多數聲音文件。
讀 /dev/audio 和 /dev/dsp 返回的采樣數據可以重定向到一個文件。vrec 可以使這個過程更容易。可能需要一個混音器程序選擇適當的輸入設備。
2. ALSA 聲卡驅動程序的配置
對于聲卡驅動程序,除了內核自帶的驅動程序之外,您還可以使用 Advanced linux Sound Architecture(ALSA,http://www.alsa-project.org/)提供的驅動程序。它支持一系列主流聲卡,同時它和內核的聲音結構互相兼容,在某種程度上,可以說是內核的聲卡驅動模塊的補充。
ALSA 的聲卡驅動程序的一般命名規則是 snd-card-。soundcard 代表不同類型的聲卡。例如,對于所有的 16 位 Soundblaster 聲卡,它們對應的驅動程序模塊為 snd-card-sb16。
若與需要 linux 內核聲音驅動的向后兼容性,您還需要兩個模塊 snd-pcm-oss 和 snd-mixer-oss。對于 amixer 設置的多個混音器,它們都是針對不同的設備的。比如 CD 通道的設置是針對 CD 播放器的。而很多應用程序,如象 mpg123,xmms,realplayer,都要依賴 PCM 通道的設置。MIC 代表麥克風。不同的 Gain 部分對于不同的使用能提供特別的增益。
缺省情況下 ALSA 靜音所有的輸出。為了獲得聲音,必須解除主音量和 PCM 音量的靜音。
amixer -c 0 sset Master ,0 100%,100% unmute
amixer -c 0 sset PCM ,0 100% unmute
選項包括 mute,unmute,capture,nocapture,rec,norec,數字或 left:right。amixer 不帶參數運行時,返回聲卡上所有通道的設置情況。
為了在每次插入聲卡驅動模塊時,都打開靜音,您可以在 /etc/modules.conf 加入下列語句:
post-install snd-card-sb16 amixer -c 0 sset Master ,0 100%,100% unmute amixer -c 0 sset PCM ,0 100% unmute
在成功插入了 alsa 聲卡模塊之后,系統會出現 /proc/asound 目錄,這個目錄描述了聲卡的工作情況,以及創建的設備文件。
在您加載 snd-pcm-oss 設備模塊之后,你也能使用與 oss 兼容的方式存取聲卡,這時如下的映射會被完成:
ALSA 設備 OSS 設備 次設備號
/dev/snd/pcmC0D0 /dev/audio0(/dev/audio)4
/dev/snd/pcmC0D0 /dev/dsp0(/dev/dsp)3
/dev/snd/pcmC0D1 /dev/adsp(/dev/adsp)12
/dev/snd/pcmC1D0 /dev/audio1 20
/dev/snd/pcmC1D0 /dev/dsp1 19
/dev/snd/pcmC1D1 /dev/adsp1 28
/dev/snd/pcmC2D0 /dev/audio2 36
/dev/snd/pcmC2D0 /dev/dsp2 35
/dev/snd/pcmC2D1 /dev/adsp2 44
對于 /dev/mixer 設備,要加載 snd-mixer-oss,可以保證和老的 oss 混音器的兼容性。如果您插入了上述設備之后,聲音系統仍無法正常工作,您可以運行 snddevices 命令,建立正確的設備文件。
由于為使 ALSA 正常工作,需要設置大量的設備別名,下面就給出一個 /etc/modules.conf 的例子,它能夠完成 ESS Solo1 聲卡的自動配置工作。其他的 ALSA 設備的設置也基本與此聲卡相同。
# 設置 ALSA 設備的主設備號,它固定為 116
alias char-major-116 snd
# 設置 OSS 設備的主設備號,它固定為 14,這使得 ALSA 復用 OSS 設備
alias char-major-14 soundcore
# ALSA 設備別名
alias sound-card-0 snd-card-es1938
# OSS 設備別名
alias sound-slot-0 sound-card-0
# 安裝不同的聲卡服務
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias snd-minor-oss-12 snd-pcm-oss
# 運行 amixer 命令,打開聲音輸出
post-install snd-card-es1938 amixer -c 0 sset Master ,0 100%,100% unmute amixer -c 0 sset PCM ,0 100% unmute
感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“Linux 中如何配置聲卡”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!