情况简介
ALSA 是目前 Linux 系统上大量采用的音频设备库,通过 Alsa 架构能分离驱动和应用的开发。 Alsa 为上层提供 API 的同时,也为下层提供了接口,在内核配置的时候指定“支持 Alsa” 就能得到内核支持,具体位置为:
Menuconfig -> Device Drivers -> Sound card support -> Advanced Linux Sound Architecture ,驱动层所添加的音频设备应该也会在这里出现。
由于我们的内核已经包含了对应音频设备的驱动,故不做深入。
有了 Alsa 内核驱动,我们还需要 Alsa Lib 和 Alsa Util 的支持,这 3 者的关系如下图所示:
Alsa Util
-------------
Alsa lib
-------------
Alsa Driver
Alsa Util 是纯应用层的软件,相当于 Alsa 设备的测试程序, Alsa Lib 则是支持应用 API 的中间层程序。移植 Alsa 程序的顺序就是先后移植 Driver,Lib,Util 。
Alsa Lib 移植
Lib 移植不需要修改一丁点儿的源码,只需要重新编译 lib 以支持自己的平台。其源码可以从官网下载。编译过程如下:
1. Configure
./configure --host=arm-none-linux-gnueabi --prefix=/home/jeff/Downloads/alsa-lib/out/arm-linux/ --enable-static --enable-shared –-with-configdir=/usr/local/share |
配置会先对此命令中的配置项进行检查,然后实现配置。需要注意的是:配置如果出错,未必一定报错,而是会采用默认的配置选项。几个重要的配置项:
1 ) --host 指定编译器,这里指定为