alsa-lib, alsa-utils交叉编译及在嵌入式上使用

2019-07-13 05:30发布

转载地址:https://blog.csdn.net/luckywang1103/article/details/45626201
  1. 下载alsa-lib和alsa-utils 
    www.alsa-project.org/main/index.php/Download 
    上面是官方的地址,可是alsa-lib总下载不了,于是我在download.chinaunix.net/上面下载了alsa-lib-1.0.25和alsa-utils-1.0.25 
    我把这两个文件上传到CSDN资源:http://download.csdn.net/detail/luckywang1103/8684927
  2. 编译alsa-lib
    1. 解压alsa-lib-1.0.25.tar.bz2
    2. 进入alsa-lib-1.0.25目录
    3. ./configure –host=arm-linux –prefix=$PWD/build –enable-shared –disable-python –with-configdir=$PWD/build/alsa_lib/share –with-plugindir=$PWD/build/alsa_lib/lib
    4. make & make install
  3. 编译alsa-utils
    1. 同上
    2. 同上
    3. ./configure –host=arm-linux –prefix=$PWD/build CFLAGS=”-I/home/lei/alsa/alsa-lib-1.0.25/build/include” LDFLAGS=”-L/home/lei/alsa/alsa-lib-1.0.25/build/lib -lasound” –disable-alsamixer –disable-xmlto
    4. make & make install 
      说明:这里CFLAGS和LDFLAGS使用的是’2’中alsa-lib在build目录下生成的include文件和lib文件。
  4. 拷贝文件到开发板
    1. 将’2’中得到的/home/lei/alsa/alsa-lib-1.0.25/build/lib下的libasound.*复制到开发板的/lib目录下,将/home/lei/alsa/alsa-lib-1.0.25/build/alsa_lib/share文件复制到开发板的同样的文件位置(即在开发板上也要这样一个位置) 
      说明:share文件包含了一些配置文件alsa.conf等
    2. 将/home/lei/alsa/alsa-utils-1.0.25/build/bin目录下的aplay复制到开发板,同时可以拷贝/home/lei/alsa/alsa-utils-1.0.25/build/share/sounds/alsa目录下的一些wav文件到开发板供测试。
  5. 在开发板上ls -l /dev/snd看看系统是否已经有了设备节点,如果没有,需要手动创建。
    mkdir /dev/snd 
    mknod /dev/snd/controlC0 c 116 0 
    mknod /dev/snd/pcmC0D0p c 116 16 
    mknod /dev/snd/pcmC0D0c c 116 24 
    mknod /dev/snd/seq c 116 1 
    mknod /dev/snd/hwC0D0 c 116 4 
    mknod /dev/snd/timer c 116 33
可以通过cat /proc/asound/devices,正常会看到一些设备来决定创建哪些设备节点。 
0: [ 0] : control 
16: [ 0- 0]: digital audio playback 
24: [ 0- 0]: digital audio capture 
33: : timer
  1. 播放文件 
    /bin/aplay Front_Center.wav
部分参考: 
http://blog.csdn.net/reille/article/details/5845913 
http://ackerman.iteye.com/blog/828912