一、相关命令

1、aplay -l
2、amixer
3、alsamixer

alsamixer是Linux 音频架构ALSA工具的其中一个,用于配置音频的各个参数。是基于文本下的图形界面的,可以通过键盘的上下键,
左右键等,很方便地设置需要的音量,开关某个switch(开关)等等操作。
快捷键:

  • 常规控制
    左右箭头或n,p 用来选择通道。
    上下箭头或+,- 同时调整选定通道的左右声道的音量。
    B,= 设置左右声道音量相同。
    M 静音当前通道。<,>分别对左,右声道静音。
    空格 选择录音源。在选定的通道上按"空格",可以标记此通道为录音源。此操作仅限输入设备。
    L 刷新屏幕.
  • 快捷设置
    分别调整左,右或整个通道的音量.
    Q,W,E 增大 左,右,通道 的音量.
    Z,X,C 减小 左,右,通道 的音量.
    alt-q,ESC 退出

android 声音通道是否在电话 声音通道打开_HDA


alsamixer默认配置与保存

  • 输入命令
    alsamixer
  • 进行默认配置
    默认参数文件保存在/var/lib/alsa/asound.state文件里,我们可以把这个文件的内容拷贝出来作为待恢复文件。
    先修改asound.state 的权限
    chmod 777 /var/lib/alsa/asound.state 储存配置文件到当前目录(/home/root下)
    alsactl -f 123.txt store 或者直接储存在默认文件里
    alsactl -f /var/lib/alsa/asound.state store
  • 将默认参数文件拷贝到文件系统/home/root/下
  • 将alsactl -f /home/root/123.txt restore写到“/etc/profile”中,任一用户登录后自动执行脚本恢复配置文件

4、hdajacksensetest

未插入耳机

android 声音通道是否在电话 声音通道打开_android 声音通道是否在电话_02


插入耳机

android 声音通道是否在电话 声音通道打开_配置文件_03

二、录音

arecord -d 10 -f cd -t wav file.wav

三、播放

aplay file.wav

四、相关内容

1、ls /dev/snd/
2、ls /proc/asound/
3、ls /sys/class/sound/
4、lsmod | grep snd


五、HDA

通过/sys/class/sound/hwC0D0下的文件可以动态地的修改HDA下codec的配置:

  • vendor_id —供应商id
  • subsystem_id —
  • name — codec的名称,可以直接写入新字符串进行修改。
  • init_verbs — 初始化时需要额外执行的verbs,添加需要的vers到这个文件,可以在初始化时被执行。
  • hints — 给codec的暗示,例如写入jack_detect = no 就会禁止掉codec的jack dectection功能。
  • init_pin_configs — 记录BIOS设置的initial pin default config。
  • driver_pin_configs — 记录codec修改掉pin default config值的部分。
  • usr_pin_configs — 写入自己设定的配置可以覆盖掉BIOS启动时的设置。
  • reconfig — 触发codec重新配置,一旦往这个文件写入任意值,驱动就会re-initialize the codec tree again。
  • clear — Resets the codec, removes the mixer elements and PCM stuff of the specified codec, and clear all init verbs and hints

查看驱动里设置的verbtable的值:

android 声音通道是否在电话 声音通道打开_音频测试_04

系统下直接修改pin widget 0x17 值为0x03a11

android 声音通道是否在电话 声音通道打开_HDA_05

查看耳机是否插入

android 声音通道是否在电话 声音通道打开_音频测试_06

hda-verb

android 声音通道是否在电话 声音通道打开_android 声音通道是否在电话_07