嵌入式linux系统移植alsa-lib

目录

1、入式linux的系统配置

2、下载源码

3、编译与安装

4、应用



1、入式linux的系统配置

主板类型为arm,

交叉编译器为gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf,

交叉编译器的路径为:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf , 

工作pc为ubuntu环境

2、下载源码

AlsaProject

假定下载的版本为alsa-lib-1.2.2

下载之后解压

tar -vxjf alsa-lib-1.2.2.tar.bz2 //解压 alsa-lib

3、编译与安装

库移植的一般步骤:编译、安装、拷贝库文件到开发板

在ubuntu建立如下路径

cd /usr/share
sudo mkdir arm-alsa

进入alsa-lib代码解压路径

cd alsa-lib-1.2.2/

配置alsa-lib的编译

./configure CC=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf-gcc STRIP=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf-strip --host=arm-linux-gnueabihf --prefix=/home/jerry/linux/open_lib/alsa/alsa-lib --with-configdir=/usr/share/arm-alsa

其中host是配置交叉编译环境

prefix是配置安装后生成的lib文件位置

with-configdir是配置安装文件所在位置,尤其是指定了alsa.conf的目录

这里专门配置CC和STRIP,否则则使用strip进行动态库瘦身的时候,可能会遇到File format not recognized的错误问题

如果配置过程中遇到automake的版本问题,可以采取如下办法解决

autoscan 
aclocal
autoconf
automake --add-missing

然后

make
sudo make install

如果出现libatopology.la 编译失败,则切换到root用户重新进行安装,然后再切回原来的用户

sudo -s
source /etc/profile
make install
su jerry

安装成功后,可以看到/usr/share/arm-alsa目录(编译选项with-coigenfigdir配置的路径),生成了

alsa.conf文件和cards、pcm两个文件夹

/home/jerry/linux/open_lib/alsa/alsa-lib路径下则生成了bin、include、lib、share四个文件夹,其中lib文件中保存着具体的alsa-lib库文件

述配置安装方式,生成的库文件是动态链接库,如果直接移植到嵌入式系统,所占空间可能有点多,可以使用如下方式进行动态库瘦身,其中xxx为待瘦身的动态库文件名

cd alsa-lib/lib

/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip xxx.so

接下来将上述文件拷贝到开发板上

其中/home/jerry/linux/open_lib/alsa/alsa-lib/lib目录(也就是编译选项prefix配置的路径)下的所有库文 件拷贝到根目录系统的/lib目录下(也可以是别的目录,只要将该目录加入环境变量即可)

如果开发板没有/usr/share/arm-alsa目录,则建立该目录,然后将/usr/share/arm-alsa目录下的所有文件全部拷贝到开发板的/usr/share/arm-alsa目录

在开发板上,增加如下环境变量声明

export ALSA_CONFIG_PATH=/usr/share/arm-alsa/alsa.conf

ALSA_CONFIG_PATH 用于指定 alsa 的配置文件

4、应用

将prefix配置路径下的所有文件,拷贝出来,就可以进行各种应用开发

你可能感兴趣的:(linux,linux)