linux dev controlC0,关于Linux的alsa音频问题解决

到今日,在android平台上调试声音的方面终于有了进展,原来是需要改一个配置文件,目前只是解决了问题,具体原因以后再分析。硬件平台是6410+WM9714,软件平台是ANDROID。现在由于android系统启动时,加载音频服务不成功,处于一个死循环中,老停在登陆界面。此时打印的Logcat信息如下:

.........

AudioFlinger not published, waiting...

Waiting for sevice media.audio_flinger...

.........。

一开始我以为是WM9714的内核音频驱动有问题,所以先验证音频驱动是否OK。

(1)用cat xxx.wav > /dev/snd/audio时耳机全是播出滋滋的噪声,没有一点音乐声;

(2)用aplay xxx.wav时没有声音,会提示Unable to install hw params。由此分析是alsa配置存在问题,但具体是什么参数不得而知;

(3)在实验方法(1)播放出噪声时,直接用语句读出WM9714的全部寄存器值。读出的ID号正确,说明AC97与codec的通讯无误;后来将全部的寄存器值发给wofson原厂工程师烧到他们自己的平台上,播放音频文件正常。进一步证明寄存器设置是无误的,AC-LINK通讯无误,驱动无误。

由此原因集中在配置上。后来同事分析和试了一把,改动/vendor/sec/smdk6410/init.smdk6410.rc中的

setprop ro.radio.noril  yes改成setprop ro.radio.noril   no。虽然我们做的是MID产品,没有RIL电话功能硬件,但还是要将这部分服务加载上去。(但最后试验过,no值也OK)

另一个需要补充的地方在于:同目录下的init.rc中的:

service media /system/bin/mediaserver

user media

group system audio camera graphics inet net_bt net_bt_admin

要打开,不能屏蔽。

*******************************************************************************

另2010-02-04补充:在网上看到了类似的错误记录,出现最上述的Logcat服务信息时,叙述如下:有三种可能原因:一是上面所讲的init.rc中的一定要启动mediaserve服务。二是确保ALSA驱动已经加载到系统中。三是在init.rc中要添加alsa相关信息:

symlink /dev/snd/pcmC0D0c /dev/pcmC0D0c

symlink /dev/snd/pcmC0D0p /dev/pcmC0D0p

symlink /dev/snd/controlC0 /dev/controlC0

symlink /dev/snd/timer /dev/timer

chmod 0777 /dev/pcmC0D0c

chmod 0777 /dev/pcmC0D0p

chmod 0777 /dev/controlC0

chmod 0777 /dev/timer

chown root audio /dev/snd/controlC0

chown root audio /dev/snd/pcmC0D0c

chown root audio /dev/snd/pcmC0D0p

chown root audio /dev/snd/timer

setprop alsa.mixer.playback.master Front

setprop alsa.mixer.capture.master Capture

setprop alsa.mixer.playback.earpiece Master

setprop alsa.mixer.capture.earpiece Capture

setprop alsa.mixer.playback.headset Master

setprop alsa.mixer.playback.speaker Master

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值