分类: LINUX
2012-10-22 14:20:48
作者:程姚根,讲师。
一. 下载alsa所需要的库和测试alsa的测试工具,此次使使用的是alsa-lib-1.0.24.1.tar.bz2、alsa-utils-1.0.24.2.tar.bz2。
二. 默认情况下内核已经支持alsa驱动,保险情况下先去确认一下,如下图:
Device Drivers --->
Sound card support --->
Advanced Linux Sound Architecture --->
ALSA for SoC audio support --->
<*> SoC Audio for the Samsung S3CXXXX chips
三. 解压alsa-lib和alsa-utils
对于alsa-lib,进行配置,运行:
./configure --host=arm-iwmmxt-linux-gnueabi --prefix=/usr/arm-alsa --with-alsa-devdir=/dev --enable-static --enable-shared --disable-python --with-configdir=/usr/arm-alsa/share/alsa
Make
Make install
--prefix为lib安装路径,在PC机上要有次目录,在开发板上也要有相同的目录,移植的时候将arm-alsa中所有文件全部复制到开发板上 /usr/arm-alsa中。
对于alsa-utils,进行配置,运行:
./configure --host=arm-iwmmxt-linux-gnueabi --prefix=/usr/arm-alsa --enable-static --enable-shared CFLAGS="-I/usr/arm-alsa/include" LDFLAGS="-L/usr/arm-alsa/lib -lasound" --disable-alsamixer --disable-xmlto --with-alsa-inc-prefix=/usr/arm-alsa/include
Make
Make install
参数说明:
--host 指定编译出来软件运行的平台,--prefix指定make install安装的路径(如:include、lib、bin等)
四.移植到开发板
在开发板上发布alsa库.除了libasound.so库以外,必须还要把 alsa.conf发布到板上,这个文件可以在make install后在你安装目录下的share找到alsa目录,把这个目录整个拷贝到开发板即可。
注意:如果提示找不到某某目录下的alsa.conf,只要在开发板上按照提示建立相应的目录,再把share目录,考到相应目录下
五、测试
用cat /proc/asound/devices可以看到:
正常情况下,在你的/dev/snd会看到如下设备结点(有例外,就是内核驱动调整了结点位置,可以用ln -s 来创建链接到/dev/snd下),用ls -l /dev/snd 可以看到:
注意:如果出现如下错误
这说明,在开饭板上的dev目录下,没有snd这个目录,需要自己手动添加此目录,再把相应的设备节点添加到这个目录下(就是上面ls –l /dev/snd下的那下设备节点,可以在dev目录下找到)