OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3036|回复: 0

alsa-1.0.27.2在AM335X上移植

[复制链接]

27

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2012-4-4
在线时间
46 小时
发表于 2016-1-15 11:42:51 | 显示全部楼层 |阅读模式
本帖最后由 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>;

        };


   



















正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 18:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表