当前位置: 代码迷 >> 综合 >> alsa-lib, alsa-utils交叉编译及在嵌入式上使用
  详细解决方案

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

热度:69   发布时间:2024-02-12 04:32:00.0
  1. 下载alsa-lib和alsa-utils
    www.alsa-project.org/main/index.php/Download
    上面是官方的地址,可是alsa-lib总下载不了,

  2. 编译alsa-lib

    1. 解压alsa-lib-1.2.3.2.tar.bz2
    2. 进入alsa-lib-1.2.3.2目录
    3. ./configure --host=arm-linux CC=arm-linux-gcc CXX=arm-linux-g++ --prefix=/usr/local
    4. make & make install
  3. 编译alsa-utils

    1. 同上
    2. 同上
    3. ./configure –host=arm-linux  CFLAGS=”-I/usr/local/include” LDFLAGS=”-L/usr/local/lib ” CC=arm-linux-gcc CXX=arm-linux-g++ --prefix=/usr/local/myfile
    4. make & make install
      说明:这里CFLAGS和LDFLAGS使用的是’2’中alsa-lib在build目录下生成的include文件和lib文件。
  4. 拷贝文件到开发板

    1. 将’2’中得到的/usr/local/lib下的libasound.*复制到开发板的/lib目录下,将/usr/local /share文件复制到开发板的同样的文件位置(即在开发板上也要这样一个位置)
      说明:share文件包含了一些配置文件alsa.conf等
    2. 将/usr/local/myfile/bin目录下的aplay复制到开发板
  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

  相关解决方案