如何使用板子的usb audio gadget 功能,让他作为一个声卡

Moose0 2020-04-27 10:02:46
现在手上有一块rk3308板子,支持uac功能,仅有一个usb otg接口,目前想把这块板子当成一个usb声卡,但是自己做不了驱动,也没想做驱动,就想着能否使用uac功能,目前有两种情况
1、在内核配置
在 kernel 中执行
make rk3308_linux_defconfig
make menuconfig

device drivers-->
<*>usb support -->
<*>usb gadget support-->
<*> usb gadget drivers (audio gadget)
audio gadget
<*> uac 1.0
该选项选中后,编译烧写进去板子,windows端识别到ac interface
音频设备与usb枚举log:
[ 0.556550] ALSA device list:
[ 0.556588] #0: UAC1_Gadget 0
[ 0.556608] #1: rockchip,rk3308-pcm
[ 0.556629] #2: rockchip,rk3308-vad
[ 0.556687] #7: Loopback 1
[ 0.559306] VFS: Mounted root (squashfs filesystem) readonly on device 31:6.
[ 0.560543] devtmpfs: mounted
[ 0.560835] Freeing unused kernel memory: 320K
[ 0.567647] dwc2 ff400000.usb: new address 11
[ 0.762785] dwc2 ff400000.usb: new device is high-speed
[ 0.795656] dwc2 ff400000.usb: new address 12
[ 0.818172] g_audio gadget: high-speed config #1: Linux USB Audio Gadget

eq/drc 程序运行log

==========EQ/DRC process release version 1.23===============
snd_pcm_open
snd_pcm_hw_params_malloc
snd_pcm_hw_params_any!
snd_pcm_hw_params_set_access!
snd_pcm_hw_params_set_format
channels = 2
bufferSize = 20480
periodSize = 1024
Rate = 48000
Open record device done
Open PCM: fake_play
[ 3.494665] dwmmc_rockchip ff4a0000.dwmmc: Busy; trying anyway
[ 3.494707] mmc_host mmc0: Timeout sending command (cmd 0x202000 arg 0x0 status 0x0)
interleaved mode
snd_pcm_hw_params_alloca
interleaved mode
format successed
3.507831]c hmamncn_eholsst =m m2c0:
Bus speed (slot 0) = 200000Hz (slot req 200000Hz, actual 200000HZ div = 0)
setting sampling rate (48000)
write_bufferSize = 4096
write_periodSize = 1024
rk eq_drc v2.02 2019-07-20 Oct 11 2019 09:26:56
psEqualizer->m_pfControlValue = 0.000000
open write device is successful
WAKE_LOCK[RK_acquire_wake_lock] id=eq_drc_process
param_name = /data/cfg/eq_bin/Para_48000Hz_2ch.bin
EQ/DRC Algorithm 3BAND_IIR_DIVFREQ PEAK VALUE V1.0...Oct 11 2019 09:26:56
GetLMTVersion v1.03 2019-10-10 Oct 11 2019 09:26:57,force=0 firstInit=1


windows已经能够识别到音频设备和麦克风了,可以直接使用Windows10 的录音机 进行录音会出现如下错误,
====read frame error = -32===
Overrun occurred: -32
ALSA lib pcm.c:8905:(snd_pcm_recover) overrun occurred
====write frame error = -32===
Underrun occurred from write: -32
ALSA lib pcm.c:8905:(snd_pcm_recover) underrun occurred
rk eq_drc v2.02 2019-07-20 Oct 11 2019 09:26:56
psEqualizer->m_pfControlValue = 0.000000
param_name = /data/cfg/eq_bin/Para_48000Hz_2ch.bin
EQ/DRC Algorithm 3BAND_IIR_DIVFREQ PEAK VALUE V1.0...Oct 11 2019 09:26:56
GetLMTVersion v1.03 2019-10-10 Oct 11 2019 09:26:57,force=0 firstInit=1

这个实在不知道可以怎样操作,还是说我的方式不对,还要自己去添加或者说修改代码,有了相关的驱动可以识别,调用的时候会用到什么插件或者接口,这些我需要到哪里去找,。



...全文
1451 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Moose0 2020-05-06
  • 打赏
  • 举报
回复
有大神知道需要怎么处理吗,,或者提供个可行的usb麦克风思路也好

21,619

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