一、下载
二、安装
解压:tar -xvf ethtool-4.6.tar.gz
配置:./configure --host=arm-hisiv300-linux
//--host 指定的是交叉编译工具链的前缀
编译:make
生成:ethtool
查看:file ethtool
ethtool: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), not stripped
拷贝:cp ethtool /usr/sbin //拷贝到开发板
扩展: ./configure 的配置和用法
三、测试
/usr/sbin # ethtool eth0
Settings for eth0:
Supported ports: [ TP AUI BNC MII FIBRE ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: external
Auto-negotiation: on
Link detected: yes
也可以如下查看网卡速率:
#cat /sys/class/net/eth0/speed
100
分析:
可以看到支持10M、100M、1000M,而实际网卡速率为Speed: 100Mb/s。
那么问题来了,是不是千兆网卡Speed一定是1000M呢?
结果是不一定,网卡速率和网线,交换机端口速率都有关系,看到Auto-negotiation字段了吧,on表示开启自动协商,插上网线后会两端会自动协商一个都支持的速率。
Link detected 表示插好网线,激活网卡(ifup ethx, 其实是二层up)才会yes。
具体到我这个板卡为何支持1000兆网,网卡速度却是100Mb/s呢?
四、使用
输入./ethtool --help 命令可看到详细的帮助信息。
或可参看:Linux命令之Ethtool用法详解
下面主要讲一下ethtool 配置接口。
用户可以通过标准 ethtool 工具接口进行流控功能的使能。
ethtool –a eth0 命令查看 eth0 口流控功能状态;打印如下:
# ./ethtool -a eth0
Pause parameters for eth0:
Autonegotiate: on
RX: on
TX: on
其中, RX 流控是打开的, TX 流控是打开的;
用户可以通过以下命令打开或关闭流控:
# ./ethtool -A eth0 rx off(关闭 RX 流控)
# ./ethtool -A eth0 rx on(打开 RX 流控)
# ./ethtool -A eth0 tx off(关闭 TX 流控)
# ./ethtool -A eth0 tx on(打开 TX 流控)
GMAC 模块支持 TSO 功能且默认是打开的,如果用户希望关闭 TSO 功能,可通过工具 ethtool 将其关闭。开关 TSO 功能的方法如下:
关闭 TSO: ./ethtool –K eth0 tx off
打开 TSO: ./ethtool –K eth0 tx on
TSO( TCP Segment Offload)功能简介:
TSO (TCP Segmentation Offload)是一种利用网卡分割大数据包,减小 CPU 负荷的一种技术,也被叫做 LSO (Large segment offload),如果数据包的类型只能是TCP,则被称之为 TSO,如果硬件支持 TSO 功能的话,也需要同时支持硬件的TCP 校验计算和分散-聚集 (Scatter Gather) 功能。 TSO 的实现,其实是由软件和硬件结合起来完成的,具体说来,硬件能够对大的数据包进行分片,并对每个分片附着相关的头部。
Hi3516A 芯片使用 TSO 时,会把一部分由 CPU 处理的工作转移到由网卡来处理,减轻 CPU 的压力,提高性能。