/proc/asound详细介绍
?
本文轉(zhuǎn)載于:Proc asound 文檔
ALSA使用/proc/asound目錄下的文件保存設(shè)備信息并且實(shí)現(xiàn)一些控制目的。
這些文件是什么?
/proc信息與硬件(驅(qū)動)無關(guān),例如USB描述符。他的內(nèi)容由驅(qū)動的作者負(fù)責(zé),所以在實(shí)際中很難進(jìn)行完整全面的描述。也就是說ALSA具有一些標(biāo)準(zhǔn),大多數(shù)驅(qū)動都支持這些標(biāo)準(zhǔn)。。
由ALSA本身提供的最基本的文件:
/proc/asound/cardX(這里X是聲卡的編號,從0到7)
???? 對于系統(tǒng)中已經(jīng)識別的每個(gè)聲卡都存在對應(yīng)的cardX目錄。關(guān)于這個(gè)目錄內(nèi)容的信息請看下面。
/pro/asound/cards(只讀)
???? 已注冊的聲卡的列表
/proc/asound/dev/
???? 存放特殊的設(shè)備文件,用于針對聲音操作進(jìn)行編程。
???????? 如果系統(tǒng)使用devfs,就會有這個(gè)目錄。
???????? 如果系統(tǒng)沒有使用devfs(從2006-06起,大多數(shù)都沒有使用),就根本不會有這個(gè)文件或者僅僅是指向/dev/snd的符號鏈接。
/proc/asound/devices (只讀)
???? 已注冊的ALSA設(shè)備的列表(主設(shè)備號為116)
/proc/asound/hwdep (只讀)
???? hwdep(硬件相關(guān))控制列表。并不會在所有的系統(tǒng)中出現(xiàn)(仍然存在嗎?)
/proc/asound/meminfo (只讀)
???? 內(nèi)存使用信息。該proc文件僅當(dāng)使用內(nèi)存調(diào)試或所有選項(xiàng)構(gòu)建ALSA驅(qū)動時(shí)才會有,該文件顯示了當(dāng)前在內(nèi)核空間分配的內(nèi)存。
/proc/asound/modules (只讀)
???? 已注冊聲卡驅(qū)動的列表,并不是所有為ALSA所加載的內(nèi)核模塊,而是硬件驅(qū)動的列表。一行對應(yīng)一個(gè)正在使用的聲卡
/proc/asound/oss/
???? 包含關(guān)于OSS模擬的信息的目錄。關(guān)于該目錄內(nèi)容的信息請看下面
/proc/asound/pcm (只讀)
???? 已分配的pcm流的列表。注意:可能并不意味著是激活的流的列表,它是設(shè)備的一個(gè)列表。這對于斷定hw:0,0風(fēng)格的設(shè)備名稱非常有用,設(shè)備名稱往往是命令如aplay所需要的。
/proc/aasound/seq/
??? 包含關(guān)于音序器的信息。關(guān)于該目錄內(nèi)容的信息請看下面
/proc/asound/timers (只讀)
??? 類似于/proc/asound/pcm, 它是一個(gè)ALSA已知的計(jì)時(shí)器的列表,并且(好像)描述了當(dāng)前哪個(gè)是實(shí)際正在實(shí)際使用。
/proc/asound/version (只讀)
??? ALSA子系統(tǒng)模塊(或內(nèi)核)構(gòu)建的版本和日期。
請注意:標(biāo)明“只讀”的設(shè)備僅僅用來從內(nèi)核中提供信息。其他的文件是可讀可寫的,可以用來向ALSA發(fā)送命令。
在/dev/snd(/proc/asound/dev)目錄下的設(shè)備文件
??? 設(shè)備文件是應(yīng)用為了執(zhí)行聲音操作如錄音、播放、改變聲音大小、獲取時(shí)間信息、執(zhí)行MIDI序列化所相關(guān)的文件。通常位于/dev/snd,在有些系統(tǒng)上也可能在/proc/asound/dev
??? 通常這些設(shè)備文件以 aaaCxDy 的形式命名
??? aaa 是服務(wù)的名字
??? x 是卡的編號
??? y 設(shè)備編號
| controlC? control devices (i.e. mixer, etc.) hwC?D? hwdep devices midiC?D? rawmidi devices pcmC?D?p pcm playback devices pcmC?D?c pcm capture devices seq sequencer device timer timer device |
/proc/asound/oss目錄
該目錄下文件的內(nèi)容是動態(tài)改變的,沒有OSS模擬模塊(snd-pcm-oss, snd-mixer-oss)加載時(shí),就不會列出pcm或mixer設(shè)備。
| /proc/asound/oss/devices (RO)the list of devices already registered/proc/asound/oss/sndstat (RO)/dev/sndstat compatible list |
/proc/sound/cardX/目錄
| id (RO)the id string of the cardac97#? (RO)AC97 codec informationac97#?regs (RO)(printable) register dumpmidi? (RO)the current status of input/output on therawmidi devicepcm?pthe directory status of the given pcm playback stream pcm?cthe directory status of the given pcm capture stream |
/proc/asound/cardX/pcmXX目錄
這些可選目錄中的文件包含了PCM流的信息。注意,在內(nèi)核2.6.17和之后的內(nèi)核只有在內(nèi)核配置文件中使能了CONFIG_SND_VERBOSE_PROCFS("詳細(xì)的procfs內(nèi)容")后都會出現(xiàn)這些文件。
| pcm??/info (RO)the pcm stream general info (card, device, name, etc.)pcm??/oss (RO)oss emulation info (shown only when the pcm is openedas an oss device).pcm??/sub?the substream information directorypcm??/sub?/info (RO)the pcm substream general info (card, device, name, etc.)pcm??/sub?/status (RO)the current status of the given pcm substream(status, position, delay, tick time, etc.)pcm??/sub?/hw_params (RO)hw_params set-up on the substream(buffer size, format, etc.)pcm??/sub?/sw_params (RO)sw_params set-up on the substream(threshold, etc.)pcm??/sub?/prealloc (RW)the number of pre-allocated buffer size in kb.you can specify the buffer size by writing to this proc file:# echo 128 > /proc/asound/card0/pcm0p/sub0/preallocto allocate 128kbyte for playback, substream #0, stream #0on the card #0. |
可以運(yùn)行下面的命令查看所有alsa模塊的選項(xiàng):
| modinfo $(modprobe -l snd-*) > ~/modinfo |
/proc/asound/seq/ 目錄
?
clients
Need info
drivers
Need info
oss
Need info
queues
Need info
timer
Need info
硬件設(shè)備是什么呢?
典型的輸出類似于下面:
| prompt# cat /proc/asound/devices 0: [ 0] ?: control 1: ?: sequencer 16: [ 0- 0]: digital audio playback 18: [ 0- 2]: digital audio playback 24: [ 0- 0]: digital audio capture 25: [ 0- 1]: digital audio capture 33: ?: timer |
上面的例子說明有一個(gè)控制通道,兩個(gè)PCM 放音(playback)設(shè)備(DAC’s),兩個(gè)PCM錄音設(shè)備(ADC‘s),一個(gè)MIDI序列器(sequencer)和一個(gè)計(jì)時(shí)器。
在上面例子的系統(tǒng)上,沒有任何重映射,這等價(jià)于下面:
設(shè)備:
- First PCM playback DAC
- What it does: Plays sound
- The device file looks like:
- crw-rw---- 1 root audio 116, 16 Mar 4 21:30 pcmC0D0p
- (the date on yours will probably be different)
- What ALSA calls it: the playback half of?hw:0,0, which is a?duplex device
- First PCM recording ADC
- What it does: Plays sound
- The device file looks like:
- crw-rw---- 1 root audio 116, 16 Mar 4 21:30 pcmC0D0c
- What ALSA calls it: the recording half of?hw:0,0, which is a?duplex device
- Control Channel for first soundcard
- What it Does: controls volume/recording gain (and other stuff?)
- The device file looks like:
- crw-rw---- 1 root audio 116, 0?Mon DD hh:mm?/dev/snd/controlC0
- (Mon DD hh:mm?will be the date and time the device file was created on your system)
- What ALSA calls it: ???
?
/proc將會改變:
在將來,/proc將僅僅被用于進(jìn)程信息,之后要在/sys系統(tǒng)中查找ALSA
在2.6內(nèi)核源碼中,/Documentation/filesystems/sysfs.txt有所說明。/sys自從2006-06(內(nèi)核2.6.16)就存在了,然而/proc接口還沒有改變。
總結(jié)
以上是生活随笔為你收集整理的/proc/asound详细介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: /proc/acpi详细介绍
- 下一篇: /proc/irq和/proc/inte