alsa编译及使用
来源:互联网 发布:学生会网络技术部职责 编辑:程序博客网 时间:2024/05/29 12:34
开发平台:OrangePi
CPU:全志 H2+
虚拟机:Ubuntu 12.04 64位
注意:编译h2应用程序需使用gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux交叉编译工具,而不能使用OrangePi-Kernel\brandy\gcc-linaro里的arm-linux-gnueabi交叉编译工具
arm-linux-gnueabihf-gcc -v 查看是否安装成功alsa库及可执行程序是使用虚拟机中/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux编译器编译的,可使用在h2或其它开发板上.
使用下面的方法编译完成后,会在虚拟机/home目录下生成alsa目录,里面包含了alsa库及可执行文件.本目录中的alsa目录就是从/home中复制过来的.
一、编译alsa-lib
alsa编译安装路径默认为/usr,如果编译时指定路径 --prefix = xxx,则安装到板子上也必须为此路径,则编译时可使用两种方法:
1.编译时不指定路径,以免破坏板子的文件系统,但会改变/usr目录名称,如果操作不当会损坏ubuntu系统。
且本ubuntu系统更改环境变量后找不到arm-linux-gnueabihf-gcc编译器,所以暂不使用此方法。
cd /
mv /usr /usr_bk
echo $PATH
得到环境变量为:
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin
修改环境变量:
export PATH=/usr_bk/lib/lightdm/lightdm:/usr_bk/local/sbin:/usr_bk/local/bin:/usr_bk/sbin:/usr_bk/bin:/sbin:/bin:/usr_bk/games:/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin
./configure --host=arm-linux-gnueabihf --enable-shared --disable-python
make
sudo mkdir /usr
sudo chown book:book /usr
make install
sudo cp -rf /usr /work/projects/alsa/
sudo rm -rf /usr
sudo mv /usr_bak /usr
恢复环境变量:
export PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin
/*
把头文件和库复制进交叉工具链里
cd /work/projects/alsa/usr/include
sudo cp * -rfd /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
cd /work/projects/alsa/usr/lib
sudo cp * -rfd /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib
*/
把库复制到根文件系统的lib目录下
2.选定/home/alsa目录为存放alsa库编译结果的目录
首先将alsa-lib解压,将其目录里的所有文件拷贝到/home目录里。如果选择其它目录,在下面make时会抱错smixer-sbase.la libtool: link: only absolute run-paths are allowed,网络上没有找到好的解决办法,猜想是路径的问题,使用此方法得以解决。
./configure --host=arm-linux-gnueabihf --prefix=$PWD/alsa --enable-shared --disable-python --with-configdir=$PWD/alsa/alsa_lib/share --with-plugindir=$PWD/alsa/alsa_lib/lib
make
make install
二、编译alsa-utils
./configure --host=arm-linux-gnueabihf --prefix=$PWD/alsa CFLAGS="-I/home/alsa/include" LDFLAGS="-L/home/alsa/lib -lasound" --disable-alsamixer --disable-xmlto --disable-nls
这里,如果不指定--disable-nls,会报cannot stat 't-ja.gmo'的错。
make
make install
三、拷贝到板子上,运行
1编译完成后,会在/home/alsa目录里得到alsa可执行文件、库文件、头文件。
2将alsa目录拷贝到板子/home文件夹下
3将alsa/lib里的所有文件拷贝到开发板/usr/lib目录下,如果不拷贝,在运行aplay\arecord等程序时会提示找不到libasound.so动态链接库
cp alsa/lib/* -rf /usr/lib
4运行
cd /home/alsa/bin
录音:
./arecord -d 10 -f cd test.wav //以CD质量录制test.wav文件10秒钟.
./arecord -d 10 -r 48000 test.wav
调节音量:
amixer controls
amixer cget numid=1
amixer cset numid=1 30
阅读全文
0 0
- alsa编译及使用
- alsa-lib, alsa-utils交叉编译及在嵌入式上使用
- ALSA-lib/utils 编译移植 及 问题解决
- 编译alsa-lib, alsa-util以使用声卡
- Android中使用ALSA声卡及alsa.conf asound.conf
- Android中使用ALSA声卡及alsa.conf asound.conf
- Android中使用ALSA声卡及alsa.conf asound.conf
- alsa编译
- Linux ALSA声卡介绍及使用
- Linux ALSA声卡介绍及使用
- linux驱动:音频驱动(七)交叉编译alsa库及工具集alsa-utils
- alsa-lib和alsa-util安装编译及开发板移植
- 交叉编译alsa lib
- alsa-lib编译
- 交叉编译alsa-lib
- ALSA音频工具编译安装
- alsa交叉编译
- 杂谈:交叉编译alsa
- 已解决:去掉myeclipse的web项目启动时右上角出现的CodeLive Panel
- JVM内存划分、JVM内存分配机制、JVM垃圾回收机制
- 两个栈实现队列,两个队列实现栈
- PHP垃圾回收
- 575. Distribute Candies
- alsa编译及使用
- 海量数据的处理
- jetty 启动项目报错:java.lang.ArrayIndexOutOfBoundsException: 52264
- 另一种创建线程的方式
- subscript下标
- 前端UI框架《Angulr》入门
- numpy矩阵中添加行/列
- 简单的几种排序算法
- 如何在Eclipse下查看JDK源代码以及java源代码阅读方法