目录
1、体验
(1)ALSA声卡使用体验:
使用arecord录音,使用aplay播放,在Alsa-utils里面)
准备:
cd linux-3.4.2
patch -p1 < ../linux-3.4.2_alsa_wm8976_uda1341_jz2440_mini2440_tq2440.patch //打补丁
cp config_wm8976_jz2440 .config 或 cp config_uda1341_tq2440_mini2440 .config //设置配置文件
make uImage //编译内核
(2)使用新内核启动并测试
启动后创建设备节点
直接输入arecord命令查看帮助信息(arecord 选项 文件)
执行命令后,出现错误(没有匹配的通道)
搜索内核目录查看错误原因(在soc_pcm.c文件的222行)
通道最小大于通道最大值,也就是codec这一边的dai不匹配CPU这边的dai接口,他们的声道不匹配,在codec部分,对应wm8976的capture通道支持的声道数是1(最大和最小都是 ,因而应该修改为2);
而在platform(cpu部分)的IIS,capture通道支持的声道数是2,因而不匹配。
(3)修改程序后编译新内核并重新启动调试
jz2440:
i. 声音差
arecord test.wav //录音,把录到的声音放到文件test.wav里去
aplay test.wav //播放test.wav文件
对着麦克风说话,然后播放声音
(4)声音有很多噪声
解决办法是添加一些参数(改变采样率,声道数,格式)
-f cd表示每一个采样点是16位,采样率是44100(更高的采样频率),双声道
ii. 声音好
arecord -f cd test.wav
aplay test.wav