现在的位置: 首页 > 综合 > 正文

alsa-lib移植

2013年08月08日 ⁄ 综合 ⁄ 共 1710字 ⁄ 字号 评论关闭

 

reference http://blog.csdn.net/lanmanck/article/details/5829143
                http://dev.hqyj.com/column/column3.htm
1.tar -xvf alsa-lib_1.0.23.orig.tar.bz2
 ./configure --host=arm-linux --prefix=/home/ALSA/alsa_lib
make
make install
生成的库
alsa_lib$ ls
bin  include  lib  share
在这个文件lib下的库*.so.*是要发布到板子上去的,可以直接copy到开发板的根目录lib下
(这里只是copy,不要剪贴,后面还要用到,注意的是有些软连接不能copy,只能自己到板子上创建。。。)

2.tar -xvf alsa-utils-1.0.23.tar.bz2
./configure --host=arm-linux --prefix=/home/ALSA/alsa_utils
--with-alsa-inc-prefix=/home/ALSA/alsa_lib/include
--with-alsa-prefix=/home/ALSA/alsa_lib/lib
--disable-alsamixer --disable-xmlto
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  aseqdump  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文件
aplay test.wav
Playing WAVE 'test.wav' : Unsigned 8 bit, Rate 16000 Hz, Mono
录音
 arecord -d 20 -c 2 -t wav -r 8000 -f "Signed 16 bit Little Endian" a.wav
 以20秒的间隔(-d 20),立体声(-c 2),频率是 8000Hz来录制Wave格式音频

抱歉!评论已关闭.