alsa 库移植与声音编程

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在移植alsa-lib和alsa-utils之前首先要移植alsa-device,保证系统支持alsa 驱动,移好alsa-device后再dev/snd后出现相应的设备:

∙controlC0 --> 用于声卡的控制,例如通道选择,混音,麦克风的控制等∙midiC0D0 --> 用于播放midi音频

∙pcmC0D0c --〉用于录音的pcm设备

∙pcmC0D0p --〉用于播放的pcm设备

∙seq --〉音序器

∙timer --〉定时器

1. tar -xvf alsa-lib_1.0.23.orig.tar.bz2

(1)配置alsa-lib

./configure --host=arm-fsl-linux-gnueabi

--prefix=/opt/ALSA/alsa_lib

CC=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/a rm-fsl-linux-gnueabi-gcc

error:

configure error required courses helper header not found

安装libncursesw5-dev。apt-get install libncursesw5-dev

configure: error: panelw library not found

./configure加入--with-curses=ncurses

/bin/bash: xmlto: command not found

安装xmlto

/bin/rm: cannot remove `libtoolt': No such file or directory

强制make!

(2)

make

make install

生成的库

alsa_lib$ ls

bin include lib share

在这个文件lib下的库*.so.*是要发布到板子上去的,可以直接copy到开发板的根目录lib下

(这里只是copy,不要剪贴,后面还要用到,注意的是有些软连接不能copy,只能自己到板子上创建。。。)

2. tar -xvf alsa-utils-1.0.2

3.tar.bz2

./configure --host=arm-fsl-linux-gnueabi

--prefix=/opt/ALSA/alsa_utils/

--with-alsa-inc-prefix=/opt/ALSA/alsa_lib/include/

--with-alsa-prefix=/opt/ALSA/alsa_lib/lib/

--disable-alsamixer --disable-xmlto

注:

--with-alsa-inc-prefix:指定头文件为alsa-lib编译出来的头文件路径

--with-alsa-prefix:指定库文件为alsa-lib编译出来的库文件路径

error:

mv: cannot stat `t-ja.gmo': No such file or directory

解决方法是下载gettext:apt-get install gettext

make

make install

成功以后,你会在自己的alsa-utils安装路径下的bin目录下见到生成的工具

aconnect amidi amixer aplay aplaymidi arecord arecordmidi ase qdump aseqnet iecset speaker-test

3.alsa_lib

cp ALSA/alsa_lib/lib/libasound.* ./nfsdir_linux/lib/

alsa的配置文件拷贝

除了库之外alsa的配置文件也需要拷贝到目标板根文件系统中,这里需要注意的是share目录在目标板的存放位置必须和在主机的存放路径一致,比如在主机上存放在/home/david/project/S5PC100/alsa/alsa-lib,

那么我们就得把share放在目标板上的这个路径里

cp -rf share /home/nfsdir_linux/home/ALSA/alsa_lib/

alsa_utils

将alsa-utils/bin目录下的内容拷贝到目标板根文件系统中的bin下

cp bin/* /home/nfsdir_linux/bin/

4.测试

#cat /proc/asound/devices

0: [ 0] : control

16: [ 0- 0]: digital audio playback

24: [ 0- 0]: digital audio capture

33: : timer

# ls -l /dev/snd/

crw-rw---- system audio 116, 33 1970-01-01 00:00 timer 定时器接口crw-rw---- system audio 116, 0 1970-01-01 00:00 controlC0 控制接口crw-rw---- system audio 116, 24 1970-01-01 00:00 pcmC0D0c PCM 接口

crw-rw---- system audio 116, 16 1970-01-01 00:00 pcmC0D0p

如果没有snd目录则创建

播放wav文件

相关文档
最新文档