Linux开发 | 电脑WiFi上网,开发板和电脑网线直连,文件拷贝

Posted 果果小师弟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux开发 | 电脑WiFi上网,开发板和电脑网线直连,文件拷贝相关的知识,希望对你有一定的参考价值。

使用场景:路由器离电脑比较远,只有一条网线。设备:电脑(Windows)、正点原子 Linux 开发板(出厂系统)、路由器/交换机、直通网线。如果是台式机没有无线网卡的话,可以使用正点原子的USB 转 WIFI 模块来让电脑连接到WiFi。

一、VMware设置

打开VMware Workstation Pro 里的虚拟机 -> 设置


设置网络适配器为桥接模式。

因为电脑是WiFi上网,所以需要添加一个网络适配器并设置成 NAT 模式,供虚拟机上网。具体操作如下图所示。

默认添加的网络适配器是NAT模式的,如果不是NAT模式则要手动设置成NAT模式

打开菜单栏的编辑 -> 虚拟网络编辑器


点击虚拟网络编辑器的 更改设置 选项。

这个需要电脑管理员权限,如果有提示用户账户控制的提示框,点击 就可以了。


重新打开虚拟网络编辑器,可以看到如下界面。

如果此时没有VMnet0,可以手动添加下。


开发板是直连到电脑的网口的,所以需要虚拟网络编辑器里的网络适配器 1(即 VMnet0) 桥接到有线网卡上,比如文档这里是 Realtek PCIe,如下图所示。

我们需要把网络桥接到这个网卡上,以下处理的都是VMnet0,用于桥接网络。

设置完成后点击确定,再点击应用即可。


如果虚拟机之前设置过网络的相关信息,自己却搞混了,不清楚现在虚拟机网络的设置情况(虚拟网络情况复杂),可以点击虚拟网络编辑器左下方的还原默认设置这步需要先关闭虚拟机再进行


这里会提示我们是否恢复到默认网络设置,点击即可。恢复到默认网络设置后如下图所示,全部的VMnet子网地址会重新随机分配。

这时候就可以按照之前的步骤来设置网络适配器桥接到有线网卡,最终设置成如下。

二、Ubuntu设置

启动虚拟机,打开Ubuntu的网络设置。


在网络设置中有两个有线网络,其中一个还没有设置 IP 的,是我们的网络适配器 1,用来桥接到开发板和 Windows 的。

另外一个有线网络其实是NAT 模式的网络适配器 2,已经自动分配好IP 了。


注意,此时这个 NAT 模式的网络适配器和笔者前面设置的 VMnet8 是在同一网段的(192.168.197.X),如果不是在同一网段,可能是之前用户有设置过 Ubuntu 的 IP,这里我们可以在这个网络的选项中将它设置为自动模式即可。

有了这个NAT 模式的网络适配器 2,Ubuntu 就能上网且能和Windows 互通。先测下 Ubuntu 上网功能,ping 下百度。

ping www.baidu.com	

测试Ubuntu 和Windows 互传之前,要关闭Ubuntu 和 Windows 的防火墙。


根据虚拟机的信息,设置站点,如下图所示。


设置完后连接站点服务器,即可加载 Ubuntu 和 Windows 的目录,可以实现文件互传。


现在要做的就是设置桥接模式的网络适配器 1 的 IP 信息。网络适配器 1 用于和 Windows和开发板通信,所以我们要先看下Windows 主机的用于桥接网络的 IP。

查看Windows 主机的 IP:在 Windows 端按下win + R快捷键打开运行栏,输入cmd指令后按下回车。


在打开的终端中输入 ipconfig 指令,查看电脑的 IP。

ipconfig

查看 Windows 主机的 IP 信息

可以看到Windows 主机的网络比较复杂,这里我们只截取可能用到的信息。根据 Windows的ipconfig 指令和Ubuntu 虚拟网络编辑器,可以对应到以下表格。

网络适配器名IP 地址备注
以太网适配器 以太网169.254.10.200以太网的 IP 信息,默认有一个 IP,需要手动修改。如果显示已断开,请将电脑网口接到开发板网口上
以太网适配器 以太网2 VMware Network Adapter VMnet1192.168.143.1在 host-only 模式下,动态分配虚拟系统的TCP/IP 配置信息,本文档不涉及
以太网适配器 以太网3 VMware Network Adapter VMnet8169.168.197.1提供DHCP 服务,用于主机和虚拟机互通,虚拟机上网
无线局域网适配器 WLAN192.168.31.151用于Windows 主机上网
以太网适配器VMware Network Adapter VMnet0不提供 DHCP,用于桥接网络,要在虚拟网络编辑器设置手动设置 IP

