移远EC20对UAC音频设备识别分析
首先分析AT+QCFG="USBCFG",0x2C7C,0x0125,1,1,1,1,1,0,1这个指令
我执行发现返回ERROR
而且发现
#查看配置
AT+QCFG="USBCFG"
返回
+QCFG: "usbcfg",0x2C7C,0x0125,1,1,1,1,1,0
注意,这里如果只有6个数字,大部分文章提到必须7个数字才支持
怀疑硬件或者固件不支持,EC20CEFAGR06A06M4G这个低版本不支持,固件升级到A15支持了
含义:倒数第二个参数是启用 adb,倒数第一个参数是启用 UAC。
查看固件发现我的固件版本低
ATI
Quectel
EC20F
Revision: EC20CEFAGR06A06M4G
发现网上公开的固件有 EC20CEFAGR06A08M4G和EC20CEFAGR06A15M4G
先升级到A08
ATI
Quectel
EC20F
Revision: EC20CEFAGR06A08M4G
AT+QCFG="USBCFG"这个返回还是6位数
在升级到A15
ATI
Quectel
EC20F
Revision: EC20CEFAGR06A15M4G
AT+QCFG="USBCFG"这个返回变7位数了,支持启用UAC音频了
在centos7(3.10.0内核)下查看音频列表
[root@192 ~]# aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
default:CARD=AudioPCI
Ensoniq AudioPCI, ES1371 DAC2/ADC
Default Audio Device
sysdefault:CARD=AudioPCI
Ensoniq AudioPCI, ES1371 DAC2/ADC
Default Audio Device
front:CARD=AudioPCI,DEV=0
Ensoniq AudioPCI, ES1371 DAC2/ADC
Front speakers
rear:CARD=AudioPCI,DEV=0
Ensoniq AudioPCI, ES1371 DAC1
Rear speakers
surround40:CARD=AudioPCI,DEV=0
Ensoniq AudioPCI, ES1371 DAC2/ADC
4.0 Surround output to Front and Rear speakers
iec958:CARD=AudioPCI,DEV=0
Ensoniq AudioPCI, ES1371 DAC2/ADC
IEC958 (S/PDIF) Digital Audio Output
没有出现hw:CARD开头的硬件,难道是硬件坏了?
根据其他文章发现,可能和linux内核有关,测了几个发行版
Rocky8(4.18内核)
aplay -L 返回(4.18内核)
null
Discard all samples (playback) or generate zero samples (capture)
default
Default Audio Device
sysdefault
Default Audio Device
default:CARD=Android
Android, USB Audio
Default Audio Device
sysdefault:CARD=Android
Android, USB Audio
Default Audio Device
front:CARD=Android,DEV=0
Android, USB Audio
Front output / input
surround21:CARD=Android,DEV=0
Android, USB Audio
2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Android,DEV=0
Android, USB Audio
4.0 Surround output to Front and Rear speakers
surround41:CARD=Android,DEV=0
Android, USB Audio
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Android,DEV=0
Android, USB Audio
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Android,DEV=0
Android, USB Audio
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Android,DEV=0
Android, USB Audio
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Android,DEV=0
Android, USB Audio
IEC958 (S/PDIF) Digital Audio Output
ubuntu14.04.6 (4.4.0内核) CARD=AudioPCI,DEV=1

ubuntu14.04 (3.13.0内核) CARD=Android,DEV=1

可见3.13也能显示hw
opensuse 13 (内核3.11)测试

