瑞芯微RK809音频驱动

RK809音频配置

  1. 内核配置打开SND_SOC_RK817项
    -> Device Drivers                                                                                                                                       │  
      -> Sound card support (SOUND [=y])                                                                                                                    │  
        -> Advanced Linux Sound Architecture (SND [=y])                                                                                                     │  
          -> ALSA for SoC audio support (SND_SOC [=y])                                                                                                      │  
            -> CODEC drivers 
              <*> Rockchip RK817 CODEC
  2. 设备树配置:在 rv1126-evb-v10.dtsi 中有RK809相关配置
  3. 对比正点原子的配置内容,正点原子使用的是默认配置,但是我们硬件连接与正点原子有所差别,所以我们需要修改这个位置
  4. 上面的0 1 2 3表示声道顺序,0开头表示优先使用sdi0,pinctrl-0中的四个配置就对应原理图中的四个配置
  5. 我们使用的是差分输入,所以还需要增加如下配置属性

RK809无法设置音量问题

  • 首先RK809要能录取音频,且有声音,只是无法设置音量
  1. 第一步:cat /proc/asound/cards 检查所有声卡状态
  2. 第二步:amixer -c0 cset numid=2 1 打开 LANE IN功能
  3. 第三步:arecord -Dhw:0,0 -c 2 -r 44100 -f S16_LE -d 10 /tmp/record.wav 使用LANE IN 录音,需要指定使用 rk809 集成的声卡
  4. 第四步:aplay -Dhw:0,0 /tmp/record.wav 播放录音,硅麦声卡不支持播放录音,这里需要指定使用LANE IN
  5. 第五步:arecord record.wav 这里执行后会卡住,直接ctrl+c结束就好
  6. 第六步:amixer contents 执行这个命令,查看是否有'Master Capture Volume'等音频设备控制项
  7. 第七步:amixer cset numid=4 0,0 将音量值设置为0
  8. 第八步:alsactl store -f ./asound.state 保存音频配置
  9. 第九步:将asound.state 配置放到 /etc/ 目录下
  10. 第十步:在/etc目录下创建一个文件 asound.conf 并添加如下内容
    pcm.!default
    {
        type asym
        playback.pcm "plug:softvol_ply"
        capture.pcm "plug:softvol_cap"
    }
    
    pcm.dmixer {
        type dmix
        ipc_key 5978293 # must be unique for all dmix plugins!!!!
        ipc_key_add_uid yes
        slave {
            pcm "hw:0,0"
            channels 2
            rate 48000
        }
        bindings {
            0 0
            1 1
        }
    }
    
    pcm.dsnooper {
        type dsnoop
        ipc_key 5978291 # must be unique for all dmix plugins!!!!
        ipc_key_add_uid yes
        slave {
            pcm "hw:0,0"
            channels 2
            rate 48000
        }    
        bindings {
            0 0
            1 1
        }
    }
    
    pcm.hooks_ply {
        type hooks
        slave.pcm "dmixer"
        hooks.0 {
            type ctl_elems
            hook_args [{
                name "Playback Path"
                preserve true
                value "SPK"
                lock false
            }]
        }
    }
    
    pcm.softvol_ply {
        type softvol
        slave.pcm "hooks_ply"
        control {
            name "Master Playback Volume"
            card 0
            device 0
        }
        min_dB -50.0
        max_dB 0.0
        resolution 101
    }
    
    pcm.hooks_cap {
        type hooks
        slave.pcm "dsnooper"
        hooks.0 {
            type ctl_elems
            hook_args [{
                name "Playback Path"
                preserve true
                value "Main Mic"
                lock false
            }]
        }
    }
    pcm.softvol_cap {
        type softvol
        slave.pcm "dsnooper"
        control {
            name "Master Capture Volume"
            card 0
            device 0
        }
        min_dB -50.0
        max_dB 0.0
        resolution 101
    }
    
  11. 第十一步:在etc/init.d 目录下创建文件 S49alsa 并设置可执行权限,然后添加如下内容
    #!/bin/sh
    
    #
    
    case "$1" in
    
      start)
    
        if [ -f "/userdata/asound.state" ];then
    
          alsactl restore -f /userdata/asound.state
    
        else
    
          alsactl restore -f /etc/asound.state
    
        fi
    
        ;;
    
      stop)
    
        alsactl store -f /userdata/asound.state
    
        ;;
    
      *)
    
        echo "Usage: $0 {start|stop}" 
    
        exit 1
    
        ;;
  12. 第十二步:重启开发板,开机自动启动S49alsa 就恢复音量设置了

