触觉智能出品,瑞芯微RK3562开发板配置USB复合设备(上)

描述

本文基于触觉智能RK3562核心板/开发板,为大家介绍配置USB复合设备,本章节将介绍RNDIS和UAC两种类型的USB复合设备配置。

RK3562

 

 

 

RNDIS是什么?

USB RNDIS(Remote Network Driver Interface Specification,远程网络驱动程序接口规范)是USB设备类规范中的一种,核心功能是将USB设备模拟为“虚拟以太网适配器”,让主机(电脑、手机等)通过USB接口与设备建立网络通信,如同连接物理网卡一样。它广泛用于移动设备网络共享、嵌入式设备联网、虚拟网络接口等场景。

 

 

  • 内核编译配置

在/kernel-5.10/arch/arm64/configs/rockchip_linux_defconfig文件中,增加如下配置:

CONFIG_USB_GADGET=y CONFIG_USB_LIBCOMPOSITE=y CONFIG_USB_CONFIGFS=y CONFIG_USB_CONFIGFS_RNDIS=y CONFIG_USB_F_RNDIS=y CONFIG_USB_U_ETHER=y CONFIG_USB_NET_DRIVERS=y CONFIG_IPV6=y CONFIG_USB_ETH=y CONFIG_USB_ETH_RNDIS=y CONFIG_USB_CONFIGFS_ECM=y CONFIG_USB_F_ECM=y CONFIG_BRIDGE=y CONFIG_BRIDGE_IGMP_SNOOPI=y

 

成功添加后重新编译kernel,命令如下:

cd ./build.sh kernel

 

编译成功后,会生成boot.img,重新烧录内核镜像即可。

RK3562

 

执行以下命令,开启RNDIS功能:

echo usb_rndis_en > /etc/init.d/.usb_config echo usb_rndis_en > /etc/init.d/.usb_config /usr/bin/usbdevice restart

 

完成后,输入以下命令可以看到开发板上多出一块网卡:

ifconfig

 

连接开发板的PC端也能识别出一块新的网卡:

RK3562

需要注意若网卡无法识别,则需先关闭PC端的防火墙:

RK3562

 

  • RNDIS功能测试

将PC和开发板新识别出的网卡手动配置于同一网段,开发板端(IP仅为举例,无限制):

 

ifconfig usb0 192.168.1.11

 

PC端:

RK3562

测试是否能ping通:

RK3562

看到有对应返回数据,说明已成功完成配置:

RK3562

 

UAC

USB UAC(USB Audio Class,USB音频类)是USB设备类规范(USB-IF定义) 中专门针对音频设备的通信协议标准,用于规范USB接口的音频输入/输出设备(如麦克风、扬声器、耳机、声卡等)与主机的通信方式。UAC通过USB虚拟标准PCM接⼝给Host设备,实现Device和Host之间⾳频互传功能。

 

  • 内核编译配置

在/kernel-5.10/arch/arm64/configs/rockchip_linux_defconfig文件中,增加如下配置:

CONFIG_USB_F_UAC1=y CONFIG_USB_CONFIGFS_F_FS=y CONFIG_USB_CONFIGFS_F_UAC1=y

 

编译内核生成驱动镜像,命令如下:

cd ./build.sh kernel

 

编译成功后,会生成boot.img,,重新烧录内核镜像即可。

RK3562

 

执行以下命令,开启UAC功能:

echo usb_uac1_en > /etc/init.d/.usb_config /usr/bin/usbdevice restart

 

完成后,执行aplay -l可以识别如下声卡。

RK3562

 

连接开发板的PC端也能识别出一个新的声音设备:

RK3562

 

  • UAC功能测试

PC端:选择输出设备,选中Device设备(⼀般识别为Source/Sink,设备名与Windows版本相关) , 并打开播放器,播放⾳乐。

RK3562RK3562

 

开发板也可以将音频转到card 1去播放:

root@rk3562:/# arecord -D hw:2,0 -f S16_LE -r 48000 -c 2 -B 1024 | tee recording.wav | aplay -D hw:1,0 -f S16_LE -r 48000 -c 2 -B 1024 &

 

开发板端执行以下命令,将UAC采样到的音频文件为test.wav

arecord -D hw:1,0 -r 48000 -c 2 -f S16_LE test.wav

 

RK3562

 

开发板接上扬声器,用开发板自带的8388声卡播放test.wav,查看采样是否正常

RK3562

 

PC端:选择输入设备:

RK3562

 

开启PC端自带的录音软件开始录音:

RK3562

 

开发板端播放音频文件指定到UAC声卡,命令如下:

 

aplay -Dhw:1,0 ./test.wav

RK3562

 

PC端通过自带扬声设备播放录音音频,查看音频是否正常:

RK3562

看到音频播放,说明已成功完成配置。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分