asound.conf配置 .

配置文件

    /etc/asound.conf(簡易配置) :

    {{{

          pcm.!default{

              type hw

              card 1

              devive 7

            }  

          ctl.!default{

              type hw

              card 1

              device 7

             }  

    }}}

其中card代表聲卡號, device代表設備號, asound.conf的配置極其強大和複雜,詳情可查閱http://www.alsa-project.org/main/index.php/Main_Page

 ---------------------------------------------------------------------------

card, device的確定方法
    card, device必須對應hdmi的聲卡號和設備號,可以使用aplay -l查看對應的hdmi設備,可能會有出現多個hdmi設備,確定當前可以使用的hdmi設備的方法如下:

    #. cat /proc/asound/cards 查看nvidia設備對應的ID號(假設=1)

    #. alsamixer -c 1 打開聲音設置,其中<S/PDIF>即爲HDMI輸出,“MM”代表靜音,alsa在每次重啓聲音設備時都會默認爲靜音,所以必須首先打開音量再進行後續的操作。

    #. alsactl store 保存上述配置

    #. aplay -D hw:1,7  /usr/share/sounds/alsa/test.wav  "hw後的1代表聲卡號,7代表設備號,需要根據aplay -l的輸出來確定這兩個數字"找到對應的hdmi輸出口。

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------

 

參考網站:


ALSA的配置文件對於ALSA非常重要。常見的有三個:alsa.conf, asoundrc, asound.conf。


1. 核心配置文件
ALSA核心配置文件位於/usr/share/alsa/目錄下,主要配置文件爲/usr/share/alsa/alsa.conf 。其它文件是否需要,位置在哪,都是由alsa.conf來決定的。通常會有/usr/share/alsa/card 和/usr/share/alsa/pcm兩個子目錄,用於設置Card相關的參數,別名以及一些PCM默認設置。
此外,在alsa.conf中,通常還會引用 /etc/asound.conf 和 ~/.asoundrc這兩個配置文件,這兩個文件通常是放置個人需要特殊設置的相關參數。按照Alsa官方文檔的說法,1.0.9版本以後,這兩個文件就不再是必要的,甚至是不應該需要的。至少是不推薦使用。不過,在嵌入式系統中使用,爲了簡單和方便測試,恰恰是需要修改這兩個文件。

2. alsa.conf
alsa.conf中主要的一些內容包括:
1) 用hook讀取了/etc/asound.conf 和 ~/.asoundrc這兩個配置文件
@hooks [
{
func load
files [
"/etc/asound.conf"
"~/.asoundrc"
]
errors false
}
]
2) 設置了default pcm的一些默認參數,如,默認使用Card 0 ,Device 0作爲音頻設備等等
defaults.ctl.card 0
defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.nonblock 1
defaults.pcm.ipc_key 5678293
。。。
3) 設置了Alsa 內置的一些plugin的接口參數,例如file:
pcm.file {
@args [ FILE FORMAT ]
@args.FILE {
type string
}
@args.FORMAT {
type string
default raw
}
type file
slave.pcm null
file $FILE
format $FORMAT
}
File plugin的作用是將PCM數據流存儲到文件中。

3. asoundrc和asound.conf
按照ALSA官方說法,asoundrc是針對個人用戶的配置文件,asound.conf是全局的配置文件。其中,asoundrc位於主目錄下,是個隱藏文件:“.asoundrc”。asound.conf位於/etc目錄下。對於最新版本的ALSA庫來說,這兩個文件已不再需要。但是對於一些特定應用來說,他們的使用恰到好處。典型的asoundrc文件如下:
 
# Overwrite existing devices
pcm.!default
{
type plug
slave.pcm "softvol"
channels 2
}

# Add new sofvol PCM device
pcm.softvol
{
type softvol
slave
{
pcm "hw:0,0"
}

control
{
name "Softmaster"
card 0
}
}

4. ALSA配置狀態保存,恢復和自動加載
實際使用過程中,常常需要動態修改聲卡的配置信息,如更新asoundrc中的Mixer信息。如果不對當前聲卡的配置狀態進行保存,下次啓動系統時,將還原到原始狀態。爲此,我們有必要對聲卡的配置狀態進行保存。聲卡配置狀態保存工具爲:alsactl,具體保存命令爲:
 
alsactl store -f /var/lib/alsa/asound.state 
這樣就在/var/lib/alsa/目錄下生成了asound.state文件,該文件保存了聲卡的狀態配置信息,包括常用的mixer配置信息。相應的聲卡狀態恢復命令爲:
alsactl restore -f /var/lib/alsa/asound.state
注:在每次修改完聲卡配置文件之後,必須要保證配置文件被系統加載,否則在保存聲卡配置狀態信息時,alsactl讀取的是上次聲卡的狀態。常用的加載配置文件的方法是播放一個音頻文件,例如:
speaker-test -twav
這樣就可以將剛剛修改的配置文件加載到系統中,然後執行相應的保存命令,即可將相應的聲卡狀態信息保存到文件中。

得到了聲卡的配置狀態信息仍不能保證系統啓動時自動加載並應用狀態信息。需要修改啓動配置文件,加入ALSA Daemon。啓動配置文件爲:/etc/rc.conf,在包含DAEMONS的一行內加入alsa項目。這樣,系統啓動時會自動執行/etc/rc.d/alsa腳本,該腳本會自動執行前面所說的聲卡狀態恢復命令,恢復Mixer配置信息。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章