應用層alsa_lib和alsa_utils工具移植詳解

應用層alsa lib和utils工具移植詳解

在移植alsa的lib和utils工具包時前需要準備三個包(都可以在china unix上下載到):

1. alsa-lib (應用程序使用的alsa庫)

2. alsa-utils (測試音頻使用的各種工具)

3. libiconv (用來編碼轉換的庫)

第一步:移植alsa-lib。解壓出音頻庫的源碼,如tar xvjf alsa-lib-1.0.22.tar.bz2,再cd alsa-lib-1.0.22,生成Makefile,使用命令如下:


CC=arm-linux-gcc ./configure--host=arm-linux --prefix=$PWD/../install_path --enable-static --enable-shared--disable-python --with-configdir=/tmp/local/share--with-plugindir=/tmp/local/lib/alsa_lib


注意:configdir可以任意指定配置文件的路徑,但plugindir路徑不能更改。成功生成Makefile之後,執行make進行編譯,若編譯中提示'

atomic_add'之類的重複定義的錯誤,則將configure和configure.in中

“-D__arm__”

給去掉。編譯通過之後,再執行make install進行安裝,安裝成功後會在$PWD/../install_path下的lib目錄看到生成的相關庫文件。在開發板上發佈alsa庫.除了libasound.so相關

庫(/lib下的所有庫)拷貝到開發板的lib目錄外,必須還要把 alsa.conf相關文件(所在路徑下的所有文件及文件夾)發佈到板上–with-configdir所指向目錄下的alsa目錄(注意:在所有生成的lib文件的拷貝過程一定要使用cp -P來拷貝,防止拷貝過程中的軟連接丟失),否則會報”audio open error: No such file or directory”。該文件可以在make install後

在你安裝目錄下的share找到alsa目錄,把這個目錄整個拷貝到開發板的/tmp/local/share目錄下(開發板上沒有local和share文件夾時手動創建)。

第二步:安裝libiconv(libiconv-1.14.tar.gz)。將下載的libiconv進行解壓,進入解壓後的libiconv目錄,執行:

CC=arm-linux-gcc ./configure--host=arm-linux --prefix=$PWD/../install_path --enable-static --enable-shared


生成Makefile,再執行make進行編譯。若編譯過程中提示如下錯誤:

/******make報錯:stdio.h:1010:1:error: 'gets' undeclared here (not in a function)

解決:修改srclib/stdio.in.h 第695行

將:_GL_WARN_ON_USE (gets, "gets is a security hole - use fgetsinstead");

改爲如下三行:

#if defined(__GLIBC__) &&!defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)

_GL_WARN_ON_USE (gets, "gets is asecurity hole - use fgets instead");

#endif

最後執行make install進行安裝。安裝完成之後會在$PWD/../install_path下生成相應的庫文件。

第三步:移植alsa-utils(alsa-utils-1.0.20)。解壓出alsa-utils包,進入解壓的目錄,執行:

CC=arm-linux-gcc ./configure--host=arm-linux --prefix=$PWD/../install_path --enable-static --enable-shared--with-configdir=/tmp/local/share --with-libiconv-prefix=$PWD/../install_pathCFLAGS="-I$PWD/../install_path/include"LDFLAGS="-L$PWD/../install_path/lib -lasound -liconv"--disable-alsamixer --disable-xmlto


來生成Makefile,再執行make進行編譯。若編譯中提示' atomic_add'之類的重複定義的錯誤,則將configure和configure.in中

“-D__arm__”

給去掉。編譯通過之後,再執行make install。成功之後就會在安裝目錄的bin目錄下看到alsa utils的各個工具,拷貝到開發板的bin目錄下就可以測試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章