交叉编译alsa工具
alsa1.2.6编译脚本libCC=aarch64-himix210-linux-gcc \
./configure —host=aarch64-himix210-linux \
—prefix=$PWD/_install
make
make install utilsCC=aarch64-himix210-linux-gcc \
./configure —prefix=$PWD/_install \
—host=aarch64-himix210-linux \
—with-alsa-inc-prefix=$PWD/../alsa-lib-1.2.6.1/_install/include/ \
—with-alsa-prefix=$PWD/../alsa-lib-1.2.6.1/_install/lib \
—disable-alsamixer \
—disable-xmlto \
—disable-nls
make
sudo make install 添加配置文件路径交叉编译alsa工具后,工具寻找alsa.conf文件始终去找虚拟机的编译目录,configure修改datarootdir后仍无法指定;报错如下:
Cannot access file /home/leo/HI_SDK/3531DV200/v2.0.2.0/Hi3531DV200_SDK_V2.0.2.0/osdrv/tools/board/alsa/alsa-lib-1.2.6.1/_install/share/alsa/alsa.conf
解决方法:
在代码中找到alsa.conf相关的宏,到arm下export指定路径
export ALSA_CONFIG_PATH=/usr/share/alsa.conf注:alsa框架常配合USB Audio设备使用
ALSA音频工具
列出声卡和数字音频设备./aplay -l
card 0: SOUND0 [TI81XX SOUND0], device 0: TVP-PCM tvp5158-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: SOUND0 [TI81XX SOUND0], device 1: AIC3X tlv320aic3x-hifi-1 []
Subdevices: 1/1
Subdevice #0: subdevice #0根据上面列出的设备,如果选择tvp5158来录制声音的话那么pcm设备就位hw0,0,如果是tlv320aic3x则pcm设备为hw0,1。
设备以hwx,x开头,前一个x为声卡号(card),后一个x为设备号(device) 参数-D参数用于指定音频设备PCM
-r指定采样频率:
5512/8000/11025/16000/22050/32000/44100/48000/64000/88200/96000/176400/192000
-f指定采样格式上面列出了:cd/cdr/dat/S16_LE/S32_LE/…
-f cd (16 bit little endian, 44100, stereo)
-f cdr (16 bit big endian, 44100, stereo)
-f dat (16 bit little endian, 48000, stereo)
-t 指定文件类型 (voc, wav, raw or au) 播放./aplay -Dhw:0,0 -r48000 -f cd /nfsroot/alsa/audio.pcm
录音./arecord -Dhw:0,0 -r48000 -f S16_LE -c 2 /nfsroot/alsa/audio.pcm
./arecord -Dhw:0,0 -r48000 -f cd /nfsroot/alsa/audio.pcm 同时录音且播放利用管道的命令:
./arecord -Dhw:0,1 -r48000 -f cd|./aplay -Dhw:0,1 -r48000免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:交叉编译alsa工具,笔记记录-交叉编译工具链使用 https://www.yhzz.com.cn/a/10106.html