1.下载alsa-lib和alsa-utils 

www.alsa-project.org/main/index.php/Download

2.编译alsa-lib

tar xvf alsa-lib-1.1.5.tar.bz2  #解压
sync
cd alsa-lib-1.1.5/
MyDIR="/usr/local/alsa"
./configure --host=arm-linux --prefix=$MyDIR/build --enable-shared --disable-python --with-configdir=$MyDIR/build/alsa_lib/share --with-plugindir=$MyDIR/build/alsa_lib/lib CC=/usr/local/arm/arm-linux-gnueabihf-4.9/bin/arm-linux-gnueabihf-gcc
sudo make
sudo make install

3.编译alsa-utils

tar xvf alsa-utils-1.1.5.tar.bz2
cd alsa-utils-1.1.5/
MyDIR="/usr/local/alsa/build"
./configure --host=arm-linux --prefix=$PWD/build CC=/usr/local/arm/arm-linux-gnueabihf-4.9/bin/arm-linux-gnueabihf-gcc CFLAGS="-I$MyDIR/include" LDFLAGS="-L$MyDIR/lib -lasound" --disable-alsamixer --disable-xmlto
sudo make
sudo make install

 

4.把文件拷贝到开发板

1.把/usr/local/alsa/build/lib 中的libasound.la  libasound.so  libasound.so.2  libasound.so.2.0.0 拷贝到目标板上的/lib目录

2.将/usr/local/alsa/build/alsa_lib/share文件复制到开发板的同样的文件位置(即在开发板上也要这样一个位置)

 

3.把~/lichee/alsa/alsa-utils-1.1.5/build/bin中的可执行文件拷贝到开发板的/bin目录

4.还可以把~/lichee/alsa/alsa-utils-1.1.5/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
# ls -l /dev/snd/
total 0
crw-------    1 root     root      116,   0 Jan  1 00:00 controlC0
crw-------    1 root     root      116,  24 Jan  1 00:00 pcmC0D0c
crw-------    1 root     root      116,  16 Jan  1 00:00 pcmC0D0p
crw-------    1 root     root      116,  33 Jan  1 00:00 timer

6.播放文件

/bin/aplay Front_Center.wav

 7.存在问题

我发现我这个编译出来没有arecord 只有arecordmidi,所以我重新用buildroot编译,顺便把buildroot用的configure选项记录一下。 这个问题找到了,这是因为arecord是连接着aplay的。我的sftp复制的时候它自动把连接文件删除了,所以我找不到,手动创建一个即可。

编译alsa-lib

./configure --target=arm-buildroot-linux-gnueabihf --host=arm-buildroot-linux-gnueabihf --build=x86_64-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix="" --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared  --with-alsa-devdir=/dev/snd --with-pcm-plugins="all" --with-ctl-plugins="all" --without-versioned --enable-static=no --disable-python )

编译alsa-utils

./configure --target=arm-buildroot-linux-gnueabihf --host=arm-buildroot-linux-gnueabihf --build=x86_64-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix="" --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls --disable-static --enable-shared  --disable-xmlto --disable-rst2man --with-curses=ncurses --disable-alsaloop --disable-bat