前言

打算让开发板和主机以及外部网站实现通信。


一、基础配置

1.1 主机侧网络配置

首先将开发板上的网口通过usb连接到主机上。

随后将主机上的wifi按照下述箭头步骤修改配置,目标是与开发板共享主机的网段。
在这里插入图片描述

1.2 开发板侧网络配置

完成1.1后,按照下述步骤在开发板侧完成网段配置,参考了这个链接

root@zynq7035_sd:~# ifconfig eth0 192.168.137.30 up
root@zynq7035_sd:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0A:35:00:1E:53
          inet addr:192.168.137.30  Bcast:192.168.137.255  Mask:255.255.255.0
          inet6 addr: fe80::20a:35ff:fe00:1e53/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2202 (2.1 KiB)  TX bytes:2610 (2.5 KiB)
          Interrupt:30 Base address:0xb000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@zynq7035_sd:~# route add default gw 192.168.137.1
root@zynq7035_sd:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0A:35:00:1E:53
          inet addr:192.168.137.30  Bcast:192.168.137.255  Mask:255.255.255.0
          inet6 addr: fe80::20a:35ff:fe00:1e53/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2202 (2.1 KiB)  TX bytes:2900 (2.8 KiB)
          Interrupt:30 Base address:0xb000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

然后配置DNS服务器,如下:

root@zynq7035_sd:~# vi /etc/resolv.conf
root@zynq7035_sd:~# cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

然后可以和百度ping一下:

root@zynq7035_sd:~# ping www.baidu.com
PING www.baidu.com (103.235.46.115): 56 data bytes
64 bytes from 103.235.46.115: seq=0 ttl=48 time=227.265 ms
64 bytes from 103.235.46.115: seq=2 ttl=48 time=215.983 ms
64 bytes from 103.235.46.115: seq=5 ttl=48 time=214.476 ms
64 bytes from 103.235.46.115: seq=7 ttl=48 time=217.828 ms
64 bytes from 103.235.46.115: seq=10 ttl=48 time=218.512 ms
64 bytes from 103.235.46.115: seq=13 ttl=48 time=222.289 ms
64 bytes from 103.235.46.115: seq=16 ttl=48 time=215.562 ms
64 bytes from 103.235.46.115: seq=19 ttl=48 time=223.114 ms
64 bytes from 103.235.46.115: seq=20 ttl=48 time=212.965 ms
64 bytes from 103.235.46.115: seq=22 ttl=48 time=215.304 ms
64 bytes from 103.235.46.115: seq=23 ttl=48 time=221.614 ms
64 bytes from 103.235.46.115: seq=25 ttl=48 time=210.926 ms
64 bytes from 103.235.46.115: seq=31 ttl=48 time=216.700 ms
64 bytes from 103.235.46.115: seq=36 ttl=48 time=218.378 ms
64 bytes from 103.235.46.115: seq=41 ttl=48 time=218.318 ms
64 bytes from 103.235.46.115: seq=44 ttl=48 time=209.853 ms
64 bytes from 103.235.46.115: seq=48 ttl=48 time=203.057 ms
64 bytes from 103.235.46.115: seq=60 ttl=48 time=218.471 ms

没出现问题!

二、和主机之间的通信

狭义地说,只实现主机通过网线和开发板之间互相传输文件。

这个早在之前的Yolov4与ZYNQ一章中就已提及,但那一章的方法不支持和外部网站之间的通信。

沿用一中的配置,打开ssh的窗口后设置remote host为开发板端的IPv4网段,如下:
在这里插入图片描述

然后为了测试本地和开发板端之间可以传输文件,本地放了文件名为a的txt文档,可以通过鼠标挪动文件的方式传入开发板。
在这里插入图片描述
效果如下:
在这里插入图片描述
上图同时演示了从主机传输文件到开发板端,以及从开发板端传输文件到主机。

尽管能完成以上操作,但ping主机没有成功,很费解。出现的情况如下:

root@zynq7035_sd:~# ping 192.168.137.1
PING 192.168.137.1 (192.168.137.1): 56 data bytes
^C
--- 192.168.137.1 ping statistics ---
110 packets transmitted, 0 packets received, 100% packet loss

不过还是满足需求了,先不管那个了,等我后面计算机网络的知识学完了回过头来再看看!

三、和外部网站之间的通信

参考一中ping百度的操作。

能ping通外部网站的好处可太多了,开发板端本地编译如果要下载文件可以自动联网下载!

三年前试过这个操作,但忘记了,于是还是写到博客里面记录一下流程,便于后续查阅。

四、开机时未发现inet的解决方案

开机自启动后的输出:

...
Starting internet superserver: inetd.
Starting syslogd/klogd: done
Starting tcf-agent: OK

PetaLinux 2019.1 proj_peta /dev/ttyPS0

proj_peta login: root
Password:
root@proj_peta:~# ls
root@proj_peta:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0A:35:00:1E:53
          inet6 addr: fe80::20a:35ff:fe00:1e53/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1408 (1.3 KiB)  TX bytes:1380 (1.3 KiB)
          Interrupt:30 Base address:0xb000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

很明显,没有出现IPv4,怎么办?(此时的状态是:开发板和主机之间已经使用串口、网线连接,但尚未配置主机的网络共享)

我的解决方案是:先按照一配置完主机的网络共享,在配置的过程中,开发板端的输出如下:

macb e000b000.ethernet eth0: link down
macb e000b000.ethernet eth0: link up (1000/Full)
macb e000b000.ethernet eth0: link down
macb e000b000.ethernet eth0: link up (1000/Full)

随后:

root@proj_peta:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0A:35:00:1E:53
          inet addr:192.168.137.4  Bcast:192.168.137.255  Mask:255.255.255.0
          inet6 addr: fe80::20a:35ff:fe00:1e53/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:57 errors:0 dropped:0 overruns:0 frame:0
          TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5606 (5.4 KiB)  TX bytes:7916 (7.7 KiB)
          Interrupt:30 Base address:0xb000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@proj_peta:~# route add default gw 192.168.137.1

## DNS已经配置好了,可以cat看看
root@proj_peta:~# cat /etc/resolv.conf
domain mshome.net
nameserver 192.168.137.1

## ping百度试试
root@proj_peta:~# ping www.baidu.com
PING www.baidu.com (180.101.49.44): 56 data bytes
64 bytes from 180.101.49.44: seq=0 ttl=51 time=20.088 ms
64 bytes from 180.101.49.44: seq=1 ttl=51 time=21.352 ms
64 bytes from 180.101.49.44: seq=2 ttl=51 time=21.145 ms
64 bytes from 180.101.49.44: seq=3 ttl=51 time=26.002 ms
64 bytes from 180.101.49.44: seq=4 ttl=51 time=22.302 ms
^C
--- www.baidu.com ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 20.088/22.177/26.002 ms

## ping主机试试
root@proj_peta:~# ping 192.168.137.1
PING 192.168.137.1 (192.168.137.1): 56 data bytes
^C
--- 192.168.137.1 ping statistics ---
11 packets transmitted, 0 packets received, 100% packet loss

总结

完成网络配置,以实现主机端和开发板端的文件互传以及开发板端的联网下载。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