• 简单使用USB rndis驱动


    一、概述

    当一个设备没有网口,你又想用网络时,检查一下你有没有USB口。如果有USB口你的开发板还可以抢救一下。那就是选择USB 网络工具驱动,在开发板和连接端都需要有相应的驱动。
    linux内核怎么配置,网上很多。自行google。今天主要是介绍连接端PC驱动安装和配置。

    二、环境和资料

    我使用的是WIN10环境。相关资料如下:

    • Windows安装usb rndis驱动参考网页

    https://www.p0ise.cn/misc/windows-install-rndis-driver.html

    • Windows usb rndis 网络适配器配置

    https://www.jianshu.com/p/6ad16ebd4d60

    • Windows10 网卡桥接配置

    https://www.windowscentral.com/how-set-and-manage-network-bridge-connection-windows-10

    将选择USB网络驱动的开发板通过usb连接WIN10电脑。你的WIN10电脑的资源管理器中多了一个COM口,其实就是驱动错误,按照第一个连接更新驱动,你的WIN10电脑就会多出一个USB RNDIS网络适配器。

    如果你已经做到这一步了,你就成功了80%。

    三、网络拓扑

    • 无线网卡连WiFi
      我先将一个USB无线网卡连接Windows11电脑,让无线网卡连上家里的WiFi。如果你选择桥接你的以太网口,就不用做这一步。

    • WIN10创建网桥
      然后在WIN11中,将无线网卡和USB RNDIS网卡进行桥接,然后点击一下自动获取IP。网桥就获取到了一个IP。如果没有自动获取IP,就点击一下禁用网桥,再启用网桥。这样你的网桥就获取到了一个IP。细节参考WIN10网桥配置连接。也可以配置静态IP给网桥。

    • 配置设备IP
      然后我在设备侧使用udhcpc进行动态获取ip。但是设备没有获取到IP。我就手动给它设置了一个IP。

    总结就是开发板USB连WIN10,无线网卡连WIN10,在WIN10中将USB网口和无线网口桥接起来。开发板数据从USB线传输到WIN10网桥,WIN10网桥通过无线网口出去。

    四、配置开发板

    在开发板上,配置一个家里路由器同网段的地址。

    ifconfig  usb0 192.168.0.100 netmask 255.255.255.0 up
    ip route add default via 192.168.0.1
    
    • 1
    • 2

    在开发板上,查看一下路由。

    # ip route show
    default via 192.168.0.1 dev usb0 
    192.168.0.0/24 dev usb0 scope link  src 192.168.0.1 
    
    • 1
    • 2
    • 3

    在开发板上,ping一下网关地址,结果正常。

    # ping 192.168.0.1
    PING 192.168.0.1 (192.168.0.1): 56 data bytes
    64 bytes from 192.168.0.1: seq=6 ttl=64 time=31.103 ms
    64 bytes from 192.168.0.1: seq=7 ttl=64 time=12.967 ms
    64 bytes from 192.168.0.1: seq=8 ttl=64 time=12.517 ms
    64 bytes from 192.168.0.1: seq=9 ttl=64 time=12.156 ms
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在开发板上,ping一下 8.8.8.8,结果正常。是不是看到了胜利的曙光。

    # ping 8.8.8.8
    PING 8.8.8.8 (8.8.8.8): 56 data bytes
    64 bytes from 8.8.8.8: seq=0 ttl=110 time=188.865 ms
    64 bytes from 8.8.8.8: seq=1 ttl=110 time=186.048 m
    
    • 1
    • 2
    • 3
    • 4

    在开发板上,添加个域名解析。

    vi /etc/resolv.conf 
    nameserver 8.8.8.8
    
    • 1
    • 2

    在开发板上,ping一下baidu.com,结果正常。我们就胜利了。

    
    # ping baidu.com
    PING baidu.com (110.242.68.66): 56 data bytes
    64 bytes from 110.242.68.66: seq=0 ttl=49 time=58.950 ms
    64 bytes from 110.242.68.66: seq=1 ttl=49 time=59.570 ms
    64 bytes from 110.242.68.66: seq=2 ttl=49 time=59.891 ms
    64 bytes from 110.242.68.66: seq=3 ttl=49 time=58.384 ms
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    五、配置PC电脑的路由

    这一步不一定是必须的,因为我想从PC到开发板的数据直接路由到网桥,所以添加下面这条主机路由。

    在WIN10电脑中, 将开发板的接口地址与网桥的接口直接路由上,而不是走有线网卡接口。注意:使用管理员身份进行进行运行命令提示符窗口。

    route ADD 192.168.0.100 MASK 255.255.255.255 192.168.0.200 METRIC 3 IF 32

    其中192.168.0.100是开发板地址,192.168.0.200是WIN10网桥地址,IF 32 中的32为网桥的编号。标号查询输入route print

    [C:\~]$ route print
    ===========================================================================
    接口列表
     12...xx xx xx xx xx xx ......Intel(R) Ethernet Connection
     10...xx xx xx xx xx xx ......VirtualBox Host-Only Ethernet Adapter
     32...xx xx xx xx xx xx ......Microsoft Network Adapter Multiplexor Driver
     15...xx xx xx xx xx xx ......Microsoft Wi-Fi Direct Virtual Adapter
      7...xx xx xx xx xx xx ......Microsoft Wi-Fi Direct Virtual Adapter #2
      1...........................Software Loopback Interface 1
    ===========================================================================
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    六、总结

    有USB口的设备也能上一下网,抢救一下。上述的操作就是在网上找的,由我进行实际操作与总结。希望能给你带来一丝兴趣。

  • 相关阅读:
    golang实现前缀数实现匹配路由和获取路由参数
    3D格式转换工具HOOPS Exchange最全技术指南(二):4大功能特征与典型使用场景
    我们是否真的需要k8s?
    shell 脚本发布前后端代码
    数学术语之源——单射(injection),满射(surjection),双射(bijection)
    目标跟踪实战deepsort+yolov5(上)
    小微信贷传统风控模型的痛点
    leetcode刷题(124)——64. 最小路径和
    net-java-php-python-大学生互助旅游网站修改计算机毕业设计程序
    Linux--信号量共享内存
  • 原文地址:https://blog.csdn.net/qq_16810885/article/details/133027196