嵌入式linux网络配置

2019-07-12 14:08发布

嵌入式linux 网络配置

1 配置IP

  • IP是什么不多说了
  • 步骤
    ifconfig eth0 x.x.x.x netmask 255.255.255.0
    如果 ping 不同127.0.0.1 ,可能是还没配置localhost ,需要执行 ifconfig lo 127.0.0.1 up

2 查看网关,配置网关,检查配置

  • 网关是什么?
    通俗的说,网关是一个网络连接另一个网络的**“关口”(gateway),实质上是一个网络通向其他网络的IP地址**,参考百科里的介绍。
  • 步骤:
    route 查看网关,即gateway, 默认是 *
    route add default gw x.x.x.x 配置网关。
    route -n 查看配置,正确的:
    这里写图片描述
  • 那么网关应该配置为多少?
    我现在开发板通过网线连接到路由器,电脑也连到路由器,现在的网关就是 192.168.1.1,同时我电脑设置的自动获取IP,可以在cmd里用ipconfig查看一下电脑的ip,开发板可以ping通电脑,也可以ping通 192.168.1.1。 现在路由器我电脑和开发板和路由器就构成了一个局域网,如果想访问外网,就按照一般方法去配置路由器。
  • 注意 前面设置IP时,一定要和网关在同一网段,不然即使连线接在一起了也ping不同。一般使用ping网关的方法,测试网络问题是否在局域网内。

3 配置DNS

  • DNS是什么?
    DNS(Domain Name System,域名系统),是一个域名和IP相互映射的分布式数据库,使用户不需要记住IP,只需要记住域名。在linux中可以修改/etc/hostname/etc/hosts ,给对应的IP配上对应的主机名,DNS与此类似。
  • 前面如果配置完可以通过IP连接外网了,那么可以ping一个外网IP试试,我试了一下用电脑ping一些DNS,但是都不通,但是我电脑是可以访问网络的,看到有人说DNS一般是禁止ping的,现在不知是这个原因还是路由器设置的问题。
  • 步骤:
    cd /etc 切换到 etc 目录下
    ls 看一下有没有resolv.conf 这个文件,默认应该是没有的
    vi resolv.conf 创建并编辑resolv.conf,添加内容 nameserver 8.8.8.8
    现在正常来说,应该可以ping外网了,比如 ping www.baidu.com 。但是应该还是我用的路由器的问题,也可能是校园网的问题,我电脑和开发板都ping不通baidu,但是能ping通校园网,同时我电脑是可以正常上网的。这个问题对我的使用暂时没啥影响。
  • 另外在https://www.zhihu.com/question/21804682 看到关于有路由器时设置固定DNS的问题,如果电脑没有设置DNS,而是自动从DHCP获取,那么就是从路由器获取DNS,如果不是电脑设置了固定的DNS,那就会忽略路由器的设置。路由器的DNS也是可以设置的。

Zynq 运行linux时网络配置的相关问题

###问题1: 启动linux 后输入ifconfig 无反应
  • 首先确定在vivado 中配置block design的时候一定要使能ENET
  • 输入ifconfig无反应的原因可能是没有设置bootargs的ip地址,所以没有初始ip地址,输入ifconfig就无反应,这时直接配置一下就可以,执行
    ifconfig lo 127.0.0.1 up 配置localhos他,否则ping不通127.0.0.1
    ifconfig eth0 x.x.x.x netmask 255.255.255.0x.x.x.x 为要设置的ip。
    ###问题2: 现在zedboard 启动linux有问题,每次启动,linux系统的配置都会重置,只有sd卡中的内容是保存下来的。
  • 解决方法: 目前方法是写一个配置网络的脚本放在sd卡里。。。 正确方法应该是修改linux启动方式。
  • 注意,xilinx linux 里默认的Shell是 不是bash,而是使用了busybox,其中busybox中的Shell为ash,所以shell脚本的开头写 #! /bin/sh
    可以使用echo $SHELL 查看默认Shell类型

问题3: SSH 连接zynq

  • 用户名是root,密码可以先通过串口访问zynq,然后用passwd 命令设置新密码。

问题3: zedboard 配置了dns后ping 不同localhost?

  • 取消配置就可以ping 通了,在/etc目录下创建 resolv.conf 并且添加 nameserver x.x.x.x 后,xilinx linux好像就不再去解析 /etc/hosts 中的内容,原因还没找到。

问题4: 如何通过ssh传输文件到zedboard?

  • 使用 scp xx.txt root@x.x.x.x:/etc 可将文件xx.txt 传输到板子的 /etc 目录下

虚拟机网络配置

路由器如何给虚拟机一个IP?

  • 虚拟机的网络直接设置成桥接即可,然后再虚拟机中可以设置一个固定IP
  • 什么是桥接?