RNDIS网卡启用与USB网络共享操作要点

RNDIS网卡默认常处于关闭状态,需通过设备端脚本或AT指令主动开启。例如在LuatOS平台中调用mobile.config(mobile.CONF_USB_ETHERNET, 3)接口激活功能,之后主机方可识别并建立网络连接。
本文以Air780EPM系列核心板/开发板为例,分享在Windows及Linux系统下,通过RNDIS方式实现USB上网的要点。

一、Windows下使用RNDIS功能

Windows系统默认支持RNDIS,直接用USB连接板子和电脑就可以使用。

1.1 核心示例代码

open_rndis.lua核心代码如下图示,完整demo详见源码仓库最新文件。

image

1.2 确认RNDIS状态

先用Luatools将相关代码烧录到模组中,通过日志来确认是否已经成功开启RNDIS功能:

image

1.3 在Widows中启用RNDIS

当开启RNDIS功能后,Air780EPM会虚拟一个网卡,此网卡可在“设备管理器”或“高级网络设置”中看到。

image
image

启用完毕后,即可看到我们电脑的图标已经变为以太网连接,此时可以正常使用RNDIS上网了。

image

1.4 相关注意事项

由于Air780EPM驱动使用的是CDC驱动,所以请使用Win10及其以上系统(Win10以下系统,Air780EPM不做支持)。

如果启动后日志中打印RNDIS启动成功,但是Windows上没有连上网络,需要确认下系统是否将RNDIS的虚拟网卡禁用了。

image

二、Linux下使用RNDIS功能

2.1 在Linux中启用RNDIS

因为Air780EPM的RNDIS使用CDC-ACM驱动,大部分Linux系统默认就支持,所以无需设置代码,插入USB就可以在Linux中使用。

使用 ls /dev/ttyACM 即可看到三个端口:*

image

在控制台查看USB设备可以看到一个ID为19d1:0001的USB设备,这个就是Air780EPM虚拟出的USB网卡:
image

查看网卡信息可以看到如下信息:
image

尝试使用ping命令访问百度,联网成功:

image

2.2 相关注意事项

有些Llinux设备存在Air780EPM重启后,操作文件会发生移位。

比如:

本来是/dev/ttyACM0/1/2,重启后变成了ttyUSB1/3/4。

最靠谱的方法是,通过驱动节点来找到操作文件usb_find.c;

寻找真正的需要的端口:

FindUsbDevice(AIRM2M_USB_DEVICE_AT_INTERFACE_ID)

每个设备的ethx可能不一样,插入Air780EPM后增加的网卡即为RNDIS网卡。

如果遇到没有RNDIS驱动的情况,可在编译内核时参考下图配置:
image

今天的内容就分享到这里了~

posted @ 2025-12-12 17:27  电子老师傅  阅读(3)  评论(0)    收藏  举报