ethtool是用于控制网络驱动程序和硬件的标准Linux实用程序,尤其适用于有线以太网设备。 它可以用于:
获取识别和诊断信息
获取扩展设备统计信息
控制以太网设备的速度,双工,自动协商和流量控制
控制校验和卸载和其他硬件卸载功能
控制DMA环大小和中断调节
控制多队列设备的接收队列选择
升级闪存中的固件
大多数功能都依赖于特定驱动程序中的支持。 有关完整信息,请参见手册页。
Ethtool源码下载链接https://mirrors.edge.kernel.org/pub/software/network/ethtool/
选择适合自己的版本下载。这里我们使用最新的版本6.2
tar zxvf ethtool-6.2.tar.gz
Ethtool在Linux中的编译比较简单,首先执行configure,配置编译信息,生成Makefile文件。
然后执行make命令,执行编译即可:
1./configure
2.make
编译完成后,就可以在当前目录下看到生成的ethtool可执行文件了。
1.查询工具的使用介绍
执行./ethtool -h
显示Ethtool帮助信息
ethtool version 6.2
Usage:
ethtool [ FLAGS ] DEVNAME Display standard information about device
ethtool [ FLAGS ] -s|--change DEVNAME Change generic options
[ speed %d ]
[ lanes %d ]
[ duplex half|full ]
[ port tp|aui|bnc|mii|fibre|da ]
[ mdix auto|on|off ]
[ autoneg on|off ]
[ advertise %x[/%x] | mode on|off ... [--] ]
[ phyad %d ]
[ xcvr internal|external ]
[ wol %d[/%d] | p|u|m|b|a|g|s|f|d... ]
[ sopass %x:%x:%x:%x:%x:%x ]
[ msglvl %d[/%d] | type on|off ... [--] ]
[ master-slave preferred-master|preferred-slave|forced-master|forced-slave ]
ethtool [ FLAGS ] -a|--show-pause DEVNAME Show pause options
ethtool [ FLAGS ] -A|--pause DEVNAME Set pause options
[ autoneg on|off ]
[ rx on|off ]
[ tx on|off ]
ethtool [ FLAGS ] -c|--show-coalesce DEVNAME Show coalesce options
ethtool [ FLAGS ] -C|--coalesce DEVNAME Set coalesce options
[adaptive-rx on|off]
[adaptive-tx on|off]
[rx-usecs N]
[rx-frames N]
[rx-usecs-irq N]
[rx-frames-irq N]
[tx-usecs N]
[tx-frames N]
[tx-usecs-irq N]
[tx-frames-irq N]
[stats-block-usecs N]
[pkt-rate-low N]
[rx-usecs-low N]
[rx-frames-low N]
[tx-usecs-low N]
[tx-frames-low N]
[pkt-rate-high N]
[rx-usecs-high N]
[rx-frames-high N]
[tx-usecs-high N]
[tx-frames-high N]
[sample-interval N]
[cqe-mode-rx on|off]
[cqe-mode-tx on|off]
ethtool [ FLAGS ] -g|--show-ring DEVNAME Query RX/TX ring parameters
ethtool [ FLAGS ] -G|--set-ring DEVNAME Set RX/TX ring parameters
[ rx N ]
[ rx-mini N ]
[ rx-jumbo N ]
[ tx N ]
[ rx-buf-len N]
[ cqe-size N]
[ tx-push on|off]
ethtool [ FLAGS ] -k|--show-features|--show-offload DEVNAME Get state of protocol offload and other features
ethtool [ FLAGS ] -K|--features|--offload DEVNAME Set protocol offload and other features
FEATURE on|off ...
ethtool [ FLAGS ] -i|--driver DEVNAME Show driver information
ethtool [ FLAGS ] -d|--register-dump DEVNAME Do a register dump
[ raw on|off ]
[ file FILENAME ]
ethtool [ FLAGS ] -e|--eeprom-dump DEVNAME Do a EEPROM dump
[ raw on|off ]
[ offset N ]
[ length N ]
ethtool [ FLAGS ] -E|--change-eeprom DEVNAME Change bytes in device EEPROM
[ magic N ]
[ offset N ]
[ length N ]
[ value N ]
ethtool [ FLAGS ] -r|--negotiate DEVNAME Restart N-WAY negotiation
ethtool [ FLAGS ] -p|--identify DEVNAME Show visible port identification (e.g. blinking)
[ TIME-IN-SECONDS ]
ethtool [ FLAGS ] -t|--test DEVNAME Execute adapter self test
[ online | offline | external_lb ]
ethtool [ FLAGS ] -S|--statistics DEVNAME Show adapter statistics
[ --all-groups | --groups [eth-phy] [eth-mac] [eth-ctrl] [rmon] ]
ethtool [ FLAGS ] --phy-statistics DEVNAME Show phy statistics
ethtool [ FLAGS ] -n|-u|--show-nfc|--show-ntuple DEVNAME Show Rx network flow classification options or rules
[ rx-flow-hash tcp4|udp4|ah4|esp4|sctp4|tcp6|udp6|ah6|esp6|sctp6 [context %d] |
rule %d ]
ethtool [ FLAGS ] -N|-U|--config-nfc|--config-ntuple DEVNAME Configure Rx network flow classification options or rules
rx-flow-hash tcp4|udp4|ah4|esp4|sctp4|tcp6|udp6|ah6|esp6|sctp6 m|v|t|s|d|f|n|r... [context %d] |
flow-type ether|ip4|tcp4|udp4|sctp4|ah4|esp4|ip6|tcp6|udp6|ah6|esp6|sctp6
[ src %x:%x:%x:%x:%x:%x [m %x:%x:%x:%x:%x:%x] ]
[ dst %x:%x:%x:%x:%x:%x [m %x:%x:%x:%x:%x:%x] ]
[ proto %d [m %x] ]
[ src-ip IP-ADDRESS [m IP-ADDRESS] ]
[ dst-ip IP-ADDRESS [m IP-ADDRESS] ]
[ tos %d [m %x] ]
[ tclass %d [m %x] ]
[ l4proto %d [m %x] ]
[ src-port %d [m %x] ]
[ dst-port %d [m %x] ]
[ spi %d [m %x] ]
[ vlan-etype %x [m %x] ]
[ vlan %x [m %x] ]
[ user-def %x [m %x] ]
[ dst-mac %x:%x:%x:%x:%x:%x [m %x:%x:%x:%x:%x:%x] ]
[ action %d ] | [ vf %d queue %d ]
[ context %d ]
[ loc %d]] |
delete %d
ethtool [ FLAGS ] -T|--show-time-stamping DEVNAME Show time stamping capabilities
ethtool [ FLAGS ] -x|--show-rxfh-indir|--show-rxfh DEVNAME Show Rx flow hash indirection table and/or RSS hash key
[ context %d ]
ethtool [ FLAGS ] -X|--set-rxfh-indir|--rxfh DEVNAME Set Rx flow hash indirection table and/or RSS hash key
[ context %d|new ]
[ equal N | weight W0 W1 ... | default ]
[ hkey %x:%x:%x:%x:%x:.... ]
[ hfunc FUNC ]
[ delete ]
ethtool [ FLAGS ] -f|--flash DEVNAME Flash firmware image from the specified file to a region on the device
FILENAME [ REGION-NUMBER-TO-FLASH ]
ethtool [ FLAGS ] -P|--show-permaddr DEVNAME Show permanent hardware address
ethtool [ FLAGS ] -w|--get-dump DEVNAME Get dump flag, data
[ data FILENAME ]
ethtool [ FLAGS ] -W|--set-dump DEVNAME Set dump flag of the device
N
ethtool [ FLAGS ] -l|--show-channels DEVNAME Query Channels
ethtool [ FLAGS ] -L|--set-channels DEVNAME Set Channels
[ rx N ]
[ tx N ]
[ other N ]
[ combined N ]
ethtool [ FLAGS ] --show-priv-flags DEVNAME Query private flags
ethtool [ FLAGS ] --set-priv-flags DEVNAME Set private flags
FLAG on|off ...
ethtool [ FLAGS ] -m|--dump-module-eeprom|--module-info DEVNAME Query/Decode Module EEPROM information and optical diagnostics if available
[ raw on|off ]
[ hex on|off ]
[ offset N ]
[ length N ]
[ page N ]
[ bank N ]
[ i2c N ]
ethtool [ FLAGS ] --show-eee DEVNAME Show EEE settings
ethtool [ FLAGS ] --set-eee DEVNAME Set EEE settings
[ eee on|off ]
[ advertise %x ]
[ tx-lpi on|off ]
[ tx-timer %d ]
ethtool [ FLAGS ] --set-phy-tunable DEVNAME Set PHY tunable
[ downshift on|off [count N] ]
[ fast-link-down on|off [msecs N] ]
[ energy-detect-power-down on|off [msecs N] ]
ethtool [ FLAGS ] --get-phy-tunable DEVNAME Get PHY tunable
[ downshift ]
[ fast-link-down ]
[ energy-detect-power-down ]
ethtool [ FLAGS ] --get-tunable DEVNAME Get tunable
[ rx-copybreak ]
[ tx-copybreak ]
[ tx-buf-size ]
[ pfc-precention-tout ]
ethtool [ FLAGS ] --set-tunable DEVNAME Set tunable
[ rx-copybreak N]
[ tx-copybreak N]
[ tx-buf-size N]
[ pfc-precention-tout N]
ethtool [ FLAGS ] --reset DEVNAME Reset components
[ flags %x ]
[ mgmt ]
[ mgmt-shared ]
[ irq ]
[ irq-shared ]
[ dma ]
[ dma-shared ]
[ filter ]
[ filter-shared ]
[ offload ]
[ offload-shared ]
[ mac ]
[ mac-shared ]
[ phy ]
[ phy-shared ]
[ ram ]
[ ram-shared ]
[ ap ]
[ ap-shared ]
[ dedicated ]
[ all ]
ethtool [ FLAGS ] --show-fec DEVNAME Show FEC settings
ethtool [ FLAGS ] --set-fec DEVNAME Set FEC settings
[ encoding auto|off|rs|baser|llrs [...]]
ethtool [ FLAGS ] -Q|--per-queue DEVNAME Apply per-queue command.
The supported sub commands include --show-coalesce, --coalesce [queue_mask %x] SUB_COMMAND
ethtool [ FLAGS ] --cable-test DEVNAME Perform a cable test
ethtool [ FLAGS ] --cable-test-tdr DEVNAME Print cable test time domain reflectrometery data
[ first N ]
[ last N ]
[ step N ]
[ pair N ]
ethtool [ FLAGS ] --show-tunnels DEVNAME Show NIC tunnel offload information
ethtool [ FLAGS ] --show-module DEVNAME Show transceiver module settings
ethtool [ FLAGS ] --set-module DEVNAME Set transceiver module settings
[ power-mode-policy high|auto ]
ethtool [ FLAGS ] -h|--help Show this help
ethtool [ FLAGS ] --version Show version number
ethtool --monitor Show kernel notifications
( [ --all ]
| -s | --change
| -k | --show-features | --show-offload | -K | --features | --offload
| --show-priv-flags | --set-priv-flags
| -g | --show-ring | -G | --set-ring
| -l | --show-channels | -L | --set-channels
| -c | --show-coalesce | -C | --coalesce
| -a | --show-pause | -A | --pause
| --show-eee | --set-eee
| --cable-test
| --cable-test-tdr
| --show-module | --set-module )
[ DEVNAME | * ]
FLAGS:
--debug MASK turn on debugging messages
--json enable JSON output format (not supported by all commands)
-I|--include-statistics request device statistics related to the command (not supported by all commands)
2.使用Ethtool工具查询网卡信息
执行./ethtool ens33
ens33是我电脑上的网卡名
Settings for ens33:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: off (auto)
Supports Wake-on: d
Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes