RNDIS使用参考
1. 概述¶
RNDIS是一种Microsoft提出的网络驱动程序接口规范,定义了一种标准的通信协议,用于在USB设备和计算机之间进行网络通信。在RNDIS规范中,USB设备被视为一个网络适配器,可以使用标准的网络协议(如TCP/IP)进行通信。计算机可以通过USB接口和设备进行通信,从而实现网络连接。
RNDIS直接对接LWIP库,LWIP库具体路径:rtk/proj/sc/middleware/tcpip/
RNDIS驱动路径:rtk/proj/sc/customer/usb_gadget/class/src/rndis.c
2. 配置¶
2.1. mak配置¶
在相应的product config中修改mak文件的配置,要保证CONFIG_USB_GADGET_SUPPORT = TRUE
以及CONFIG_USB_GADGET_SSTAR_SUPPORT = TRUE
基础USB编译打开。
启用选项CONFIG_USB_GADGET_RNDIS_SUPPORT = TRUE
。由于需要对接LWIP库,因此这个选项也需要启用CONFIG_SW_NET_SUPPORT = TRUE
。
如果需要一启动便初始化RNDIS,需要配置CONFIG_USB_GADGET_APP_CUR_CLASS = "7"
。
注意mak修改完成后需要make clean
下再make
。
2.2. 命令调试¶
-
板端启动后,确认端口有新增RNDIS设备:
如果没有找到RNDIS设备,可在其他设备中查看是否有未识别的设备:
如果出现,请自行更新RNDIS驱动,可尝试方法:设备管理器->选中未识别RNDIS设备->更新驱动程序->浏览我的计算机以查找驱动程序文件->让我从计算机上的可用驱动列表中选取->网络适配器。厂商选择“Microsoft”,型号选择“远程NDIS兼容设备”。
-
打开网络连接,确认识别到的RNDIS网络参数:
本次调试以上图网络参数进行。
-
板端命令行输入
ipconfig usb0
来配置板端的网络参数:将网络参数配置成同网段的参数。
-
PC上使用命令与板端通信,如下图:
-
板端上使用命令与PC通信:
PC和板端能够通过RNDIS互相ping通。