debian12.13(内核6.1.0)
sangoma@freepbx17:~$ aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
default
Default Audio Device
sysdefault
Default Audio Device
iec958
IEC958 (S/PDIF) Digital Audio Output
hw:CARD=AudioPCI,DEV=0
Ensoniq AudioPCI, ES1371 DAC2/ADC
Direct hardware device without any conversions
hw:CARD=AudioPCI,DEV=1
Ensoniq AudioPCI, ES1371 DAC1
Direct hardware device without any conversions
plughw:CARD=AudioPCI,DEV=0
Ensoniq AudioPCI, ES1371 DAC2/ADC
Hardware device with all software conversions
plughw:CARD=AudioPCI,DEV=1
Ensoniq AudioPCI, ES1371 DAC1
Hardware device with all software conversions
default:CARD=AudioPCI
Ensoniq AudioPCI, ES1371 DAC2/ADC
Default Audio Device
sysdefault:CARD=AudioPCI
Ensoniq AudioPCI, ES1371 DAC2/ADC
Default Audio Device
front:CARD=AudioPCI,DEV=0
Ensoniq AudioPCI, ES1371 DAC2/ADC
Front output / input
rear:CARD=AudioPCI,DEV=0
Ensoniq AudioPCI, ES1371 DAC2/ADC
Rear speakers
surround40:CARD=AudioPCI,DEV=0
Ensoniq AudioPCI, ES1371 DAC2/ADC
4.0 Surround output to Front and Rear speakers
iec958:CARD=AudioPCI,DEV=0
Ensoniq AudioPCI, ES1371 DAC2/ADC
IEC958 (S/PDIF) Digital Audio Output
dmix:CARD=AudioPCI,DEV=0
Ensoniq AudioPCI, ES1371 DAC2/ADC
Direct sample mixing device
dmix:CARD=AudioPCI,DEV=1
Ensoniq AudioPCI, ES1371 DAC1
Direct sample mixing device
hw:CARD=Android,DEV=0
Android, USB Audio
Direct hardware device without any conversions
plughw:CARD=Android,DEV=0
Android, USB Audio
Hardware device with all software conversions
default:CARD=Android
Android, USB Audio
Default Audio Device
sysdefault:CARD=Android
Android, USB Audio
Default Audio Device
front:CARD=Android,DEV=0
Android, USB Audio
Front output / input
surround21:CARD=Android,DEV=0
Android, USB Audio
2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Android,DEV=0
Android, USB Audio
4.0 Surround output to Front and Rear speakers
surround41:CARD=Android,DEV=0
Android, USB Audio
4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Android,DEV=0
Android, USB Audio
5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Android,DEV=0
Android, USB Audio
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Android,DEV=0
Android, USB Audio
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Android,DEV=0
Android, USB Audio
IEC958 (S/PDIF) Digital Audio Output
dmix:CARD=Android,DEV=0
Android, USB Audio
Direct sample mixing device
根据分析,问题可能出现在3.10内核 无法原生支持 UAC2 Gadget ,这个驱动从3.11内核开始支持,差了一个小版本。
那么回到正题,asterisk通道驱动配置怎么填
注意centos系的列表没有hw开头,debian ubuntu系有hw开头,centos系下无法成功
在有CARD=Android设备的情况下 直接填alsadev=hw:CARD=Android,DEV=0
[quectel0]
;audio=/dev/ttyUSB1 # 注释音频串口(UAC模式不用)
data=/dev/ttyUSB2 # 你的AT指令串口
quec_uac=1 # 启用UAC模式
alsadev=hw:CARD=Android,DEV=0 # 核心参数
在没有CARD=Android设备的情况下,如果内核>=3.11
虽然没有CARD=Android,但是出现了两个CARD=AudioPCI,只是DEV值不一样,估计是部分内核版本的识别bug,拔插EC20设备列表有变化,则只是名称问题。可以用aplay -l(小写)确定物理设备列表
[quectel0]
;audio=/dev/ttyUSB1 # 注释音频串口(UAC模式不用)
data=/dev/ttyUSB2 # 你的AT指令串口
quec_uac=1 # 启用UAC模式
alsadev=hw:CARD=AudioPCI,DEV=1 # 核心参数
在没有CARD=Android设备的情况下,如果内核<3.11
此时由于内核原因识别不到UAC设备,此时用ttyUSB1的PCM传输音频
注释alsadev uac的配置,开启audio=ttyusb1的配置
[quectel0]
audio=/dev/ttyUSB1 # 注释音频串口(UAC模式不用)
data=/dev/ttyUSB2 # 你的AT指令串口
;quec_uac=1 # 启用UAC模式
;alsadev=hw:CARD=Android,DEV=0 # 核心参数
更多推荐
所有评论(0)