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录音暂未测试
浙公网安备 33010602011771号