嵌入式LinuxALSA移植

上传人:仙*** 文档编号:37605321 上传时间:2021-11-03 格式:DOC 页数:4 大小:97.50KB
收藏 版权申诉 举报 下载
嵌入式LinuxALSA移植_第1页
第1页 / 共4页
嵌入式LinuxALSA移植_第2页
第2页 / 共4页
嵌入式LinuxALSA移植_第3页
第3页 / 共4页
资源描述:

《嵌入式LinuxALSA移植》由会员分享,可在线阅读,更多相关《嵌入式LinuxALSA移植(4页珍藏版)》请在装配图网上搜索。

1、嵌入式Linux ALSA移植 alsa 是在LINUX出现比较晚的音频处理库,主要是针对原有的OSS的库进行改进.性能更好,支持多个播放源等.但相应的,增加的编程的复杂性. 旧的oss是采用标准文件IO接口,设备打开采用open,声音播录是采用数据IO接口(read/write),设备的参数采用ioctl来控制.都是 系统调用因此无需额外库和配置文件来操作设备.但alsa也是最终采用open/read/write/ioctl,但操作结点更多.更复杂.因此在编程 中是采用额外的库来操作的.ALSA的体系结构官方主页http:/www.alsa-project.org/主要跟编程相关是 alsa

2、-lib. ALSA 应用库(最常用) ftp:/ftp.alsa-project.org/pub/lib/alsa-lib-1.0.22.tar.bz2 alsa-driver 一些常见芯片的ALSA驱动代码,一般内核会集成. ftp:/ftp.alsa-project.org/pub/driver/alsa-driver-1.0.22.1.tar.bz2 alsa-firmware 一些DSP或ASIC的专用的微码(运在芯片之上,启动时由LINUX装入到硬件中). ftp:/ftp.alsa-project.org/pub/firmware/alsa-firmware-1.0.20.tar

3、.bz2 alsa-utils 一般ALSA小的测试工具.如aplay/arecord 播放和录音小程序. ftp:/ftp.alsa-project.org/pub/utils/alsa-utils-1.0.22.tar.bz2 alsa-oss 用alsa接口模拟旧的oss接口. ftp:/ftp.alsa-project.org/pub/oss-lib/alsa-oss-1.0.17.tar.bz2 其中alsa-driver,alsa-firwware是内核开发者所接触的东西,对于已经正常运行硬件,通常意味着这一部分已经整合到内核当中,无需修改. 而alsa-utils主要是测试一些小

4、工具. 因此对于一个应用程序开发者,或者嵌入式应用开发者,接触到主要是alsa-lib编译出来的库libasound.Linux ALSA 驱动测试 以下是我在RHEL 5上测试ALSA的结果,在ARM或MIPS开发板上类似 如果安装ALSA,在/proc会看到相应设备: 用cat /proc/asound/devices roothxy alsa-lib-1.0.22#cat /proc/asound/devices 2: : timer 3: : sequencer 4: 0- 0: raw midi 5: 0- 1: digital audio playback 6: 0- 0: dig

5、ital audio playback 7: 0- 0: digital audio capture 8: 0 : control 正常情况下,在你的/dev/snd会看到如下设备结点(有例外,就是内核驱动调整了结点位置)用ls -l /dev/sndroothxy alsa-lib-1.0.22#ls -l /dev/sndtotal 0crw- 1 root root 116, 8 Mar 2 02:41 controlC0crw- 1 root root 116, 4 Mar 2 02:41 midiC0D0crw- 1 root root 116, 7 Mar 2 02:41 pcmC

6、0D0ccrw- 1 root root 116, 6 Mar 2 02:41 pcmC0D0pcrw- 1 root root 116, 5 Mar 2 02:41 pcmC0D1pcrw- 1 root root 116, 3 Mar 2 02:41 seqcrw- 1 root root 116, 2 Mar 2 02:41 timer 通常桌面版已经安装了alsa-utils.可以执行一下aplay -h,测试是否输出.如果可以来播入一下wav文件来测试整个环境是否正常工作.以下是一些用alsa-utils测试样例 播放wave文件 aplay /mnt/nfs/test.wav 变频

7、播放,(以是以 44 KHz来播放音频) aplay -D rate_44k /mnt/nfs/test.wav 录音,以20秒的间隔(-d 20),立体声(-c 2),频率是 8000Hz来录制Wave格式音频 arecord -d 20 -c 2 -t wav -r 8000 -f Signed 16 bit Little Endian /mnt/nfs/test.wav 测试混音播放(先是播放test1.wav,然后再同时播放test2.wav) aplay -D plug:dmix_44k /mnt/nfs/test1.wav & aplay -D plug:dmix_44k /mnt

8、/nfs/test2.wav 设置放音增益(0 to 3) amixer set Master 1 设置录音音量(0-31) amixer set Line 10 嵌入式LINUX下alsa库移植. 在ARM-LINUX/MIPS LINUX下移植ALSA库,首先保存设备驱动结点正确无误. 然后主要移植 alsa-libalsa-lib的移植. 解压 tar xvjf alsa-lib-1.0.22.tar.bz2 cd alsa-lib-1.0.22 生成Makefile./configure -host=arm-linux -prefix=$PWD/././output/arm-linux

9、 -enable-static -enable-shared -disable-python -with-configdir=/usr/local/share -with-plugindir=/usr/local/lib/alsa_lib在这里要注意 -with-configdir的选项.它将影响 include/config.h中的 ALSA_CONFIG_DIR 目录.它默认是你的-prefix目录.这样在嵌入式交叉编译将是一个桌面机的路径,在libasoud.so运行.会提示,如果出来这个提示,一般都是ALSA_CONFIG_DIR路径错误造成的.ALSA lib pcm.c:2145:

10、(snd_pcm_open_noupdate) Unknown PCM defaultaplay: main:546:audio open error: No such file or directory-with-plugindir也是同样道理了.它是设为 ALSA_PLUGIN_DIR 宏.编译 make安装 make install开发板发布注意:在开发板上发布alsa库.除了libasound.so库以外,必须还要把 alsa.conf发布到板上-with-configdir所指向目录下的alsa目录,否则还是会报audio open error: No such file or di

11、rectory.这个文件可以在make install后在你安装目录下的share找到alsa目录,把这个目录整个拷贝到开发板即可.alsa-utils移植 解压:tar xvjf alsa-utils-1.0.22.tar.bz2 cd alsa-utils-1.0.22生成Makefile ./configure -host=arm-linux -prefix=$PWD/././output/arm-linux -enable-static -enable-shared -with-configdir=/usr/local/share -with-libiconv-prefix=$PWD/././output/arm-linux CFLAGS=-I$PWD/././output/arm-linux/include LDFLAGS=-L$PWD/././output/arm-linux/lib -lasound -liconv -disable-alsamixer -disable-xmlto注意这里LDFLAGS是必须,否则会找不到libasound.另外 alsamixer 是一个ncurses程序,基本上在嵌入式终端上很难移植.所以这里取消掉.-disable-xmlto也是因为找不到库.编译 make安装 make install

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!