野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5310|回复: 8

[经验\资料] usb共享网络

[复制链接]
发表于 2023-1-29 17:35:52 | 显示全部楼层 |阅读模式
本帖最后由 おおおじ。 于 2023-1-30 15:05 编辑

前言

野火Debian系统提供了USB转U盘、虚拟串口以及虚拟网卡功能,本文教大家如何配置网络信息使开发板通过usb
虚拟网卡联网。

开发环境
PC:win10
开发板:野火imx6ill或者stm32mp157
开发板镜像:野火debian_2022_12_24

一、硬件连接
usb线插到USB OTG口,将pc和开发板连接起来
野火论坛202301291522009560..png
野火论坛202301291522135039..png
野火论坛202301291528466938..png

二、PC端配置
连接usb otg口后pc端会多出一个未识别的本地网络
(如果没有这个网络请看本文第四点)
野火论坛202301291533072321..png


将pc网络共享到开发板网络
野火论坛202301291659248160..png


右击未识别网络的属性,配置网络信息,如下图所示
手动设置ip地址为:192.168.7.1
子网掩码为:255.255.255.252
野火论坛202301291542163707..png

关闭防火墙
野火论坛202301291648412770..png

开发板和电脑互ping测试
野火论坛202301291650442405..png

三、开发板端配置
输入ifconfig
野火论坛202301291655289809..png
usb0就是虚拟网卡,可以看到ip是192.168.7.2

输入cat /etc/network/interfaces 可以看到usb0的配置信息,如果需要修改虚拟网卡的ip等信息可以改这个文件,pc端也要同步更改
野火论坛202301291656414000..png

虽然pc端已经设置了共享网络给开发板,但此时开发板还不能上网,原因是开发板路由表没有路由信息以及没有配置DNS  servers。

添加路由信息
route add default gw 192.168.7.1
输入route -n进行查看
野火论坛202301291706314326..png

添加DNS  servers
sudo vi /etc/resolv.conf
添加
nameserver 8.8.8.8
野火论坛202301291707336818..png

网络测试
ping baidu.com -I usb0
野火论坛202301291708279024..png
可以看到usb0这个虚拟网卡已经可以正常上网了,但还需要将路由信息以及dns servers配置写入开机自启动脚本,不然重启后以上两个信息会消失

可以参考https://doc.embedfire.com/lubancat/build_and_deploy/zh/latest/building_image/using_systemd/using_systemd.html#systemd-systemd
文档1.4  Systemd–创建自己的Systemd服务,创建一个自己的自启动脚本,然后将下面两句命令写入
echo "root" | su -c 'route add default gw 192.168.7.1' root
echo "root" | su -c 'echo nameserver 8.8.8.8 >> /etc/resolv.conf' root

或者可以直接写入到系统自带的自启动脚本
ls /etc/init.d/
野火论坛202301291713068361..png
/etc/init.d/目录下都是系统自启动的程序,一般不推荐修改这里面任何已有的程序,除非是自己创建的脚本,我们上面两行命令是配置网络信息,可以写入到/etc/init.d/udhcpd里面
sudo vi /etc/init.d/udhcpd
在最后一个exit 0前面添加

echo "root" | su -c 'route add default gw 192.168.7.1' root
echo "root" | su -c 'echo nameserver 8.8.8.8 >> /etc/resolv.conf' root

野火论坛202301291728372912..png

保存并重启开发板,查看信息并测试
野火论坛202301291732209777..png

四、虚拟网卡未识别
win10是自带这个虚拟网卡的驱动的,但也有可能无法识别,这时就需要更新网卡驱动



情况一
设备管理器->网络适配器里面有设备有感叹(虚拟网卡是RNDIS)
野火论坛202301301427514468..png

此时需要更新RNDIS的驱动,win10是自带RNDIS驱动的,可以先尝试使用系统自带的

1、使用系统自带的驱动
野火论坛202301301432181149..png

野火论坛202301301432592677..png

野火论坛202301301433149856..png

(如果有显示兼容硬件则取消勾选
野火论坛202301301441298667..png

野火论坛202301301444249825..png
选择Microsoft厂商的远程NDIS兼容设备

然后选择右下角下一页,确认,就可以看到感叹号消失,设备名字改为远程NDIS兼容设备
野火论坛202301301448065054..png

2、手动安装下载的驱动
RNDIS.zip (11.49 KB, 下载次数: 85)

使用这个驱动前需要禁用win10强制数字签名
https://jingyan.baidu.com/article/624e74594dbc8d34e8ba5aa6.html

前面操作和上面一致,这个页面选择从磁盘安装
野火论坛202301301454582743..png

野火论坛202301301455516515..png

情况二
设备管理器里面的网络适配器没有NDIS设备,没有感叹号,完全识别不到虚拟网卡

首先要确认硬件连接,重新插拔接口、换线换电脑插口

还是不行可以尝试下载情况一第2点的驱动包,禁用数字签名,然后右击驱动包里面的RNDIS.inf,选择安装,安装完成后再次去设备管理器查看

五、手机usb共享网络

可以将手机的网络通过usb共享给开发板

操作步骤:

1.手机需要连接互联网
2.手机与板卡使用USB连接起来
3.手机开启USB共享的功能

完成上面步骤后板卡即可共享手机上的网络

手机开启USB共享的功能可以去百度查询,因为不同的手机, 不同系统版本的设置方式不一样,这里就不做详细。
野火论坛202301301504564217..png


回复

使用道具 举报

发表于 2023-1-31 09:14:17 | 显示全部楼层
66
回复

使用道具 举报

发表于 2023-2-27 19:16:21 | 显示全部楼层
你好,我按照你说的做,并且已经连上网安装了nfs客户端了,但是挂载nfs服务时显示连接超时,板子和虚拟机之间也能正常ping通
野火论坛202302271915346744..png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-27 22:36:05 | 显示全部楼层
teppp 发表于 2023-2-27 19:16
你好,我按照你说的做,并且已经连上网安装了nfs客户端了,但是挂载nfs服务时显示连接超时,板子和虚拟机之 ...

虚拟机的ip怎么是169.254开头
设置两个网卡,一个nat一个桥接,桥接的桥接到这个usb的本地网络或共享给usb网络那个网络看下,能不能互ping
另外,也可以用ssh、scp传文件,不一定要nfs
回复 支持 反对

使用道具 举报

发表于 2023-2-27 23:42:29 | 显示全部楼层
おおおじ。 发表于 2023-2-27 22:36
虚拟机的ip怎么是169.254开头
设置两个网卡,一个nat一个桥接,桥接的桥接到这个usb的本地网络或共享给us ...

谢谢你,已经解决了
回复 支持 反对

使用道具 举报

发表于 2023-2-28 11:22:58 | 显示全部楼层
这个有利厉害、也有点复杂...
回复 支持 反对

使用道具 举报

发表于 2023-3-12 22:35:10 | 显示全部楼层

谢谢分享
回复

使用道具 举报

发表于 2023-5-24 15:16:18 | 显示全部楼层
厉害厉害,我想深入了解下,要是实现这个USB共享网络功能,是在内核里打开了什么配置吗,还是添加了什么驱动才行?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-25 06:46 , Processed in 0.067373 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表