ZYNQ7020使用eth1
❶ linux配置中eth0和eth1做什么用的
都是上网用的,只是名称不同。
eth0,eht1相当于windows的本地连接1本地连接2,就是告诉你现在又两块网卡,一块叫eth0,另一块叫eth1。
例如:
目录etc/sysconfig/network-scripts下面,ifcfg-eth0就代表eth0的配置,把文件改成了eth1,文件内容做下修改, 那就是eth1了。
当然,这种配置方法并不适用于所有的linux系统,但对RHEL是适用的。
(1)ZYNQ7020使用eth1扩展阅读:
使用注意事项
子网卡在这里并不是实际上的网络接口设备,但是可以作为网络接口在系统中出现,如eth0:1、eth1:2这种网络接口。它们必须要依赖于物理网卡,虽然可以与物理网卡的网络接口同时在系统中存在并使用不同的IP地址,而且也拥有它们自己的网络接口配置文件。但是当所依赖的物理网卡不启用时(Down状态)这些子网卡也将一同不能工作。
如果将一个物理网卡通过vconfig命令添加到多个VLAN当中去的话,就会有多个VLAN虚拟网卡出现,他们的信息以及相关的VLAN信息都是保存在/proc/net/vlan/config这个临时文件中的,而没有独自的配置文件。它们的网络接口名是eth0.1、eth1.2这种名字。
❷ linux配置中eth0和eth1做什么用的
eth0和eth1这是网卡设备,
只是个名称不必纠结,不是那谁说的一个普通网卡一个无线网卡,他什么都不懂。
通常服务器会有多个网卡的,所以就有eth0
eth1
eth2
这样的名称,
而且在一些系统中对于无线网卡会命名为wlan0
wlan1。。。。
具体的你可以看看目录etc/sysconfig/network-scripts下面,
ifcfg-eth0就代表eth0的配置,你把文件改成了eth1,文件内容做下修改,
那就是eth1了。。
当然,这种配置方法并不适用于所有的linux系统,但对RHEL是适用的。
❸ 如何用linux建立eth1
cp ifcfg-eth0 ifcfg-eth1
然后 vi ifcfg-eth1
按照 里面的 参数 设置 就可以
最简单 方法 如果你有 安装upset
用upset吧
❹ ZYNQ+linux网口调试笔记(3)PL-ETH
在ZYNQ上使用gigE Vision协议的网络接口相机。
第一步:调通PS侧网口GEM0(Xilinx BSP默认配好)。
第二步:调通PS侧网口GEM1(见前一篇文档:开发笔记(1))。
第三步:调通PL侧网口(本文阐述)。
第四步:在PL侧网口上验证Jumbo Frame特性,并在应用层适配gigE Vision协议。
根据《xapp1082》可知,PL侧的PHY支持1000Base-X和SGMII两种配置,这两种配置对应两种不同的PHY引脚接口(连接到MAC)。而我们的hdf文件使用的是1000Base-X的配置。
关于网口的Linux驱动,我们在官网找到一份资料: Xilinx Wiki - Zynq PL Ethernet 。资料很长,我们只看与我们相关的2.4.1 PL Ethernet BSP installation for 1000Base-X”这一章节就可以了。
首先导入FPGA设计同事提供的hdf文件:
在弹出的图形界面里,进入Subsystem AUTO Hardware Settings——Ethernet Settings——Primary Ethernet,确认可以看到PL侧网络设备axi_ethernet_0,说明hdf文件里已包含了必要的网口硬件信息:
上图中被选中的网口将成为Linux上的设备eth0。这里我们默认选择ps7_ethernet_0,即使用GEM0作为首选网口。
启用Xilinx AXI Ethernet驱动
进入Device Drivers -- Network device support – 选中Xilinx AXI Ethernet(以及Xilinx Ethernet GEM,这是PS侧网口的驱动)
进入Networking support – 选中 Random ethaddr if unset
进入Device Drivers -- Network device support -- PHY Device support and infrastructure – 启用Drivers for xilinx PHYs
进入~~~~Device Drivers -- DMA Engine Support -– 禁用~~~~Xilinx AXI DMAS Engine~~~ (对应的配置项名为 ~~ CONFIG_XILINX_DMA ~~~)
注意: Xilinx Wiki里对设备树节点的引用有误(&axi_ethernet),导致编译报错,应改为&axi_ethernet_0。
注:PL-ETH驱动所在路径:<project>/build/tmp/work-shared/plnx_arm/kernel-source/drivers/net/ethernet/xilinx/xilinx_axienet_main.c和xilinx_axienet_mdio.c。对应的内核配置项为CONFIG_NET_VENDOR_XILINX和CONFIG_XILINX_AXI_EMAC。
启用ethtool和tcpmp(调试用,非必须):
然后将生成的BOOT.BIN和image.ub拷贝到SD卡根目录下,将SD卡插入板子上,上电运行。
上电后,使用ifconfig eth1查看网口信息,观察MAC地址与设置的一致,且ifconfig eth1 192.168.1.11 up没有报错。
测试网络通路:ping PC是通的。说明网口工作正常。
Linux下eth1(即PL-ETH)的MAC地址有误
问题描述:
开机打印:
注意:
MAC地址是错的,驱动里解析出的是GEM0的MAC地址。
试验发现,即使在system-user.dtsi里不写local-mac-address,也照样解析出的是GEM0的MAC。
而将system-user.dtsi里的local-mac-address改名为pl-mac-address,并将驱动里解析的字符串也对应更改为pl-mac-address,则可以正确解析出来:
Passing MAC address to kernel via Device Tree Blob and U-Boot:
http://zedboard.org/content/passing-mac-address-kernel-device-tree-blob
通过更改u-boot环境变量和设备树,为每个板子设置一个独特的MAC地址:
https://www.xilinx.com/support/answers/53476.html
U-Boot里的环境变量ethaddr会覆盖掉设备树里pl-eth的local-mac-addr字段,从而影响Linux启动后的网卡MAC地址;
但U-Boot里的环境变量ipaddr不会对Linux启动后的配置产生任何影响。因为设备树里根本就没有关于IP地址的配置。
phy-mode怎么会是sgmii?查了下官方的提供的BSP里,也是“sgmii”。说明这个没问题。具体原因不清楚。
@TODO: 设备树里的中断号的顺序如何影响功能?
为何读出来的IRQ号不对呢?这是因为这里读到的不是硬件的中断号,而是经过系统映射之后的软件IRQ number。两者不具有线性关系。
关于中断号的疑问:
Linux上的网口eth0、eth1的顺序,似乎是按照phy地址从小到大来排布的。
Xilinx xapp1082-zynq-eth.pdf (v5.0) July 16, 2018
https://www.xilinx.com/support/documentation/application_notes/xapp1082-zynq-eth.pdf
Xilinx Wiki - Zynq PL Ethernet:
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841633/Zynq+PL+Ethernet
Xilinx Wiki - Linux Drivers:
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841873/Linux+Drivers
Xilinx Wiki - Linux Drivers - Macb Driver:
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841740/Macb+Driver
Xilinx Wiki - Zynq Ethernet Performance:
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841743/Zynq+Ethernet+Performance
查到关于Jumbo frame MTU的定义,当前值为9000,可否改大一些?
驱动源码里关于jumbo frame的说明:
设置MTU为9000,发现ping包最大长度只能设为ping 192.168.1.10 -s 1472
https://lore.kernel.org/patchwork/patch/939535/
【完】
❺ 广电网络eth0和eth1接口区别
eth0 eth0:1 和eth0.1三者的关系对应于物理网卡、子网卡、虚拟VLAN网卡的关系:
物理网卡:物理网卡这里指的是服务器上实际的网络接口设备,这里我服务器上双网卡,在系统中看到的2个物理网卡分别对应是eth0和eth1这两个网络接口。
子网卡:子网卡在这里并不是实际上的网络接口设备,但是可以作为网络接口在系统中出现,如eth0:1、eth1:2这种网络接口。它们必须要依赖于物理网卡,虽然可以与物理网卡的网络接口同时在系统中存在并使用不同的IP地址,而且也拥有它们自己的网络接口配置文件。但是当所依赖的物理网卡不启用时(Down状态)这些子网卡也将一同不能工作。
虚拟VLAN网卡:这些虚拟VLAN网卡也不是实际上的网络接口设备,也可以作为网络接口在系统中出现,但是与子网卡不同的是,他们没有自己的配置文件。他们只是通过将物理网加入不同的VLAN而生成的VLAN虚拟网卡。如果将一个物理网卡通过vconfig命令添加到多个VLAN当中去的话,就会有多个VLAN虚拟网卡出现,他们的信息以及相关的VLAN信息都是保存在/proc/net/vlan/config这个临时文件中的,而没有独自的配置文件。它们的网络接口名是eth0.1、eth1.2这种名字。
注意:当需要启用VLAN虚拟网卡工作的时候,关联的物理网卡网络接口上必须没有IP地址的配置信息,并且,这些主物理网卡的子网卡也必须不能被启用和必须不能有IP地址配置信息。这个在网上看到的结论根据我的实际测试结果来看是不准确的,物理网卡本身可以绑定IP,并且给本征vlan提供通信网关的功能,但必须是在802.1q下。
/sbin/ifconfig 查看、配置、启用或禁用网络接口(网卡)的工具
ifconfig 是一个用来查看、配置、启用或禁用网络接口的工具,这个工具极为常用的。比如我们可以用这个工具来配置网卡的IP地址、MAC地址、掩码、广播地址等。值得一说的是用ifconfig 为网卡指定IP地址,这只是用来调试网络用的,并不会更改系统关于网卡的配置文件。如果您想把网络接口的IP地址固定下来,目前有三个方法:一是通过各个发行和版本专用的工具来修改IP地址;二是直接修改网络接口的配置文件;三是修改特定的文件,加入ifconfig 指令来指定网卡的IP地址,比如在redhat或Fedora中,把ifconfig 的语名写入/etc/rc.d/rc.local文件中;
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
ifconfig配置网络接口语法:
ifconfig 网络端口 IP地址 hw MAC地址 netmask 掩码地址 broadcast 广播地址 [up/down]
ifconfig常用用法:
ifconfig : 查看主机激活状态的网络接口情况; 输出结果中:lo 是表示主机的回坏地址,eth0 表示第一块网卡, 其中 HWaddr 表示网卡的物理地址(MAC地址); inet addr 用来表示网卡的IP地址,Bcast表示广播地址,Mask表示掩码地址
ifconfig -a : 查看主机所有(包括没有被激活的)网络接口的情况
ifconfig eth0 : 查看特定网络接口的状态
ifconfig eth0 down = ifup eth0 : 如果eth0是激活的,就把它终止掉。此命令等同于 ifdown eth0;
ifconfig eth0 up = ifdown eth0 : 激活eth0 ; 此命令等同于 ifup eth0
ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0 : 配置 eth0的IP地址、广播地址和网络掩码;
ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0 up : 配置IP地址、网络掩码、广播地址的同时,激活网卡eth0
ifconfig eth1 hw ether 00:11:00:00:11:22 : 设置网卡的物理地址(MAC地址)。其中 hw 后面所接的是网络接口类型, ether表示以太网, 同时也支持 ax25 、ARCnet、netrom等,详情请查看 man ifconfig ;
虚拟IP技术在高可用领域像数据库SQLSERVER、web服务器等场景下使用很多,很疑惑它是怎么实现的,偶然,发现了一种方式可以实现虚拟ip。它的原理在于同一个物理网卡,是可以拥有多个ip地址的,至于虚拟网卡,也可用通过该方式拥有多个ip。 即对外提供数据库服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的 任意一个都可以连接到这台主机,所有项目中数据库链接一项配置的都是这个虚IP,当服务器发生故障无法对外提供服务时,动态将这个虚IP切换到备用主机。
其实现原理主要是靠TCP/IP的ARP协议。因为ip地址只是一个逻辑地址,在以太网中MAC地址才是真正用来进行数据传输的物理地址,每台主机中都有一个ARP高速缓存,存储同一个网络内的IP地址与MAC地址的对应关系,以太网中的主机发送数据时会先从这个缓存中查询目标IP对应的MAC地址,会向这个MAC地址发送数据。操作系统会自动维护这个缓存。这就是整个实现 的关键。
在eth0处引用别名,设置完子网掩码即可
ifconfig eth0:0 166.111.69.100 netmask 255.255.255.0 up
此时查看网卡信息
eth0 Link encap:Ethernet HWaddr 08:00:27:64:59:11
inet addr:166.111.69.17 Bcast:166.111.69.255 Mask:255.255.255.0
inet6 addr: 2402:f000:1:4412:a00:27ff:fe64:5911/64 Scope:Global
inet6 addr: fe80::a00:27ff:fe64:5911/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:597673 errors:0 dropped:0 overruns:0 frame:0
TX packets:215472 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:67285933 (67.2 MB) TX bytes:22782158 (22.7 MB)
eth0:0 Link encap:Ethernet HWaddr 08:00:27:64:59:11
inet addr:166.111.69.100 Bcast:166.111.69.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
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:16436 Metric:1
RX packets:843 errors:0 dropped:0 overruns:0 frame:0
TX packets:843 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:67174 (67.1 KB) TX bytes:67174 (67.1 KB)
然后找另一台机器ping这个vip(eth0:0)就可以看到显示结果了。
写在/etc/rc.local里也可以,写在这里就不怕断电后机器无法正常使用了。
更详细参考:Linux-配置虚拟IP实例
用ifconfig 来配置虚拟网络接口:
有时我们为了满足不同的需要还需要配置虚拟网络接口,比如我们用不同的IP地址来架运行多个HTTPD服务器,就要用到虚拟地址;这样就省却了同一个IP地址,如果开设两个的HTTPD服务器时,要指定端口号。
虚拟网络接口指的是为一个网络接口指定多个IP地址,虚拟接口是这样的 eth0:0 、 eth0:1、eth0:2 ... .. eth1N。当然您为eth1 指定多个IP地址,也就是 eth1:0、eth1:1、eth1:2 ... ...以此类推;
ifconfig eth1:0 192.168.1.250 hw ether 00:11:00:00:11:44 netmask 255.255.255.0 broadcast 192.168.1.255 up
ifconfig eth1:1 192.168.1.249 hw ether 00:11:00:00:11:55 netmask 255.255.255.0 broadcast 192.168.1.255 up
注意:指定时,要为每个虚拟网卡指定不同的物理地址;
❻ linux配置中eth0和eth1做什么用的
是一种光纤以太网接口卡,按照以太网通信协议进行信号传输。一般通过光缆与光纤以太网交换机连接。
Eth0和eth1用于区分网卡名。它们的含义与windows本地连接1和本地连接2相同。
这里的子网卡不是一个实用的网络接口,但是它可以作为一个集合接口在系统中闪现,比如eth0:1,eth1:2。
(6)ZYNQ7020使用eth1扩展阅读:
Linux操作系统嵌入了TCP/IP协议栈,协议软件具有路由转发功能。路由和转发依赖于在主机中安装多个网卡作为路由器。
当某一网卡接收到度包时,系统内核会根据度包的目的IP地址查询路由表,然后根据查询结果将度包发送到另一网卡,最后通过该网卡发送度包。主机的进程是路由器的核心功能。
路由功能是通过修改Linux内核参数来实现的。sysctl命令用于配置和显示/proc/sys目录中的内核参数。
出于安全原因,Linux内核默认禁止数据包路由和转发。在Linux系统中,有临时和永久两种方法启用转发功能。
❼ linux光卡为eth1,电口怎么改为eth1
使用setup命令,看网卡具体型号。一般光口网卡都是10Gb的。使用lspci|grepNetwork查看网卡具体型号确定。使用ethtooleth*命令查看网卡详细信息,port类型为:FIBRE的即时光口网卡。
❽ 虚拟机linux添加的新网卡没有发现其配置文件eth1和eth2。
首先,有没有发现这个配置文件都没有什么所谓的
先查看vi /etc/udev/rules.d/70-persistent-net.rules
这里能看到你的网卡信息,找到你对应网卡的NAME
例如
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:8f:89:9
7", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
这里网卡名定义为eth0
然后vi /etc/sysconfig/network-sprict/ifcfg-eth0 新建并编辑这个网卡配置文件,名字其实随意
内容
DEVICE=eth0 对应上面找到的网卡名,这个是关键,其他的按照默认的设置就可以了
设置完之后重启下服务即可识别使用了
跟你说一件事吧,在VM里面,你添加了网卡,就算使用了 ifconfig -a也有时候查看不到任何网卡的,但是你的网卡又确实存在。。。。
❾ 怎么使用LINUX获取本机的网络接口eth1的IP地址和MAC地址
方法一:
$/sbin/ifconfig ethX | awk '/inet addr/ {print $2}' | cut -f2 -d ":"
方法二:
$/sbin/ifconfig ethX | awk '/inet addr/ {print $2}' | awk -F: '{print $2}'
方法三:
$/sbin/ifconfig ethX | sed -ne 's/\(.*\)addr:\([[:digit:].]*\)\(.*\)/\2/p'
把ethX中的X替换为需要查看网卡的序号,如eth0,eth1...
获得本机所有网卡的IPv4地址,方法如下:
$/sbin/ifconfig | awk '{if ( $1 == "inet" && $3 ~ /^Bcast/) print $2}' | cut -f2 -d ":"
如果是IPv6网络,把上面的命令做简单修改即可,如:
$/sbin/ifconfig | awk '/inet6/ {print $3}' ----全部
$/sbin/ifconfig ethX | awk '/inet6/ {print $3}' ----单个
❿ 在Linux上怎么两个网卡配同一个IP
linux中双网卡的梆定
创建一个bond设备,三个简单的步骤即可搞定:
(1)首先要保证相应的驱动程序已经加载:
localhost@root
~#
modprobe
bonding
或
modprobe
<3c59x|
eepro100|pcnet32|tulip|...>
(2)其次给等梆定bond设备分配IP地址
localhost@root
~#
ifconfig
bond0
<IP地址>
netmask
<子网掩码>
broadcast
<广播地址
>
例如
ifconfig
bond0
192.168.1.242
netmask
255.255.255.0
broadcast
172.31.3.254
(3)最后将所有要梆定的物理网卡接口添加到bond设备中去
localhost@root
~#
ifenslave
bond0
[{-f|--force}
bond0
eth0
[
eth1
[eth2]...]
例如
ifenslave
bond0
eth0
eth1
梆定了eth0
eth1两个网卡设备。
--force
表示强制进行梆定
创建好bond设备后,就可以像一般的网卡设备一样使用了
如启动bond0:
#
ifconfig
bond0
up
停用bond0:
#
ifconfig
bond0
down
在不停用bond0的情况下添加接口:
#
ifenslave
{-d|
--detach}
bond0
eth0
[eth1
[eth2]...]
--detach表示"附加"的意思
改变活动的从设备:
#
ifenslave
{-c|--change-active}
bond0
eth0
--change-acitve
表示"改变活动的从设备"的意思
显示主接口(指bond0)信息:
#
ifenslave
bond0
显示所以接口信息:
#
ifenslave
{-a|--all-interfaces}
--all-interfaces
表示"所有接口"