设为首页 加入收藏

TOP

ALSA移植到OK6410
2014-11-24 14:32:32 来源: 作者: 【 】 浏览:0
Tags:ALSA 移植 OK6410

环境:


目标板:OK6410-A



OK6410-A上有ALSA的驱动,不过没有ALSA的编程接口,所以我需要移植ALSA上去.




参考链接:


移植步骤:


1.首先下载必要的文件


下载页面:http://www.alsa-project.org/main/index.php/Download


alsa-lib-1.0.24.1.tar.bz2


alsa-utils-1.0.24.2.tar.bz2


我在/home/work2/alsa_arm目录下存放它们




2.编译安装alsa-lib


解压alsa-lib,然后进入解压后的目录


在终端下输入配置命令:


./configure --host=arm-linux --target=arm-linux --prefix=/opt/FriendlyARM/toolschain/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="/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/arm-alsa/lib/pkgconfig" \
LDFLAGS="-L/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib -lpthread -lc -lgcc" \
CFLAGS="-I/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/include" \
./configure \
--host=arm-linux \
--target=arm-linux \
--prefix=/home/work2/alsa_arm/alsa_u \
--disable-alsamixer \
--disable-xmlto \
--with-alsa-prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/arm-alsa/lib/ \
--with-alsa-inc-prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/arm-alsa/include/


配置完成后编译:


make


编译完成后安装:


make install



到此alsa编程接口库编译完毕,接下来移植到6410.


4.在fedora下新建一个目录/forlinux/root,将此目录配置为nfs的共享目录



5.将编译alsa-lib,alsa-utils所产生的4个目录复制到/forlinux/root


四个目录:


/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/arm-alsa


/usr/share/alsa


/usr/lib/alsa_lib


/home/work2/alsa_arm/alsa_u




6.重新编译OK6410-A提供的linux内核linux2.6.36,在编译的时候添加浮点数支持


进入2.6.36的目录,输入命令:make menuconfig


然后配置内核:


Floating point emulation-->


将此目录下的浮点数支持选项全部选上,然后编译内核make zImage


这一步的必要性说明:


我的fedora下的交叉编译器的版本是4.5.1,飞凌公司提供的zImage是用4.3.2.我用飞凌提供的zImage配套他们公司提供的文件系统,移植alsa后发现启动aplay会出现错误illegal instruction。此错误应该是编译器版本不一致导致的(虽然运行其他用4.5.1编译的程序不报错)。不过另有人说是浮点数支持没开启导致的,所以我在用4.5.1重新编译内核的时候添加了浮点数支持。




7.目标板中挂载fedora的共享目录/forlinux/root到/tmp目录


在超级终端下输入命令:mount -o nolock 192.168.0.238:/forlinux/root /tmp


说明:192.168.0.238是fedora的IP




8.将目标板挂载目录下的文件复制到正确的位置


在超级终端下进入/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,可以听到铃声.


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇关于在Java中弹出确定取消的对话.. 下一篇二叉查找树 Java实现

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: