ALSA音频库的移植 ARM 交叉编译 环境变量
来源:互联网 发布:淘宝装修代码编辑器 编辑:程序博客网 时间:2024/05/22 04:55
- alsa-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.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
2: : timer
3: : sequencer
4: [ 0- 0]: raw midi
5: [ 0- 1]: digital audio playback
6: [ 0- 0]: digital audio playback
7: [ 0- 0]: digital audio capture
8: [ 0] : control
[root@hxy alsa-lib-1.0.22]# ls -l /dev/snd
total 0
crw------- 1 root root 116, 8 Mar 2 02:41 controlC0
crw------- 1 root root 116, 4 Mar 2 02:41 midiC0D0
crw------- 1 root root 116, 7 Mar 2 02:41 pcmC0D0c
crw------- 1 root root 116, 6 Mar 2 02:41 pcmC0D0p
crw------- 1 root root 116, 5 Mar 2 02:41 pcmC0D1p
crw------- 1 root root 116, 3 Mar 2 02:41 seq
crw------- 1 root root 116, 2 Mar 2 02:41 timer
- 播放wave文件
- aplay /mnt/nfs/test.wav
- 变频播放,(以是以 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/nfs/test2.wav
- 设置放音增益(0 to 3)
- amixer set Master 1
- 设置录音音量(0-31)
- amixer set Line 10
ALSA lib pcm.c:2145:(snd_pcm_open_noupdate) Unknown PCM default
aplay: main:546: audio open error: No such file or directory
下载
http://www.alsa-project.org/main/index.php/Download
交叉编译 alsa-lib
./configure --host=arm-none-linux-gnueabi --prefix=/usr/share/arm-alsa
make & make install
交叉编译 alsa-utils
./configure --host=arm-none-linux-gnueabi --with-alsa-inc-prefix=/usr/share/arm-alsa/include -- with-alsa-prefix=/usr/share/arm-alsa/lib --without-alsamixer // avoid the ncurses lib
without 要改成disable
make
Copy lib to target board
cp -avr /usr/share/arm-alsa {$rootfs}/usr/share/arm-alsa
环境变量
export ALSA_CONFIG_PATH=/usr/share/arm-alsa/share/alsa/alsa.conf
未添加环境变量前出现的错误:
~ # ./aplay
ALSA lib conf.c:2827:(snd_config_hook_load) cannot access file /usr/share/arm-alsa/share/alsa/cards/aliases.conf
ALSA lib pcm.c:1959:(snd_pcm_open_conf) Invalid type for PCM default definition (id: default, value: cards.pcm.default)
aplay: main:533: audio open error: Invalid argument
~ # ./aplay
ALSA lib pcm.c:2090:(snd_pcm_open_noupdate) Unknown PCM default
aplay: main:533: audio open error: No such file or directory
MIPS:
alsa-lib-1.0.24.1配置编译
CC=/opt/buildroot-gcc342/bin/mipsel-linux-gcc ./configure --host=mipsel-linux --prefix=/opt/mips/alsa_lib/ --enable-shared --disable-python
alsa-utils-1.0.24.2配置编译
CC=/opt/buildroot-gcc342/bin/mipsel-linux-gcc ./configure --prefix=/opt/mips/alsa_utils/ --host=mips --with-alsa-prefix=/opt/mips/alsa_lib/lib_1.0.24.1/lib/ --with-alsa-inc-prefix=/opt/mips/alsa_lib/lib_1.0.24.1/include/
CC=/opt/buildroot-gcc342/bin/mipsel-linux-gcc ./configure --host=mipsel-linux --prefix=/home/armmlinux/zdfwork/project/audio/alsa/output/mips-linux/ --enable-shared --disable-python --with--configdir=/lib/
交叉编译其他程序:
Add included file in program: #include <alsa/asoundlib.h>
~# arm-none-linux-gnueabi-gcc -lasound -L/usr/share/arm-alsa/lib/ -I/usr/share/arm-alsa/include/ -o test my_test.c
- ALSA音频库的移植 ARM 交叉编译 环境变量
- alsa 音频库的移植
- alsa 音频库的移植
- alsa 音频库的移植
- alsa 音频库的移植
- alsa 音频库的移植
- alsa 音频库的移植
- alsa 音频库的移植
- alsa 音频库的移植
- alsa 音频库的移植
- alsa 音频库的移植
- alsa 音频库的移植
- ALSA音频的移植,编译与测试
- ALSA音频的移植,编译与测试
- linux 下 alsa 音频库的移植
- ALSA音频库移植,alsa-utils工具的使用
- linux驱动:音频驱动(七)交叉编译alsa库及工具集alsa-utils
- alsa-lib库的交叉编译
- Apache Thrift 介绍
- Sqlite数据库的升级及之前数据的保留
- LCD调试总结
- CharacterEncodingFilter
- android 拍照上传照片
- ALSA音频库的移植 ARM 交叉编译 环境变量
- 开个刷题的分类
- Mahout canopy聚类
- mysql密码忘记时如何修改密码(Linux&Windows)
- ExtJS小学识【多处收集供自己参考】
- shell中$0,$?,$!等的特殊用法
- 如何限制UITextField内输入的字数(很好很强大)
- C中const 定义常量的使用
- 暴雪战网协议更新:代练及第三方交易均违规