内容发布更新时间 : 2024/11/5 19:41:37星期一 下面是文章的全部内容请认真阅读。
在移植alsa-lib和alsa-utils之前首先要移植alsa-device,保证系统支持alsa驱动,移好alsa-device后再dev/snd后出现相应的设备:
? ? ? ? ? ?
controlC0 --> 用于声卡的控制,例如通道选择,混音,麦克风的控制等 midiC0D0 --> 用于播放midi音频 pcmC0D0c --〉 用于录音的pcm设备 pcmC0D0p --〉 用于播放的pcm设备 seq --〉 音序器 timer --〉 定时器
1. tar -xvf alsa-lib_1.0.23.orig.tar.bz2 (1) 配置alsa-lib
./configure --host=arm-fsl-linux-gnueabi
--prefix=/opt/ALSA/alsa_lib
CC=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gcc
error:
configure error required courses helper header not found 安装libncursesw5-dev。apt-get install libncursesw5-dev
configure: error: panelw library not found ./configure加入 --with-curses=ncurses
/bin/bash: xmlto: command not found 安装xmlto
/bin/rm: cannot remove `libtoolt': No such file or directory 强制make!
(2) make
make install 生成的库
alsa_lib$ ls
bin include lib share
在这个文件lib下的库*.so.*是要发布到板子上去的,可以直接copy到开发板的根目录lib下
(这里只是copy,不要剪贴,后面还要用到,注意的是有些软连接不能copy,只能自己到板子上创建。。。)
2. tar -xvf alsa-utils-1.0.23.tar.bz2
./configure --host=arm-fsl-linux-gnueabi --prefix=/opt/ALSA/alsa_utils/
--with-alsa-inc-prefix=/opt/ALSA/alsa_lib/include/ --with-alsa-prefix=/opt/ALSA/alsa_lib/lib/ --disable-alsamixer --disable-xmlto 注:
--with-alsa-inc-prefix:指定头文件为alsa-lib编译出来的头文件路径 --with-alsa-prefix:指定库文件为alsa-lib编译出来的库文件路径 error:
mv: cannot stat `t-ja.gmo': No such file or directory 解决方法是下载gettext: apt-get install gettext make
make install
成功以后,你会在自己的alsa-utils安装路径下的bin目录下见到生成的工具
aconnect amidi amixer aplay aplaymidi arecord arecordmidi aseqdump aseqnet iecset speaker-test
3.alsa_lib
cp ALSA/alsa_lib/lib/libasound.* ./nfsdir_linux/lib/ alsa的配置文件拷贝
除了库之外alsa的配置文件也需要拷贝到目标板根文件系统中,这里需要注意的是share目录在目标板的存放位置必须和在主机的存放路径一致,比如在主机上存放在/home/david/project/S5PC100/alsa/alsa-lib, 那么我们就得把share放在目标板上的这个路径里 cp -rf share /home/nfsdir_linux/home/ALSA/alsa_lib/
alsa_utils
将alsa-utils/bin目录下的内容拷贝到目标板根文件系统中的bin下 cp bin/* /home/nfsdir_linux/bin/ 4.测试
#cat /proc/asound/devices 0: [ 0] : control
16: [ 0- 0]: digital audio playback 24: [ 0- 0]: digital audio capture 33: : timer # ls -l /dev/snd/
crw-rw---- system audio 116, 33 1970-01-01 00:00 timer 定时器接口 crw-rw---- system audio 116, 0 1970-01-01 00:00 controlC0 控制接口 crw-rw---- system audio 116, 24 1970-01-01 00:00 pcmC0D0c PCM接口
crw-rw---- system audio 116, 16 1970-01-01 00:00 pcmC0D0p 如果没有snd目录则创建 播放wav文件