交叉编译 alsa

apn_gcp 2017-11-21 13:53:36 3219

一、alsa-lib-1.0.23移植:
1、configure

./configure --host=arm-none-linux-gnueabi --prefix=/home/linux/tools/arm_install/alsa/alsa-lib-1.0.23 --enable-static --enable-shared --disable-python --with-alsa-devdir=/dev --with-configdir=/usr/local/share/alsa --with-plugindir=/usr/local/lib/alsa_lib

配置会先对此命令中的配置项进行检查,然后实现配置。需要注意的是:配置如果出错,未必一定报错,而是会采用默认的配置选项。几个重要的配置项:
1)、--host 指定编译器,这里指定为交叉编译器。注意运行本配置命令前务必保证编译器已经可以在 Shell下直接执行了
2)、--prefix 指定编译后文件的安装路径,后续的安装命令会在该目录中创建 lib 和 include 两个目录
3)、--with-configdir 指定 conf 文件的安装目录,该目录中对我们最有用的 alsa.conf ,此文件会被直接移植到你的目标系统中
4)、--with-alsa-devdir 指定音频设备文件的目录。例如在/dev/ 目录下有(pcmC0D0c/pcmC0D0p/pcmC0D1p等)
但是有些设备的设备文件是在 /dev/snd/ (pcmC0D0c/pcmC0D0p/pcmC0D1p等。
所以"--with-alsa-devdir"是改变设备文件的选项,我的设备文件时在/dev/ 目录下,所以就是--with-alsa-devdir=/dev

2、make

make or sudo make

3、安装编译好的文件
su root //这里面为什么进入root用户,因为我sudo make install一直错误,我完全进入root用户后问题就解决了
make install

二、alsa-utils-1.0.23移植:

1、Configure

./configure --host=arm-none-linux-gnueabi --prefix=/home/linux/tools/arm_install/alsa/alsa-utils-1.0.23 --with-alsa-inc-prefix=/home/linux/tools/arm_install/alsa/alsa-lib-1.0.23/include --with-alsa-prefix=/home/linux/tools/arm_install/alsa/alsa-lib-1.0.23/lib --with-configdir=/usr/locale/share --disable-alsamixer --disable-xmlto

主要的配置选项:
1)、--host 指定编译器,与 lib 的配置选项相同
2)、--prefix 指定编译后文件的安装路径,与 lib 的配置选项相同
3)、--with-alsa-inc-prefix用来指定alsa-lib编译好的文件的include目录
4)、--with-alsa-prefix用来指定alsa-lib编译好的文件的lib目录

2、编译
make

3、安装编译好的文件
su root
make install

三、将 lib 和 utils 文件系统中,在目标板上,以下文件必须被拷贝至对应位置:

alsa-lib的库文件
1、cp /home/linux/tools/arm_install/alsa/alsa-lib-1.0.23/lib/lib* /source/rcar/rootfs/lib

拷贝alsa配置文件到 /usr/share/ 下
2、cp /usr/local/share/alsa /source/rcar/rootfs/usr/share

并且设置环境变量
export ALSA_CONFIG_PATH=/usr/share/alsa/alsa.conf

utils能产生 aplay,amixer,arecord 可执行程序,这些文件可放在 /usr/sbin 中
3、cp /home/linux/tools/arm_install/alsa/alsa-utils-1.0.23 /source/rcar/rootfs/usr/bin

4、根据自己平台关于声卡设备的设备文件所在的目录进行调整,常见的是"/dev/" 和"/dev/snd"
controlC0, pcmC0D0c, pcmC0D0p, timer等

四、运行测试程序

//播放wave文件
apply test.wav

//改变test.wav的频率播放文件
apply -D rate_44k test.wav

//录音,以20秒的间隔时间(-d 20),立体声(-c 2),频率是8000HZ来录制wave格式音频
arecord -d 20 -c 2 -t wav -r 8000 -f "Singed 16 bit Little Endian" test.wav

//测试混音播放(先是播放test1.wav,然后再同时播放test2.wav)
aplay -D plug:dmix_44k test1.wav &
aplay -d plug:dmix_44k test2.wav &

//设置放音增益(0 to 3)
amixer set Master 1

//设置录音音量(0-31)
amixer set Line 10

//单声道录音
arecord -d 10 -t wav -c1 -r 22050 -f S16_LE test.wav

//立体声录音
arecord -d 10 -t wav -c2 -r 22050 -f S16_LE test1.wav

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
apn_gcp
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
关于作者
apn_gcp

apn_gcp

暂无个性签名~

原创4
阅读1.3w
收藏0
点赞0
评论0
打赏用户 0
我要创作
分享技术经验,可获取创作收益
分类专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
apn_gcp
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区