T
he ethtool can be used to query and change settings such as speed, auto- negotiation and checksum offload on many network devices, especially Ethernet devices. How do I install and use ethtool under Ubuntu or Debian Linux based system running on my IBM server?
To control and see the settings of wired Ethernet devices you need to use the ethtool command. It can be used to:
To control and see the settings of wired Ethernet devices you need to use the ethtool command. It can be used to:
- Get identification and diagnostic information
- Get extended device statistics
- Control speed, duplex, autonegotiation and flow control for Ethernet devices
- Control checksum offload and other hardware offload features
- Control DMA ring sizes and interrupt moderation
- Control receive queue selection for multiqueue devices
- Upgrade firmware in flash memory and much more
Install ethtool
Type the following apt-get command to install ethtool utility under Debian or Ubuntu Linux:$ sudo apt-get update
$ sudo apt-get install ethtool
OR# apt-get update
# apt-get install ethtool
Sample outputs:
Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: ethtool 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 99.5 kB of archives. After this operation, 296 kB of additional disk space will be used. Get:1 http://mirror.anl.gov/debian/ wheezy/main ethtool i386 1:3.4.2-1 [99.5 kB] Fetched 99.5 kB in 2s (45.6 kB/s) Selecting previously unselected package ethtool. (Reading database ... 23726 files and directories currently installed.) Unpacking ethtool (from .../ethtool_1%3a3.4.2-1_i386.deb) ... Processing triggers for man-db ... Setting up ethtool (1:3.4.2-1) ...
Syntax
The syntax is:
ethtool deviceName ethtool [options] deviceName ethtool eth0 |
Examples
To see standard information about device eth0, enter:# ethtool eth0
Sample outputs:
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x00000001 (1)
drv
Link detected: yes |
FIND OUT DRIVER NAME ASSOCIATED DRIVER INFORMATION FOR ETH0
# ethtool -i eth0
Sample outputs:
driver: via-rhine version: 1.5.0 firmware-version: bus-info: 0000:00:06.0 supports-statistics: no supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no
FIND OUT STATISTICS FOR NIC AND DRIVER
# ethtool -S eth1
# ethtool --statistics eth0
Sample outputs:
NIC statistics: rx_packets: 108048475 tx_packets: 125002612 rx_bytes: 17446338197 tx_bytes: 113281003056 rx_broadcast: 83067 tx_broadcast: 1329 rx_multicast: 3 tx_multicast: 9 rx_errors: 0 tx_errors: 0 tx_dropped: 0 multicast: 3 collisions: 0 rx_length_errors: 0 rx_over_errors: 0 rx_crc_errors: 0 rx_frame_errors: 0 rx_no_buffer_count: 0 rx_missed_errors: 0 tx_aborted_errors: 0 tx_carrier_errors: 0 tx_fifo_errors: 0 tx_heartbeat_errors: 0 tx_window_errors: 0 tx_abort_late_coll: 0 tx_deferred_ok: 0 tx_single_coll_ok: 0 tx_multi_coll_ok: 0 tx_timeout_count: 0 tx_restart_queue: 2367 rx_long_length_errors: 0 rx_short_length_errors: 0 rx_align_errors: 0 tx_tcp_seg_good: 0 tx_tcp_seg_failed: 0 rx_flow_control_xon: 0 rx_flow_control_xoff: 0 tx_flow_control_xon: 0 tx_flow_control_xoff: 0 rx_long_byte_count: 17446338197 rx_csum_offload_good: 107876452 rx_csum_offload_errors: 2386 rx_header_split: 0 alloc_rx_buff_failed: 0 tx_smbus: 0 rx_smbus: 0 dropped_smbus: 0 rx_dma_failed: 0 tx_dma_failed: 0
SETUP ETH0 NEGOTIATED SPEED
# ethtool -s eth0 speed 100 duplex full
# ethtool --change eth0 speed 10 duplex half
# ethtool eth0
# ethtool eth0 | egrep -i 'speed|duplex'
Sample outputs:
Speed: 10Mb/s Duplex: Half
See ethtool command man page for more inforation:$ man ethtool