ethtool is a completely free and open source command-line utility that has been designed from the offset to allow you to easily control network hardware and drivers under your GNU/Linux operating system. It has been tailored specifically for controlling wired Ethernet devices.
What can I use it for?
You can use ethtool to retrieve diagnostic and identification information from your network driver/interface, control DMA (Direct Memory Access) interrupt moderation and ring sizes, retrieve extended device statistics, as well as to upgrade the firmware of the flash memory.
In addition, you can use ethtool to control autonegotiation, duplex, speed and flow control for all your Ethernet devices, to control checksum offload for your network interface, to control receive queue selection for multiqueue devices, and to control various other hardware offload features.
Getting started with ethtool
To install the ethtool software on your GNU/Linux operating system, you must download the latest source package from Softpedia or the project’s official homepage, save it somewhere on your Home directory, extract its contents using an archive manager utility, open a terminal emulator application and navigate to the location of the extracted archive files (e.g. cd /home/softpedia/ethtool-3.18).
There, run the ‘./configure && make’ command to configure and compile the software, and run the ‘make install’ command as root or the ‘sudo make install’ command as a privileged user to install it system wide and make it available to all users on your distribution. In the Terminal app, run the ‘ethtool --help’ command to view the program’s usage message and command-line options.
Supported on GNU/Linux and FreeBSD
Looking under the hood of the ethtool program, we can notice that it has been written entirely in the C programming language, it’s compatible with both 32-bit and 64-bit CPU architectures, and runs perfectly on both GNU/Linux and FreeBSD operating systems.