嵌入式Linux开发_Ping来Ping去

ping通了,才顺。

本文大部分学习了韦东山老师的相关教程,自己着重记录了易忘部分。

目录

一、Ping的设置流程

二、桥接和NAT区别

三、开发板不同阶段设置IP

四、开发板直连PC

五、实在Ping不通_玄学问题

六、开发板通过NFS挂载Ubuntu的目录


一、Ping的设置流程

windows的IP要有确定状态,使用有线网卡的话本地连接要连接上,措施可以是将网线插在交换机上或者其他有网卡的设备上,否则Linux虚拟机和windows相互ping时,windows都没有IP,所以ping不通,出现“From 192.168.0.9 icmp_seq=1 Destination Host Unreachable”提示,如下图所示;

② 桥接模式(勾选复制状态)+ 选择对应网卡(管理员身份打开虚拟网络编辑器,一般VMnet0选择桥接模式,桥接到本地有线网卡Realtek PCIe GbE Family Controller,不要选自动);

③ 设置开发板IP等参数。

注意:Windows中的WIFI网卡、有线网卡,它们2IP的网段绝不能相同!

二、桥接和NAT区别

桥接模式:(非校园网使用)

在这种模式下,Windows主操作系统、VMWare上运行的Ubuntu操作系统,就相当于2台独立的电脑。

如果Windows需要拔号才能上网,那么Ubuntu也需要拔号才能上网。但是一般来说学校、单位没有Ubuntu下的拔号软件。这时,Ubuntu想上网就不能使用桥接模式。

NAT模式:(校园网使用)

VMWare上运行的Ubuntu操作系统,它对外访问时,会使用WindowsIP,这称为共享主机WindowsIP

在这种模式下,只要Windows能上网,Ubuntu就可以上网,Ubuntu的IP相关设置都为自动。

但是这种模式下,开发板无法访问Ubuntu,适合中途暂时联网下载资料。

三、开发板不同阶段设置IP

开发板运行UBOOT时、运行LINUX时,它们的IP需要分别设置,这两个阶段的IP没有联系。这两个阶段不会同时运行,所以它们的IP可以相同。

如果开发板正在运行UBOOT,执行以下命令设置IP:

set ipaddr 192.168.1.123
save

注意:UBOOT不回应PING数据,所以你是PING不通UBOOT的,只能在UBOOT去PING外边的电脑。如果最后uboot代码返回显示alive”就表示通了。有时候Windows有防火墙导致PING不通,可以尝试去PING ubuntuIP

  • 如果开发板正在运行LINUX,一般来说也不需要设置IP。如果有问题,比如执行ifconfig命令后无法查看到网卡的IP,你可以执行以下命令设置手工IP:

  • echo  “ifconfig   eth0  192.168.1.123”  >> /etc/init.d/rcSreboot

四、开发板直连PC

以下两个阶段都不好控制,所以,不要直连,中间加路由器或者HUB设备! 

如果电脑和开发板用网线直连,开发板上的程序,必须全程使能网卡:

a. 如果你要在开发板上玩UBOOT

原生UBOOT是个奇葩,它平时不使能网卡,只有在使用网络命令那一小会,才使能网卡。

如果一定要直连,必须更换为"全程使能网卡的UBOOT",一般情况下并没有全程使能网卡。

b. 如果你要在开发板上玩LINUX:

这个LINUX必须有网卡驱动,必须配置了网卡,可以在开发板里执行类似这样的命令:

ifconfig eth0 192.168.1.123

五、实在Ping不通_玄学问题

问题1:windows可以连外网,Ubuntu可以连外网,可以ping外网,但是windows和Ubuntu互ping不通。

过程:设置了一切,桥接+各方ip+防火墙关闭+Ubuntu重启,无果。

解决:windows重启,一切ok。

分析:可能是某些设置windows没有及时生效。

防火墙问题:Windows的防火墙拦截,启用这两规则:(位于:防火墙的高级设置(安全高级windows Defender)-入站规则)

问题2:网络连接中没有虚拟网卡 “VMware Network Adqpter” VMnet1和VMnet8,Ubuntu可以ping通windows,反向失败。

过程:各种电脑重启,各种VM服务重启动,虚拟网络编辑器恢复默认设置,都无效;发现共同点是,安装VM时候网络驱动等待漫长、虚拟网络编辑器重置驱动漫长(实际上也没有成功恢复驱动,只是没有提示);最后尝试用驱动精灵更新windows的有线、无线驱动(本质上没联系,不需要这样做),但是却惹出了祸,驱动出了问题,无线、有线网卡都不显示了,恢复也不行,官方配套的驱动程序也不行,很是郁闷。

解决:重装了1903版本的win10,之前的是1809版本的win10。

分析:应该是1809版本比较旧,或者哪些地方冲突了,系统的问题,其它地方实在是无解。

六、开发板通过NFS挂载Ubuntu的目录

开发板上不一定安装有FTP服务、SSH等服务,所以不一定能使用FTP等工具登录开发板。

但是开发板的系统一般都自带mount命令,并且支持NFS文件系统。所以可以在开发板上执行mount命令挂载ubuntu的某个目录。这样就可以在开发板和Ubuntu之间传文件了。

开发板使用NFS挂载Ubuntu的前提Ubuntu中已经安装了NFS服务,并且在/etc/exports中配置了某个目录供挂载。

  • Ubuntu上安装、配置NFS服务

如果你的Ubuntu未安装NFS服务,那么在确保Ubuntu可以上网的前提下,执行以下命令:

sudo apt-get install nfs-kernel-server

 然后,修改/etc/exports,添加类似以下的内容,下面的例子里允许开发板通过NFS访问Ubuntu/home/book/work两个目录:

/home/book   *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
/work         *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)

 最后,重启NFS服务,在Ubuntu上执行以下命令:

sudo /etc/init.d/nfs-kernel-server restart

可以在Ubuntu上通过NFS挂载自己,验证一下NFS可用:

sudo mount -t nfs -o nolock, vers=3 127.0.0.1:/home/book /mnt
ls /mnt
  • 在开发板上挂载UbuntuNFS文件系统

确保开发板可以pingUbuntu后,就可以通过NFS挂载Ubuntu中的某个目录(查看Ubutnu/etc/exports文件)。

假设UbuntuIP为:192.168.1.100,在开发板上可以执行下面的命令挂载Ubuntu/home/book目录到开发板的/mnt目录:

 mount -t nfs -o nolock, vers=2 192.168.1.100:/home/book /mnt
 // 如果不成功,就把vers=2改为vers=3或vers=4,因为exports文件中不同版本的语法不一样
 mount -t nfs -o nolock, vers=3 192.168.1.100:/home/book /mnt

如果一切正常,你可以在Ubuntu上把文件放到/home/book目录中,在开发板上可以从/mnt目录中访问该文件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值