zoukankan      html  css  js  c++  java
  • (十二)A64

    一、AC108驱动移植

    1、驱动添加

    cp r18/lichee/linux-4.4/sound/soc/codecs/ac108.* a64/linux-3.10/sound/soc/codecs/

    2KconfigMakefile修改

    linux-3.10soundsoccodecsKconfig修改:

    menu "CODEC drivers"

     

    config SND_SOC_ALL_CODECS

     

    # ac108 config

    config SND_SOC_AC108

    tristate "ac108 mic array "

    depends on ARCH_SUN50IW1

    select SND_SUNXI_SOC_SUNXI_DAUDIO

    default n

    help

    say Y or M if you want to add support for AC108.

     

    endmenu

     

    r18 sound/soc/codecs/Kconfig配置

     

    SND_SUNXI_SOC_SUNXI_DAUDIO

     ac108添加

    Device Drivers  --->

    <*> Sound card support  --->

    <*>   Advanced Linux Sound Architecture  --->

    <*>   ALSA for SoC audio support  --->

    CODEC drivers  --->

    <*> ac108 mic array

    sunxi-snddaudio0添加

    Device Drivers  --->

    <*> Sound card support  --->

    <*>   Advanced Linux Sound Architecture  --->

    <*>   ALSA for SoC audio support  --->

    <*>   ASoC support for SUNXI  --->

    <*>   ASoC support for daudio0 machine

    二、buildroot

    https://www.cnblogs.com/zhangshenghui/p/11008115.html

    三、耳机喇叭驱动

    查看A64开发板声卡驱动

    linux-3.10内核代码中搜索audiocodec关键字,查找到如下:

     

    推断在sunxi_sndcodec.c中,查看linux-3.10soundsocsunxi目录下KconfigMakefile查看内核配置信息打开。

    四、内核配置文件

    1、驱动设备树

    linux-3.10/arch/arm64/boot/dts/sun50iw1p1.dtsi

    五、R18 ac108tas5731驱动

    ac108 驱动目录:

    linux-4.4soundsoccodecsac108.c

    tas5731驱动目录:

    linux-4.4soundsoccodecs as5731.c

    sun50iw1p1-tulip-noma.dts文件查看设备树配置:

     

    跟踪查找snddaudio-codec-dai关键字,sunxi-snddaudio.c

    查看 /proc/asound/cards文件

     

    SDK 查找 sndac10810035发现:

     

    ERROR (duplicate_label): Duplicate label 'twi0' on /soc@01c00000/twi@0x0x01C2AC00 and /soc@01c00000/twi@0x01c2ac00

    ERROR: Input tree has errors, aborting (use -f to force output)

    make[1]: *** [arch/arm64/boot/dts/sun50iw1p1-soc.dtb] Error 2

     

    六、adb

    参考网站:

    https://www.cnblogs.com/zengjfgit/p/6289873.html

    1. 编译拷贝模块:make modules && make modules_install INSTALL_MOD_PATH=~/rootfs

        2. modprobe g_ffs idVendor=0x18d1 idProduct=0x4e42 iSerialNumber="buildroot"

        3. mkdir -p /dev/usb-ffs/adb

        4. mount -t functionfs adb /dev/usb-ffs/adb -o uid=2000,gid=2000

        5. adbd &

        6. 插上USB OTG线,会先安装驱动,安装完成后,可以使用adb工具了。
        7. Ubuntu里可以直接安装一下android adb tool就可以连接了。

    备份:

     

    改后:

     

    七、A64喇叭播放

    amixer cset name='Earpiece Switch' 'on'

    amixer cset name='earpiece volume' '31'

    aplay music_16_2.wav &

    喇叭和耳机同时播放,Earpiece Switch控制开关,earpiece volume控制音量

    八、A64移植tina系统

     

    ERROR: "sunxi_wlan_get_oob_irq_flags" [drivers/net/wireless/bcmdhd/bcmdhd.ko] undefined!

    ERROR: "sunxi_wlan_get_bus_index" [drivers/net/wireless/bcmdhd/bcmdhd.ko] undefined!

    ERROR: "sunxi_wlan_set_power" [drivers/net/wireless/bcmdhd/bcmdhd.ko] undefined!

    ERROR: "sunxi_wlan_get_oob_irq" [drivers/net/wireless/bcmdhd/bcmdhd.ko] undefined!

    make[6]: *** [__modpost] Error 1

    make[5]: *** [modules] Error 2

    make[5]: Leaving directory `/home/danny/share/allwinner/sdk/A64/r18_tina/lichee/linux-4.4'

    make[4]: *** [/home/danny/share/allwinner/sdk/A64/r18_tina/out/tulip-noma/compile_dir/target/linux-tulip-noma/linux-4.4.89/.image] Error 2

    make[4]: Leaving directory `/home/danny/share/allwinner/sdk/A64/r18_tina/target/allwinner/tulip-noma'

    make[3]: *** [install] Error 2

    make[3]: Leaving directory `/home/danny/share/allwinner/sdk/A64/r18_tina/target/allwinner'

    make[2]: *** [target/allwinner/install] Error 2

    make[2]: Leaving directory `/home/danny/share/allwinner/sdk/A64/r18_tina'

    make[1]: *** [/home/danny/share/allwinner/sdk/A64/r18_tina/out/tulip-noma/staging_dir/target/stamp/.target_install] Error 2

    make[1]: Leaving directory `/home/danny/share/allwinner/sdk/A64/r18_tina'

    make: *** [world] Error 2

     

    九、麦克风采集与喇叭播放放到I2S0

     

    static void sunxi_daudio_txctrl_enable(struct sunxi_daudio_info *sunxi_daudio,

    int enable)

    static void sunxi_daudio_rxctrl_enable(struct sunxi_daudio_info *sunxi_daudio,

    int enable)

    pinctrl_select_state

    static int sunxi_daudio_dai_startup(struct snd_pcm_substream *substream,

    struct snd_soc_dai *dai)

     

  • 相关阅读:
    设计模式之美学习-接口隔离原则(七)
    设计模式之美学习-里式替换原则(六)
    设计模式之美学习-开闭原则(五)
    设计模式之美学习-设计原则之单一职责(四)
    设计模式之美学习-如何进行面向对象设计(三)
    ffmpeg 从内存中读取数据(或将数据输出到内存)
    CImage 对话框初始化时候显示透明 PNG
    RTMPdump(libRTMP) 源代码分析 9: 接收消息(Message)(接收视音频数据)
    RTMPdump(libRTMP) 源代码分析 8: 发送消息(Message)
    RTMPdump(libRTMP) 源代码分析 7: 建立一个流媒体连接 (NetStream部分 2)
  • 原文地址:https://www.cnblogs.com/zhangshenghui/p/11422184.html
Copyright © 2011-2022 走看看