Android rndis网卡支持调试

在defconfig中开启如下两个宏:

CONFIG_USB_USBNET=y

CONFIG_USB_NET_RNDIS_HOST=y

开启之后编译验证

方式一 、使用ifconfig -a查看是否存在一个usb0的设备

方式二、查看/sys/class/net/下是否存在usb0的设备

如果不存在usb0,就要检查usb设备描述符是否匹配,确认设备是否是rdnis设备

首先,USB RNDIS 设备描述符结构如下:

  1. bLength:描述符的长度,一般为 0x12。

  2. bDescriptorType:描述符类型,一般为 0x01。

  3. bcdUSB:支持的 USB 协议版本号,例如 0x0200 表示 USB 2.0。

  4. bDeviceClass:设备类代码,RNDIS 设备通常被识别为 CDC(Communication Device Class)设备,因此该值为 0x02。

  5. bDeviceSubClass:设备子类代码,RNDIS 设备通常为 0x02

  6. bDeviceProtocol:设备协议代码,RNDIS 设备通常为 0xff,

  7. bMaxPacketSize0:默认数据包尺寸,一般为 0x40。

  8. idVendor:供应商 ID,由 USB 实现论坛授权分配。

  9. idProduct:产品 ID,由制造商自行决定。

  10. bcdDevice:设备版本号,由制造商自行决定。

  11. iManufacturer:制造商名称的字符串描述符索引。

  12. iProduct:产品名称的字符串描述符索引。

  13. iSerialNumber:设备序列号的字符串描述符索引。

  14. bNumConfigurations:设备支持的配置数目,一般为 0x01。

查看代码中是否存在和设备相同的设备描述符 bDeviceClass、bDeviceSubClass、bDeviceProtocol

kernel4.14\drivers\net\usb\rndis_host.c

如上面存在usb0,但是ifconfig看不到,没有ip,则需要修改下面的地方

修改frameworks\base\core\res\res\values\config.xml文件

<string translatable="false" name="config_ethernet_iface_regex">eth\\d</string>

改成

<string translatable="false" name="config_ethernet_iface_regex">eth\\d|usb\\d</string>

在对应平台的init.rc中添加,不知道修改那个文件,可以搜索对应平台的dhcpcd_eth0是在哪里添加,直接复制粘贴即可。

service dhcpcd_usb0 /system/bin/dhcpcd -ABKLG
    class late_start
    disabled
    oneshot

service iprenew_usb0 /system/bin/dhcpcd -n
    class late_start
    disabled
    oneshot

修改完成后验证如下:

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Windows 11不支持RNDIS(Remote Network Driver Interface Specification)。RNDIS是一种用于实现网络连接的驱动程序接口规范,用于在计算机和其他网络设备之间进行通信和数据传输。然而,尽管Windows 11不再原生支持RNDIS,但它仍然支持其他网络连接协议和驱动程序,如以太网和Wi-Fi驱动程序。 这意味着如果您在Windows 11上使用RNDIS设备,您可能需要下载并安装适当的驱动程序。您可以从设备制造商的官方网站或其他第三方驱动程序提供商处获取这些驱动程序。 如果您在Windows 11上使用某些需要RNDIS支持的设备或应用程序,并且无法找到适用于Windows 11的驱动程序,您可能需要考虑使用其他操作系统或寻找替代的网络连接解决方案。 总之,尽管Windows 11不再原生支持RNDIS,但仍然存在其他网络连接解决方案和驱动程序可供选择,以确保您的设备与计算机的网络连接正常运行。 ### 回答2: Windows 11不再支持RNDIS(Remote Network Driver Interface Specification)。RNDIS是一种用于在计算机和外部设备之间进行网络通信的驱动程序接口。在过去的Windows版本中,RNDIS被广泛应用于移动设备的连接,例如智能手机连接计算机进行热点共享。 然而,Windows 11选择不再支持RNDIS的原因可能是出于性能、安全性或者其他技术原因。随着Windows操作系统版本的更新,微软可能决定采用其他更高效、更安全的替代方案来实现计算机和外部设备之间的网络通信。 对于用户而言,他们若仍然需要使用外部设备进行网络通信,可能需要考虑其他解决方案。例如,可以尝试查找设备制造商提供的驱动程序更新或者其他兼容性解决方案来使设备在Windows 11上能够正常工作。或者也可以使用其他具备兼容性的操作系统来进行网络通信,取决于具体的使用需求。 总之,虽然Windows 11不再支持RNDIS,但用户可以通过其他可行的方式来进行外部设备的网络通信,需要根据具体情况采取相应的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值