alsa 架构现在已经成为Linux的标准音频架构了,相比于过去的oss有很多的优点。
alsa 提供了大量的工具和一个完备的链接库,这些库都可以在Ubuntu centos等上进行交叉编译。
我是在Ubuntu最新版本14上编译的alsa的22版本的。
http://www.alsa-project.org/main/index.php/Download 这里包含了alsa库的一些历史版本,这里我们主要编译lib库和util的工具集
我下载了1.0.22
然后解压进入文件夹路径,这里可以看到里面包含了一些熟悉的文件,首先就是Makefile 这个文件现在还是没什么用的,因为里面存在一些参数是要我们根据自己的编译环境进行设置的。设置方法就是里面有个应用程序configure 命令在这里贴出来
./configure --host=arm-linux --prefix=$PWD/../../output/arm-linux --enable-static --enable-shared --disable-python --with-configdir=/usr/local/share --with-plugindir=/usr/local/lib/alsa_lib
这里的路径如果没有 要自己创建,当然如果自己觉得不喜欢可以更改路径。
然后就可以编译
make
安装
sudo make install
这里是因为安装过程要创建路径所以需要管理员权限
这样在usr/local/share 线面就能看到一些.a .so文件了
然后进入到util里面进行编译出来工具,这个编译是要依赖于前面编译的lib的
首先也是进入到util的路劲
修改makefile
./configure --host=arm-linux --prefix=$PWD/../../output/arm-linux --enable-static --enable-shared --disable-python --with-configdir=/usr/local/share/alsa --datarootdir=$PWD/../../output/arm-linux/share
也是同样的方法
然后是编译
make
安装
sudo make install
之后也是在
usr/local/share/alsa
线面能看到一堆的工具了。
到此整个编译过程完成了
之后进行移植就相对简单了
把工具 aplay arecord 。。放到板子的rootfs 的bin路径
lib下的那些 ,a ,so 。。 全都放到rootfs的lib下
config 在rootfs下建立 、usr/localshare/alsa下
这样就可以用了