初级会员

- 积分
- 194
- 金钱
- 194
- 注册时间
- 2012-4-4
- 在线时间
- 46 小时
|
本帖最后由 fuqiye 于 2016-1-15 11:42 编辑
alsa-1.0.27.2在AM335X上移植
平台说明 Alsa-lib 版本: alsa-lib-1.0.27.2 Alsa-utils版本: alsa-utils-1.0.27.2 Linux 版本: ubuntu 15.04(编译主机) GCC 版本: gcc version 4.7.3 20130226 (prerelease)(crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03)
硬 件 平 台: 自制硬件板子(VoipServer-V0.0.1)
/*****************************************************************************************************************************/
开始:
1、编译与按装alsa-lib
将源码解压到自定义一个目录下
#cd /home/voip_server_am335x_project/app/alsa/
#tar xvjf alsa-lib-1.0.27.2.tar.bz2
#cd alsa-lib-1.0.27.2
./configure配置Makefile
#./configure CC=arm-linux-gnueabihf-gcc --host=arm-linux-gnueabihf --disable-static --enable-shared --disable-python --prefix=/home/voip_server_am335x_project/app/alsa/alsainstall/alsa_lib --with-configdir=/usr/share/alsa
说明:
(1) 如果需要自定义include/config.h中ALSA_CONFIG_DIR的值,可通过参数--with-configdir指定,即alsa.conf文件安装路径,默认值是--prefix指定的路径值/share/alsa/
(2) 如果需要自定义include/config.h中ALSA_PLUGIN_DIR的值,可通过参数--with-plugindir指定,即smixer的安装路径,默认值是--prefix指定的路径值/lib/alsa-lib/
编译源码
#make
编译源码按装到指定目录下(就是刚才--prefix指定的目录^_^)
#make install
2、编译与按装alsa-utils 将源码解压到自定义一个目录下
#cd /home/voip_server_am335x_project/app/alsa/
#tar xvjf alsa-utils-1.0.27.2.tar.bz2
#cd alsa-utils-1.0.27.2
./configure配置Makefile
#./configure CC=arm-linux-gnueabihf-gcc --host=arm-linux-gnueabihf --disable-alsamixer -disable-xmlto CPPFLAGS=-I/home/voip_server_am335x_project/app/alsa/alsainstall/alsa_lib/include/ LDFLAGS=-L/home/voip_server_am335x_project/app/alsa/alsainstall/alsa_lib/lib/ --with-alsa-prefix=/home/voip_server_am335x_project/app/alsa/alsainstall/alsa_lib/lib/ --with-alsa-inc-prefix=/home/voip_server_am335x_project/app/alsa/alsainstall/alsa_lib/include/ --prefix=/home/voip_server_am335x_project/app/alsa/alsainstall/alsa_utils/
编译源码
#make
编译源码按装到指定目录下(就是刚才--prefix指定的目录^_^)
#make install
3、运行测试 将编译好的aplay、amixer、arecord这三个常用的程序复制到板子的/usr/sbin/目录下(这三个文件在alsa-utils配置时--prefix指定的目录下了)
将编译好的/share/alsa/下的 alsa.conf文件cards、pcm、smixer三个文件夹复制到板子/usr/share/alsa/目录下(这几个东西在alsa-lib配置时--with-configdir指定的目录下了)
播放wav文件测试
#aplay xxxx.wav
可以听到声音了^_^
可音量很小T_T
用amixer调节一下
#amixer -h
Usage: amixer <options> [command]
Available options:
-h,--help this help
-c,--card N select the card
-D,--device N select the device, default 'default'
-d,--debug debug mode
-n,--nocheck do not perform range checking
-v,--version print version of this program
-q,--quiet be quiet
-i,--inactive show also inactive controls
-a,--abstract L select abstraction level (none or basic)
-s,--stdin Read and execute commands from stdin sequentially
-R,--raw-volume Use the raw value (default)
-M,--mapped-volume Use the mapped volume
Available commands:
scontrols show all mixer simple controls
scontents show contents of all mixer simple controls (default command)
sset sID P set contents for one mixer simple control
sget sID get contents for one mixer simple control
controls show all controls for given card
contents show contents of all controls for given card
cset cID P set control contents for one control
cget cID get control contents for one control
#amixer controls
numid=5,iface=MIXER,name='PCM Playback Volume'
numid=26,iface=MIXER,name='Line DAC Playback Volume'
numid=24,iface=MIXER,name='Line Line2 Bypass Volume'
numid=25,iface=MIXER,name='Line PGA Bypass Volume'
numid=33,iface=MIXER,name='Line Playback Switch'
numid=3,iface=MIXER,name='Mono DAC Playback Volume'
numid=1,iface=MIXER,name='Mono Line2 Bypass Volume'
numid=49,iface=MIXER,name='Mono Mixer DACL1 Switch'
numid=52,iface=MIXER,name='Mono Mixer DACR1 Switch'
numid=47,iface=MIXER,name='Mono Mixer Line2L Bypass Switch'
numid=50,iface=MIXER,name='Mono Mixer Line2R Bypass Switch'
numid=48,iface=MIXER,name='Mono Mixer PGAL Bypass Switch'
numid=51,iface=MIXER,name='Mono Mixer PGAR Bypass Switch'
numid=2,iface=MIXER,name='Mono PGA Bypass Volume'
numid=4,iface=MIXER,name='Mono Playback Switch'
numid=46,iface=MIXER,name='ADC HPF Cut-off'
numid=36,iface=MIXER,name='AGC Switch'
numid=43,iface=MIXER,name='De-emphasis Switch'
numid=29,iface=MIXER,name='HP DAC Playback Volume'
numid=27,iface=MIXER,name='HP Line2 Bypass Volume'
numid=28,iface=MIXER,name='HP PGA Bypass Volume'
numid=34,iface=MIXER,name='HP Playback Switch'
numid=32,iface=MIXER,name='HPCOM DAC Playback Volume'
numid=30,iface=MIXER,name='HPCOM Line2 Bypass Volume'
numid=31,iface=MIXER,name='HPCOM PGA Bypass Volume'
numid=35,iface=MIXER,name='HPCOM Playback Switch'
numid=39,iface=MIXER,name='Left AGC Attack time'
numid=41,iface=MIXER,name='Left AGC Decay time'
numid=37,iface=MIXER,name='Left AGC Target level'
numid=108,iface=MIXER,name='Left DAC Mux'
numid=73,iface=MIXER,name='Left HP Mixer DACL1 Switch'
numid=14,iface=MIXER,name='Left HP Mixer DACR1 Playback Volume'
numid=76,iface=MIXER,name='Left HP Mixer DACR1 Switch'
numid=71,iface=MIXER,name='Left HP Mixer Line2L Bypass Switch'
numid=74,iface=MIXER,name='Left HP Mixer Line2R Bypass Switch'
numid=12,iface=MIXER,name='Left HP Mixer Line2R Bypass Volume'
numid=72,iface=MIXER,name='Left HP Mixer PGAL Bypass Switch'
numid=75,iface=MIXER,name='Left HP Mixer PGAR Bypass Switch'
numid=13,iface=MIXER,name='Left HP Mixer PGAR Bypass Volume'
numid=61,iface=MIXER,name='Left HPCOM Mixer DACL1 Switch'
numid=20,iface=MIXER,name='Left HPCOM Mixer DACR1 Playback Volume'
numid=64,iface=MIXER,name='Left HPCOM Mixer DACR1 Switch'
numid=59,iface=MIXER,name='Left HPCOM Mixer Line2L Bypass Switch'
numid=62,iface=MIXER,name='Left HPCOM Mixer Line2R Bypass Switch'
numid=18,iface=MIXER,name='Left HPCOM Mixer Line2R Bypass Volume'
numid=60,iface=MIXER,name='Left HPCOM Mixer PGAL Bypass Switch'
numid=63,iface=MIXER,name='Left HPCOM Mixer PGAR Bypass Switch'
numid=19,iface=MIXER,name='Left HPCOM Mixer PGAR Bypass Volume'
numid=107,iface=MIXER,name='Left HPCOM Mux'
numid=85,iface=MIXER,name='Left Line Mixer DACL1 Switch'
numid=8,iface=MIXER,name='Left Line Mixer DACR1 Playback Volume'
numid=88,iface=MIXER,name='Left Line Mixer DACR1 Switch'
numid=83,iface=MIXER,name='Left Line Mixer Line2L Bypass Switch'
numid=86,iface=MIXER,name='Left Line Mixer Line2R Bypass Switch'
numid=6,iface=MIXER,name='Left Line Mixer Line2R Bypass Volume'
numid=84,iface=MIXER,name='Left Line Mixer PGAL Bypass Switch'
numid=87,iface=MIXER,name='Left Line Mixer PGAR Bypass Switch'
numid=7,iface=MIXER,name='Left Line Mixer PGAR Bypass Volume'
numid=99,iface=MIXER,name='Left Line1L Mux'
numid=98,iface=MIXER,name='Left Line1R Mux'
numid=97,iface=MIXER,name='Left Line2L Mux'
numid=100,iface=MIXER,name='Left PGA Mixer Line1L Switch'
numid=101,iface=MIXER,name='Left PGA Mixer Line1R Switch'
numid=102,iface=MIXER,name='Left PGA Mixer Line2L Switch'
numid=103,iface=MIXER,name='Left PGA Mixer Mic3L Switch'
numid=104,iface=MIXER,name='Left PGA Mixer Mic3R Switch'
numid=45,iface=MIXER,name='PGA Capture Switch'
numid=44,iface=MIXER,name='PGA Capture Volume'
numid=40,iface=MIXER,name='Right AGC Attack time'
numid=42,iface=MIXER,name='Right AGC Decay time'
numid=38,iface=MIXER,name='Right AGC Target level'
numid=106,iface=MIXER,name='Right DAC Mux'
numid=17,iface=MIXER,name='Right HP Mixer DACL1 Playback Volume'
numid=67,iface=MIXER,name='Right HP Mixer DACL1 Switch'
numid=70,iface=MIXER,name='Right HP Mixer DACR1 Switch'
numid=65,iface=MIXER,name='Right HP Mixer Line2L Bypass Switch'
numid=15,iface=MIXER,name='Right HP Mixer Line2L Bypass Volume'
numid=68,iface=MIXER,name='Right HP Mixer Line2R Bypass Switch'
numid=66,iface=MIXER,name='Right HP Mixer PGAL Bypass Switch'
numid=16,iface=MIXER,name='Right HP Mixer PGAL Bypass Volume'
numid=69,iface=MIXER,name='Right HP Mixer PGAR Bypass Switch'
numid=23,iface=MIXER,name='Right HPCOM Mixer DACL1 Playback Volume'
numid=55,iface=MIXER,name='Right HPCOM Mixer DACL1 Switch'
numid=58,iface=MIXER,name='Right HPCOM Mixer DACR1 Switch'
numid=53,iface=MIXER,name='Right HPCOM Mixer Line2L Bypass Switch'
numid=21,iface=MIXER,name='Right HPCOM Mixer Line2L Bypass Volume'
numid=56,iface=MIXER,name='Right HPCOM Mixer Line2R Bypass Switch'
numid=54,iface=MIXER,name='Right HPCOM Mixer PGAL Bypass Switch'
numid=22,iface=MIXER,name='Right HPCOM Mixer PGAL Bypass Volume'
numid=57,iface=MIXER,name='Right HPCOM Mixer PGAR Bypass Switch'
numid=105,iface=MIXER,name='Right HPCOM Mux'
numid=11,iface=MIXER,name='Right Line Mixer DACL1 Playback Volume'
numid=79,iface=MIXER,name='Right Line Mixer DACL1 Switch'
numid=82,iface=MIXER,name='Right Line Mixer DACR1 Switch'
numid=77,iface=MIXER,name='Right Line Mixer Line2L Bypass Switch'
numid=9,iface=MIXER,name='Right Line Mixer Line2L Bypass Volume'
numid=80,iface=MIXER,name='Right Line Mixer Line2R Bypass Switch'
numid=78,iface=MIXER,name='Right Line Mixer PGAL Bypass Switch'
numid=10,iface=MIXER,name='Right Line Mixer PGAL Bypass Volume'
numid=81,iface=MIXER,name='Right Line Mixer PGAR Bypass Switch'
numid=91,iface=MIXER,name='Right Line1L Mux'
numid=90,iface=MIXER,name='Right Line1R Mux'
numid=89,iface=MIXER,name='Right Line2R Mux'
numid=93,iface=MIXER,name='Right PGA Mixer Line1L Switch'
numid=92,iface=MIXER,name='Right PGA Mixer Line1R Switch'
numid=94,iface=MIXER,name='Right PGA Mixer Line2R Switch'
numid=95,iface=MIXER,name='Right PGA Mixer Mic3L Switch'
numid=96,iface=MIXER,name='Right PGA Mixer Mic3R Switch'
发现设备蛮多的。
第一个就是调节播放音量的。
#amixer cset numid=5,iface=MIXER,name='PCM Playback Volume' 127
播放音量变大了^_^
发现录音时line in 可以录音,mic 不可以T_T
通过测量发现MIC电路上没有偏置电压。
最后通过修改kernel的Device Tree才打开偏置电压。
在tlv320aic3106: tlv320aic3106@1b节点下添加:ai3x-micbias-vg = <0x2>;
修改如下:
tlv320aic3106: tlv320aic3106@1b {
compatible = "ti,tlv320aic3106";
reg = <0x1b>;
status = "okay";
ai3x-micbias-vg = <0x2>;
/* Regulators */
AVDD-supply = <&vbat>;
IOVDD-supply = <&vbat>;
DRVDD-supply = <&vbat>;
DVDD-supply = <&vbat>;
};
|
|