ALSA移植到6410(wang@20120330)
1.下载必要的文件
下载页面:http://dl.ambiweb.de/mirrors/ftp.alsa-project.org/lib/
alsa-lib-1.0.24.1.tar.bz2
alsa-utils-1.0.24.2.tar.bz2
在/home/wxl/work/alsa_arm目录下存放它们
2.编译安装alsa-lib
解压alsa-lib,然后进入解压后的目录
在终端下输入配置命令:
./configure --host=arm-linux --target=arm-linux --prefix=/usr/local/arm/4.5.1/arm-none-linux-gnueabi/lib/arm-alsa --enable-static --enable-shared --disable-python --with-configdir=/usr/share --with-plugindir=/usr/lib/alsa_lib
配置完成后编译:
make
编译完成后安装;
make install
3.编译安装alsa-utils
解压alsa-utils,然后进入解压后的目录
在终端下输入配置命令:
PKG_CONFIG_PATH="/usr/local/arm/4.5.1/arm-none-linux-gnueabi/lib/arm-alsa/lib/pkgconfig" \
LDFLAGS="-L/usr/local/arm/4.5.1/arm-none-linux-gnueabi/lib -lpthread -lc -lgcc" \
CFLAGS="-I/usr/local/arm/4.5.1/arm-none-linux-gnueabi/include" \
./configure \
--host=arm-linux \
--target=arm-linux \
--prefix=/home/wxl/work/alsa_arm/alsa_u \
--disable-alsamixer \
--disable-xmlto \
--with-alsa-prefix=/usr/local/arm/4.5.1/arm-none-linux-gnueabi/lib/arm-alsa/lib/ \
--with-alsa-inc-prefix=/usr/local/arm/4.5.1/arm-none-linux-gnueabi/lib/arm-alsa/include/
配置完成后编译:
make
编译完成后安装:
make install
4.将编译alsa-lib,alsa-utils所产生的4个目录复制到/home/wxl/nfs
四个目录:
/usr/local/arm/4.5.1/arm-none-linux-gnueabi/lib/arm-alsa
/usr/share/alsa
/usr/lib/alsa_lib
/home/wxl/work/alsa_arm/alsa_u
5.重新编译OK6410-A提供的linux内核linux3.0.1,在编译的时候添加浮点数支持
进入linux3.0.1的目录,输入命令:make menuconfig
然后配置内核:
Floating point emulation-->
将此目录下的浮点数支持选项全部选上,然后编译内核make zImage
6.目标板中挂载共享目录/home/wxl/nfs到/tmp目录
在超级终端下输入命令:mount -o nolock 192.168.0.178:/home/wxl/nfs /tmp
说明:192.168.0.178是PC的IP
7.将目标板挂载目录下的文件复制到正确的位置
在超级终端下进入/tmp目录
首先移植alsa_u中的文件:
cd /tmp/alsa_u
cp -r bin/* /bin
然后移植arm-alsa中的文件
cd /tmp/arm-alsa
cp -r lib/* /lib
然后移植alsa中的文件
cd /tmp
cp -r alsa/* /usr/share
到此alsa移植完成,alsa_lib中的文件不移植也可以
测试:
输入aplay ring.wav,可以听到铃声
----------------------
编程环境配置
code::blocks 配置 project build options-->Linker settings-->other link options 输入 -lasound
apt-get install libasound2-dev 解决error: alsa/asoundlib.h: No such file or directory