linux网口配置 Linux系统硬件详细信息
本篇文章给大家谈谈linux网口配置,以及Linux系统硬件详细信息对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
linux怎么启动网口
在Linux系统中,启动网口可以通过多种方法实现,包括使用ifconfig命令、ip命令、nmcli命令以及systemctl命令等。
首先,ifconfig命令是Linux中用于配置和显示网络接口状态的经典工具。要启动一个网口,可以执行`ifconfig<网口名称> up`命令,例如`ifconfig eth0 up`,这将启用名为eth0的网口。此外,ifconfig命令还可以用来配置网口的IP地址、子网掩码等参数。
其次,ip命令是ifconfig的替代品,提供了更强大和灵活的功能。使用ip命令启动网口的语法是`ip link set<网口名称> up`,例如`ip link set eth0 up`。与ifconfig相比,ip命令支持更多的网络配置操作,并且在现代Linux发行版中得到了广泛的应用。
除了上述两个命令外,nmcli命令也是启动网口的一种有效方式。nmcli是NetworkManager的命令行接口,可以用来管理网络连接。通过执行`nmcli connection up<连接名称>`命令,可以启动指定的网络连接,从而间接地启用相关的网口。
最后,systemctl命令也可以用来启动网口。systemctl是systemd系统管理器的命令行工具,可以用来控制系统服务。执行`systemctl start network.service`命令将启动网络服务,从而启用所有配置好的网口。需要注意的是,在某些Linux发行版中,可能需要使用特定的服务名称来替代network.service。
总的来说,Linux中启动网口的方法多种多样,具体选择哪种方法取决于系统的配置和个人的偏好。在实际操作中,建议首先确认网口的名称和状态,然后选择合适的命令进行启动操作。同时,为了确保网络配置的正确性,建议在修改配置或执行启动命令前备份相关的配置文件。
此外,值得一提的是,随着Linux系统的不断发展,一些新的网络管理工具和命令也在不断涌现。因此,在学习和使用Linux时,建议保持关注最新的技术动态和官方文档,以便及时了解和掌握新的网络配置和管理方法。
综上所述,无论是在服务器环境还是桌面环境中,Linux都提供了丰富的工具和命令来启动和管理网口,以满足不同用户的需求和场景。
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和tcpdump(调试用,非必须):
然后将生成的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:
通过更改u-boot环境变量和设备树,为每个板子设置一个独特的MAC地址:
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
Xilinx Wiki- Zynq PL Ethernet:
Xilinx Wiki- Linux Drivers:
Xilinx Wiki- Linux Drivers- Macb Driver:
Xilinx Wiki- Zynq Ethernet Performance:
查到关于Jumbo frame MTU的定义,当前值为9000,可否改大一些?
驱动源码里关于jumbo frame的说明:
设置MTU为9000,发现ping包最大长度只能设为ping 192.168.1.10-s 1472
【完】
如何查看linux网口配置
通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使用一些选项属性,ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置。
1.命令格式:
ifconfig [网络设备] [参数]
2.命令功能:
ifconfig命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。
3.命令参数:
up启动指定网络设备/网卡。
down关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。
arp设置指定网卡是否支持ARP协议。
-promisc设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包
-allmulti设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包
-a显示全部接口信息
-s显示摘要信息(类似于 netstat-i)
add给指定网卡配置IPv6地址
del删除指定网卡的IPv6地址
<硬件地址>配置网卡最大的传输单元
mtu<字节数>设置网卡的最大传输单元(bytes)
netmask<子网掩码>设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。
tunel建立隧道
dstaddr设定一个远端地址,建立点对点通信
-broadcast<地址>为指定网卡设置广播协议
-pointtopoint<地址>为网卡设置点对点通讯协议
multicast为网卡设置组播标志
address为网卡设置IPv4地址
txqueuelen<长度>为网卡设置传输列队的长度