在 Windows 终端没有看到 VMnet0,在虚拟网络编辑器中可以看到。这是我们用来桥接的网络适配器,不会自动分配IP,需要手动设置。这里要注意,VMnet0 设置的网段不能和VMnet1、 VMnet8 的网段一样,不然会有冲突

我们需要手动设置Ubuntu 中桥接网络的 IP。回到Ubuntu 中,打开网络适配器 1 的选项。

参考如下设置,这里我们将连接名称改为VMnet0 桥接模式 ,方便区别。将 IP 手动设置为192.168.10.100,子网掩码255.255.255.0,网关 192.168.10.1


如果设置完成后,虚拟机就可以上网了。

三、Windows 设置

设置完 Ubuntu 的VMnet0 后,再设置 Windows 的以太网 IP 的相关信息。

在 Windows 主机打开控制面板 -> 网络和 Internet -> 网络连接,找到以太网。


选择以太网,右键打开菜单栏,选择属性。在打开的网络设置中,双击 Internet 协议版本4
(TCP/IPv4),如下图所示。按照下图设置以太网的IP为 192.168.10.200,要和虚拟机的VMnet0在同一网段。

四、开发板设置

接下来设置下开发板的 IP。这里我们将开发板 IP 设置为 192.168.10.50,和 VMnet0 在同一网段即可。

进入开发板文件系统,设置开发板 IP。

ifconfig eth0 up
ifconfig eth0 192.168.10.50 ifconfig
ifconfig

五、ping 测试

开发板 ping 虚拟机Ubuntu 的 IP

ping 192.168.10.100

开发板 ping 主机Windows 的 IP。

ping 192.168.10.200

Ubuntu 虚拟机 ping 开发板的 IP。

ping 192.168.10.50

Windows 主机 ping 开发板。

ping 192.168.10.50


以上就是开发板、Ubuntu 和 Windows 三者互 ping 测试,在开发板 uboot 命令行设置完开发板 IP 相关的信息后,也能 ping 虚拟机 Ubuntu。

setenv ipaddr 192.168.10.50 
setenv ethaddr 00:04:9f:04:d2:35 
setenv gatewayip 192.168.10.1
setenv netmask 255.255.255.0
setenv serverip 192.168.10.100 
saveenv

ping 192.168.10.100

uboot 阶段时,Ubuntu 虚拟机 ping 开发板是没有反馈的,所以不用进行这一步。按照上述完成测试后,就可以使用TFTP 和 NFS 来挂载内核、设备树和文件系统

六、总结

防火墙设置:关闭电脑和虚拟机的防火墙。
网络连接:电脑使用无线上网,开发板网口直连电脑网口。
VMwear 设置:设置网络适配器为桥接模式;添加一个网络适配器2为 NAT 模式
Ubuntu 设置:设置 NAT 模式的网络适配器为自动获取模式(DHCP);手动设置桥接模式的网络适配器的 IP 信息。
Windows 设置:手动设置以太网 TCP/IPv4 属性中的 IP 信息。
开发板设置:手动设置开发板的 IP 信息。

注意:Ubuntu里桥接模式的网络适配器、电脑的以太网、开发板的网口,三者要在同一网段,且不能与NAT模式的网络适配器、虚拟机子网在同一网段。Windows和Ubuntu通过NAT模式的网络适配器通信。

七、文件拷贝

经过上面的设置 就可以scp命令,在ubuntu和开发板之间拷贝文件了

例如,在 home 目录下有个 test 文件我们要把这个 test 文件传到开发板的/home/root 目录(我们一般传文件都是传文件到家目录(/home/root)的)。指令格式如下

拷贝文件

scp 文件 用户名@ip 地址:路径

拷贝文件件

scp -r 文件夹 用户名@ip 地址:路径

例:scp main.cpp root@192.168.10.50:/home/root

指令格式分析:

  • mian.cpp要传输的文件
  • root 为用户名,开发板默认的就是 root 用户,拥有最高权限
  • @ 一个符号
  • 192.168.10.50 开发板 ip
  • : 这里要加一个英文字符的“:”,不要忘记了!
  • /home/root 要传输到开发板的路径

在开发板/home/root 可以看到main.cpp 文件已经通过网络传输到开发板了。

ls

以上是关于Linux开发 | 电脑WiFi上网,开发板和电脑网线直连,文件拷贝的主要内容,如果未能解决你的问题,请参考以下文章

linux内核移植,DM9000网卡驱动的移植,ARM开发板和电脑之间无法ping通,不知道啥原因,有人能解决吗?

安卓手机网怎么连接电脑

手机如何用数据线连接电脑上网

android真机能使用wif,且可以上网i,但却无法连接电脑搭建的服务器??为啥?

Android WiFi开发教程——WiFi热点的创建与关闭

Linux系统下怎么上网?