Ethtool源码分析(一):认识和使用Ethtool

文章目录

    • 一、介绍
    • 二、下载,编译
    • 三、使用Ethtool 工具查看网口信息,

一、介绍

ethtool是用于控制网络驱动程序和硬件的标准Linux实用程序,尤其适用于有线以太网设备。 它可以用于:

 获取识别和诊断信息获取扩展设备统计信息控制以太网设备的速度,双工,自动协商和流量控制控制校验和卸载和其他硬件卸载功能控制DMA环大小和中断调节控制多队列设备的接收队列选择升级闪存中的固件

大多数功能都依赖于特定驱动程序中的支持。 有关完整信息,请参见手册页。

二、下载,编译

Ethtool源码下载链接https://mirrors.edge.kernel.org/pub/software/network/ethtool/

选择适合自己的版本下载。这里我们使用最新的版本6.2

  1. 解压压缩包
    tar zxvf ethtool-6.2.tar.gz
  2. 配置并编译工程

Ethtool在Linux中的编译比较简单,首先执行configure,配置编译信息,生成Makefile文件。
然后执行make命令,执行编译即可:

1./configure

2.make

编译完成后,就可以在当前目录下看到生成的ethtool可执行文件了。

三、使用Ethtool 工具查看网口信息,

1.查询工具的使用介绍
执行./ethtool -h 显示Ethtool帮助信息

ethtool version 6.2
Usage:ethtool [ FLAGS ]  DEVNAME      Display standard information about deviceethtool [ 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 optionsethtool [ FLAGS ] -A|--pause DEVNAME    Set pause options[ autoneg on|off ][ rx on|off ][ tx on|off ]ethtool [ FLAGS ] -c|--show-coalesce DEVNAME    Show coalesce optionsethtool [ 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 parametersethtool [ 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 featuresethtool [ FLAGS ] -K|--features|--offload DEVNAME       Set protocol offload and other featuresFEATURE on|off ...ethtool [ FLAGS ] -i|--driver DEVNAME   Show driver informationethtool [ 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 negotiationethtool [ 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 statisticsethtool [ 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 rulesrx-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 %dethtool [ FLAGS ] -T|--show-time-stamping DEVNAME       Show time stamping capabilitiesethtool [ 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 deviceFILENAME [ REGION-NUMBER-TO-FLASH ]ethtool [ FLAGS ] -P|--show-permaddr DEVNAME    Show permanent hardware addressethtool [ FLAGS ] -w|--get-dump DEVNAME Get dump flag, data[ data FILENAME ]ethtool [ FLAGS ] -W|--set-dump DEVNAME Set dump flag of the deviceNethtool [ FLAGS ] -l|--show-channels DEVNAME    Query Channelsethtool [ FLAGS ] -L|--set-channels DEVNAME     Set Channels[ rx N ][ tx N ][ other N ][ combined N ]ethtool [ FLAGS ] --show-priv-flags DEVNAME     Query private flagsethtool [ FLAGS ] --set-priv-flags DEVNAME      Set private flagsFLAG 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 settingsethtool [ 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 settingsethtool [ 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_COMMANDethtool [ FLAGS ] --cable-test DEVNAME  Perform a cable testethtool [ 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 informationethtool [ FLAGS ] --show-module DEVNAME Show transceiver module settingsethtool [ FLAGS ] --set-module DEVNAME  Set transceiver module settings[ power-mode-policy high|auto ]ethtool [ FLAGS ] -h|--help             Show this helpethtool [ FLAGS ] --version             Show version numberethtool --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/Full100baseT/Half 100baseT/Full1000baseT/FullSupported pause frame use: NoSupports auto-negotiation: YesSupported FEC modes: Not reportedAdvertised link modes:  10baseT/Half 10baseT/Full100baseT/Half 100baseT/Full1000baseT/FullAdvertised pause frame use: NoAdvertised auto-negotiation: YesAdvertised FEC modes: Not reportedSpeed: 1000Mb/sDuplex: FullAuto-negotiation: onPort: Twisted PairPHYAD: 0Transceiver: internalMDI-X: off (auto)Supports Wake-on: dWake-on: dCurrent message level: 0x00000007 (7)drv probe linkLink detected: yes


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部