audio调试总结整理

一 ALSA调试

1.tinyalsa

tinypcminfo:查看PCM节点参数信息     Usage: tinypcminfo -D card -d device

# tinypcminfo -D 0 -d 0 Info for card 0, device 0:

PCM out:Access: 0x000009Format[0]: 0x000444Format[1]: 00000000Format Name: S16_LE, S24_LE, S32_LESubformat: 0x000001Rate: min=8000Hz max=192000HzChannels: min=1 max=4Sample bits: min=16 max=32Period size: min=4 max=65536Period count: min=2 max=1024

PCM in:Access: 0x000009Format[0]: 0x000444Format[1]: 00000000Format Name: S16_LE, S24_LE, S32_LESubformat: 0x000001Rate: min=8000Hz max=192000HzChannels: min=1 max=2Sample bits: min=16 max=32Period size: min=8 max=65536Period count: min=2 max=1024

tinycap:录制wav音频文件

Usage: tinycap file.wav [-D card] [-d device] [-c channels] [-r rate] [-b bits] [-p period_size] [-n n_periods] [-T capture time] [-t file_format: wav or raw]

tinyplay:播放wav音频文件

Usage: tinyplay file.wav [-D card] [-d device] [-p period_size] [-n n_periods]

tinycap和tinyplay主要用于验证audio驱动和tinyalsa的音频功能是否正常

tinymix:查看kcontrol控件信息

tinymix [options] [control name/#] [value to set]    options:    --device|-D - use the given card # instead of 0.    --all-values|-a - show all possible values/ranges for control.    --tabs-only|-t - separate all output columns/values with tabs.    --value-only|-v - show only the value for the selected control.

tinymix主要用于一个音频驱动的控制,比如audio route,volume,mute等

2.devtmpfs信息(设备节点)

路径:/dev/snd

# ls /dev/snd/ -l 
total 0
crw-rw-rw- 1 system audio 116, 2 2020-01-01 08:00 controlC0
crw-rw-rw- 1 system audio 116, 4 2020-01-01 08:00 pcmC0D0c
crw-rw-rw- 1 system audio 116, 3 2020-01-01 08:00 pcmC0D0p
crw-rw-rw- 1 system audio 116, 6 2020-01-01 08:00 pcmC0D1c
crw-rw-rw- 1 system audio 116, 5 2020-01-01 08:00 pcmC0D1p
crw-rw---- 1 system audio 116, 8 2020-01-01 08:00 pcmC0D2c
crw-rw---- 1 system audio 116, 7 2020-01-01 08:00 pcmC0D2p
crw-rw---- 1 system audio 116, 9 2020-01-01 08:00 pcmC0D3c
crw-rw---- 1 system audio 116, 11 2020-01-01 08:00 pcmC0D4c
crw-rw---- 1 system audio 116, 10 2020-01-01 08:00 pcmC0D4p
crw-rw---- 1 system audio 116, 12 2020-01-01 08:00 pcmC0D5p
crw-rw---- 1 system audio 116, 14 2020-01-01 08:00 pcmC0D6c
crw-rw---- 1 system audio 116, 13 2020-01-01 08:00 pcmC0D6p
crw-rw---- 1 system audio 116, 15 2020-01-01 08:00 pcmC0D7c
crw-rw-rw- 1 system audio 116, 33 2020-01-01 08:00 timer

3.procfs信息

路径:/proc/asound

cards:查看已注册的声卡信息

# cat /proc/asound/cards 
 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0x91230000 irq 141

devices:查看已注册的设备信息

#cat /proc/asound/devices 
  1:        : sequencer
  2: [ 0- 0]: digital audio playback
  3: [ 0- 0]: digital audio capture
  4: [ 0- 2]: digital audio capture
  5: [ 0- 3]: digital audio playback
  6: [ 0- 7]: digital audio playback
  7: [ 0- 8]: digital audio playback
  8: [ 0- 9]: digital audio playback
  9: [ 0-10]: digital audio playback
 10: [ 0- 0]: hardware dependent
 11: [ 0- 2]: hardware dependent
 12: [ 0]   : control
 33:        : timer

pcm:查看已注册的pcm设备信息

#cat /proc/asound/pcm 
00-00: ALC3246 Analog : ALC3246 Analog : playback 1 : capture 1
00-02: ALC3246 Alt Analog : ALC3246 Alt Analog : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1
00-07: HDMI 1 : HDMI 1 : playback 1
00-08: HDMI 2 : HDMI 2 : playback 1
00-09: HDMI 3 : HDMI 3 : playback 1
00-10: HDMI 4 : HDMI 4 : playback 1

以上三个设备接点,主要用于查看声卡驱动是否正常加载

hwdep:(硬件相关)控制列表。并不会在所有的系统中出现

timers:一个ALSA已知的计时器的列表,并且描述了当前哪个是实际正在实际使用。version:ALSA子系统模块(或内核)构建的版本和日期。

cardX/pcmXx/info:查看pcm节点信息

#cat /proc/asound/card0/pcm10p/info 
card: 0
device: 10
subdevice: 0
stream: PLAYBACK
id: HDMI 4
name: HDMI 4
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 1

cardX/pcmXX/sub0/status:查看pcm节点状态

state:当前输出运行状态。RUNNING或者close

owner_pid:调用者的线程号

trigger_time:trigger开始播放时间

delay:当前buffer中可用数据大小(单位为:帧)

avail:当前buffer中空闲空间大小(单位为:帧)[为pcm*c录音时,该值为可用数据大小]    hw_ptr:alsa驱动读取指针位置 [为pcm*c录音时,该值为 alsa驱动写入指针位置]    appl_ptr:alsa写入数据者的指针位置 [为pcm*c录音时,该值为alsa读取数据者的指针位置]

# cat status 
state: RUNNING
owner_pid : 4236
trigger_time: 1622193799.015675828
tstamp : 1622193948.288690108
delay : 2048
avail : 0
avail_max : 0-----
hw_ptr : 7165136
appl_ptr : 7167184

cat stasus可以用于初步计算采样率

两次hw_ptr的差值除以两次tstamp的差值,即可获取当前硬件真实的sample_rate

cardX/pcmXX/sub0/hw_params:查看pcm节点硬件参数(来自pcm_config)

format: 当前数据位宽

channels:当前声道数   

rate:当前采样率   

period:单次处理数据的大小(单位为:帧)   

buffer_size: alsa 的buffer大小(单位为:帧)

# cat hw_params 
access: RW_INTERLEAVED
format: S32_LE
subformat: STD
channels: 8
rate: 48000 (48000/1)
period_size: 512
buffer_size: 2048

cardX/pcmXX/sub0/sw_params:查看pcm节点软件参数(来自pcm_config)

 start_threshold: 当起播时buffer中的可用数据大小大于等于start_threshold时alsa才启动播放   

stop_threshold:当播放过程中buffer空闲大小大于等于stop_threshold时alsa停止播放    boundary:虚拟的buffer大小(一个回卷的大小)

 # cat sw_params 
tstamp_mode: ENABLE
period_step: 1
avail_min: 1
start_threshold: 1024
stop_threshold: 2048
silence_threshold: 0
silence_size: 0
boundary: 1073741824

    参考资料

    参考资料

4.sysfs信息

路径:/sys/class/sound

有声卡的id,number,pcm_class等信息

二 ASoc调试

路径:/sys/kernel/debug/asoc

codecs:查看所有注册的codec

platforms:查看所有注册的platform

dais:查看左右注册的dai

CARD/dapm_pop_time:消除pop音的延时时间

CARD/COMMENT/dapm/bias_level:dapm的bias状态

CARD/COMMENT/dapm/DAPM:查看指定DAPM的信息

#cat /d/asoc/AML-AUGESOUND/codec\:dummy/dapm/HIFI\ Capture

CARD/CODEC/codec_reg:codec 寄存器信息

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值