alsa-lib alsa-utils unicore32 编译

下载alsa-lib-1.0.26.tar.bz2  alsa-utils-1.0.26.tar.bz2

将alsa-lib目录下的config.sub做如下修改:

# Decode aliases for certain CPU-COMPANY combinations.
case $basic_machine in
        # Recognize the basic CPU types without company name.
        # Some are omitted here because they have special meanings below.
        1750a | 580 \
        | a29k \
        | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
        | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
        | am33_2.0 \
        | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
        | unicore32 \
        | be32 | be64 \
        | bfin \
        | c4x | clipper \
        | d10v | d30v | dlx | dsp16xx \
        | epiphany \
        | fido | fr30 | frv \
        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
        | hexagon \
        | i370 | i860 | i960 | ia64 \
        | ip2k | iq2000 \
        | le32 | le64 \
        # Recognize the basic CPU types with company name.
        580-* \
        | a29k-* \
        | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
        | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
        | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
        | unicore32-* \
        | avr-* | avr32-* \
        | be32-* | be64-* \
        | bfin-* | bs2000-* \
        | c[123]* | c30-* | [cjt]90-* | c4x-* \
        | clipper-* | craynv-* | cydra-* \
        | d10v-* | d30v-* | dlx-* \

在根目录下建立alsa_test目录,chmod o+rwx alsa_test

在alsa-lib目录下执行:

./configure --host=unicore32-linux --prefix=/alsa_test/ --enable-shared=yes --disable-python

make

make install

 

同样在alsa-utils目录下修改config.sub文件(同上所示,添加unicore支持)

在alsa-lib目录下执行:

./configure --host=unicore32-linux --prefix=/alsa_test/  --with-alsa-inc-prefix=/alsa_test/include/  --with-alsa-prefix=/alsa_test/lib/  --disable-xmlto --disable-alsamixer

make

sudo make install

在/alsa_test/bin/ 目录下生成aplay,由于是动态编译(实际上我想静态编译,可是虽然能生成静态库,但是静态可执行文件却不知如何在alsa-utils/configure下配置,所以先只生成了动态可执行文件),用unicore32-linux-readelf -d | grep NEEDED 分析出所需要的动态库,将所需的库文件以及库文件的链接文件拷贝到开发板文件系统的

/lib目录下(实际上因为LD_LIBRARY_PATH中含有/lib目录才放在该目录下),我拷贝了如下文件:

-rwxr-xr-x 1 ryoma ryoma  679871 Mar 16 10:37 ld-2.9.so
lrwxrwxrwx 1 ryoma ryoma       9 Mar 16 10:37 ld-linux.so.2 -> ld-2.9.so
lrwxrwxrwx 1 root  root       18 Mar 16 13:13 libasound.so -> libasound.so.2.0.0
lrwxrwxrwx 1 root  root       18 Mar 16 13:13 libasound.so.2 -> libasound.so.2.0.0
-rwxr-xr-x 1 ryoma ryoma 1675849 Mar 16 13:13 libasound.so.2.0.0
-rwxr-xr-x 1 ryoma ryoma 8517614 Mar 16 10:30 libc-2.9.so
lrwxrwxrwx 1 ryoma ryoma      11 Mar 16 10:35 libc.so.6 -> libc-2.9.so
-rwxr-xr-x 1 ryoma ryoma  107467 Mar 16 10:28 libdl-2.9.so
lrwxrwxrwx 1 ryoma ryoma      12 Mar 16 10:35 libdl.so.2 -> libdl-2.9.so
-rw-r--r-- 1 root  root   350929 Mar 16 13:25 libgcc_s.so.1
-rwxr-xr-x 1 ryoma ryoma 1199290 Mar 16 10:27 libm-2.9.so
lrwxrwxrwx 1 ryoma ryoma      11 Mar 16 10:35 libm.so.6 -> libm-2.9.so
-rwxr-xr-x 1 ryoma ryoma  803814 Mar 16 10:29 libpthread-2.9.so
lrwxrwxrwx 1 ryoma ryoma      17 Mar 16 10:35 libpthread.so.0 -> libpthread-2.9.so
-rwxr-xr-x 1 ryoma ryoma  177129 Mar 16 10:26 librt-2.9.so
lrwxrwxrwx 1 ryoma ryoma      12 Mar 16 10:34 librt.so.1 -> librt-2.9.so

其中libgcc_s.so.1是在运行时发现不对的(不知为何readelf -d没有分析出来)

将alsa_test目录及其内容全部拷贝到开发板的根目录下,将alsa_test/bin/aplay拷贝到开发板文件体系中的/bin/目录下,经过测试可以放音。

注:

       1、非arm所以要修改config.sub文件

       2、./configure在配置的严格些生成少的文件

       3、静态可执行文件暂时不知如何生成

       4、aplay录音暂未测试

posted on 2013-03-16 13:50  阿加  阅读(1044)  评论(0)    收藏  举报

导航