音频相关命令操作

  • 注意:在获取音频时,需要先执行 amixer -c0 cset numid=2 1 打开 LANE IN功能
    cat /proc/asound/cards  检查所有声卡状态
    amixer -c0 cset numid=2 1  打开 LANE IN功能
    amixer -c0 cset numid=1 2  打开 SPK 功能,仅仅喇叭有声音输出
    amixer -c0 cset numid=1 3  打开 HP 功能,仅仅耳机有输出
    amixer -c0 cset numid=1 6  打开 HP 和 SPK 功能,两者都有输出
     
    arecord -c 2 -r 44100 -f S16_LE -d 10 /tmp/record.wav   使用硅麦录音,默认使用硅麦录音,可以不用指定声卡。
    arecord -Dhw:0,0 -c 2 -r 44100 -f S16_LE -d 10 /tmp/record.wav  使用LANE IN 录音,需要指定使用 rk809 集成的声卡
    aplay -Dhw:0,0 /tmp/record.wav   播放录音,硅麦声卡不支持播放录音,这里需要指定使用LANE IN 
    
    cat /sys/kernel/debug/regmap/0-0020-rk817-codec/registers   查看 codec 寄存器值
     cat /proc/asound/card1/pcm0c/sub0/status  查看声卡是否在运行中(在录音时才会显示running)
     
     使用RK官方测试程序: rkmedia_ai_test(示例仅支持保存至pcm文件。格式为s16_le。)
    【代码路径】
     external/rkmedia/examples/rkmedia_ai_test.c
    【快速使用】
     /usr/bin/rkmedia_ai_test
     使用方法:
     ./rkmedia_ai_test -v 99   (-v设置音量)
    
    //使用vlc查看裸音频
     vlc --demux=rawaud --rawaud-channels 2 --rawaud-fourcc s16l --rawaud-samplerate 16000 100.pcm
    

### 瑞芯微 RK3588 驱动程序下载与安装指南 #### 获取官方支持包 对于瑞芯微RK3588的驱动程序获取,建议从官方网站或官方文档中寻找最新的支持包。通常情况下,这类支持包会包含内核源码以及预编译好的二进制文件,方便用户直接部署使用[^2]。 #### 准备工作环境 确保已经准备好适合的操作系统环境来处理后续操作。如果目标是在Ubuntu下完成,则可以参照常规Linux发行版的方式准备必要的工具链和库文件。 #### 下载驱动及相关资源 访问瑞芯微官网的技术支持页面,找到对应于RK3588的产品专区,这里会有专门针对该型号处理器的各种技术资料链接,包括但不限于: - 内核源代码压缩包 - 工具链(Toolchain) - 各类外设接口驱动 - 应用实例工程 特别注意的是,在某些版本的支持包里可能还会附带详细的README文档,里面记载着具体的配置方法、注意事项等重要信息[^1]。 #### 编译并安装驱动 假设选择了通过源码方式构建所需驱动,那么一般遵循如下命令序列来进行本地化定制: ```bash # 解压下载下来的tarball档案至指定目录 tar -xf rockchip-rk3588-linux-sdk.tar.gz -C /path/to/destination/ # 进入解压后的顶层目录 cd /path/to/destination/rk3588_kernel/ # 执行make menuconfig调整内核选项(可选),这一步取决于个人需求 make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- menuconfig # 开始编译整个项目 make -j$(nproc) ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- # 将生成的目标文件复制到适当位置 sudo make modules_install INSTALL_MOD_PATH=/mnt/rootfs/ ``` 上述过程中涉及到的具体参数设置应当依据实际应用场景和个人偏好做出相应修改;同时也要留意不同阶段可能出现的问题及其解决方案,比如遇到依赖项缺失时需及时补充相应的deb包或其他形式的补丁[^3]。 #### 测试验证 最后不要忘记重启设备使新加载进去的模块生效,并利用`dmesg | grep rk3588`这样的指令查看启动日志确认一切正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值