问题:Linux系统中有声卡设备,但是听不到声音

一、声卡驱动没有安装

  1、通过插拔声卡查出声卡驱动

  2、在相应的kernel中编译内核

修改保存.config文件,然后进行编译

make -j 10
make modules
make modules_install

reboot重启机器后可以“lsmod”查看驱动

 

3、将2号声卡改为默认声卡: 

1、# aplay -l   -----> list all soundcards and digital audio devices
2、# vi /usr/share/alsa/alsa.conf   --->修改默认声卡的配置文件
3、修改udev规则
#cat /etc/ocs.d/files/configs/TM-1000/etc/udev/rules.d/02-set-default-alsacard.rules 
    SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="0014", RUN+="/bin/sed -i \'/^defaults.pcm.card [0-9]/cde
faults.pcm.card 4\' /usr/share/alsa/alsa.conf"

 

二、查看alsamixer配置是否出错

1)/usr/share/alsa/alsa.conf    ------>/proc/asound/devices的脚本文件
(2)/etc/modprobe.d/alsa.conf    ------>加载/root/a.out的文件
(3)/proc/asound/cards        ------>确定当前可以使用的设备号device
(4)/proc/asound/card0/codec#05)/var/lib/alsa/asound.state

 

三、查看音频状态下的录音和播放是否出错

  • arecord,aplay是命令行的ALSA声卡驱动的录音和播放工具
  • arecord是命令行ALSA声卡驱动的录音程序,支持多种文件格式和多个声卡
  • aplay 是命令行播放工具,支持多种文件格式
命令格式:
       arecord [flags] [filename]
       aplay [flags] [filename [filename]] ...

 

四、例子

 1、aplay用法

# aplay -V stereo a.wav 
    Playing WAVE \'a.wav\' : Unsigned 8 bit, Rate 8000 Hz, Mono
    #+                                                 | 01%

 2、arecord用法

# arecord  -f cd -V stereo  /dev/null       #不录到文件里,直接看录间的音量大小

 3、arecord与aplay混合使用

# arecord -f cd -V stereo  | aplay      # 环路测试,mic的输出经过一定的delay后直接从耳机里输出

 

版权声明:本文为carriezhangyan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/carriezhangyan/p/9210220.html