海思HI3518EV300作为USB视频设备的相关配置

作为USB设备,由于需求上没有要求设备需要播放声音,所以把扬声器去掉了,但是在开发过程中遇到设备插到电脑上,电脑将板子的扬声器作为了默认音频输出设备,而板子又没有扬声器,所以电脑识别扬声器失败,出现下图标记:
在这里插入图片描述
电脑需要重新将电脑扬声器配置为默认设备才行,但是这样对用户体验不好,所以需要从内核上面将扬声器的驱动去掉。第一次接触UVC/UAC的开发,很多东西也不懂,改了好久总算改好了,在这里记录一下。
开始有使用别家的USB摄像头,所以电脑端对后面其他设备的接入都识别成了开始的那个设备驱动,所以开头就被误导了,一直在内核找这个驱动的名字都没找到,后面朋友提醒说需要卸载驱动才会刷新设备真正的驱动。

别人的设备驱动名称
海思HI3518EV300作为USB视频设备的相关配置_第1张图片
我自己设备的驱动名称
海思HI3518EV300作为USB视频设备的相关配置_第2张图片
找到自己设备驱动名称之后,配合USB Device Tree View工具,在内核里面找到驱动所在的地方

USB Device Tree View工具抓图
海思HI3518EV300作为USB视频设备的相关配置_第3张图片
内核USB String 描述符:(在 drivers/usb/gadget/function/f_uac1.c)
海思HI3518EV300作为USB视频设备的相关配置_第4张图片
这是原始的配置,不知道那个是音频输出的配置,经过不断尝试,最后确认只有
[STR_IO_OUT_OT].s = "Playback Output terminal"
这个是扬声器输出的配置。修改之后:
海思HI3518EV300作为USB视频设备的相关配置_第5张图片
在当前文件搜索STR_IO_OUT_OTio_out_ot_desc,把所有这两个有联系的屏蔽掉
在这里插入图片描述
在这里插入图片描述
弄好重新make uImage,跑起来就好了。
在这里插入图片描述

你可能感兴趣的:(linux,海思,USB/UVC/UAC,linux)