Recommended Tools: ethtool Network Interface Controller Driver for Linux
-----------------------------------
Affected Roles: Administrator, Owner
Related Digital Watchdog VMS Apps: DW Spectrum® IPVMS
Last Edit: January 21, 2022
-----------------------------------
Ethtool Network Interface Controller Driver
Ethtool is used in Linux kernel-based operating systems to display and modify settings of a system’s network interface controller (NIC) and the associated driver software for testing purposes. This can be useful for gathering information from NICs and for checking Ethernet adapter settings.
As ethtool is typically included with the majority of Ubuntu software releases, the program may already be installed. Otherwise, you can obtain and install ethtool from most repositories.
This article will outline how to install and use the ethtool Network Interface Controller Driver for Linux.
**NOTE: This is an optional, supplemental tool that can be installed for Linux-based DW Spectrum® Servers. DW Blackjack® Servers shipping with Ubuntu 18.04 will come pre-loaded with this tool.
**NOTE: As ethtool is primarily for testing the NIC card, settings that were modified with ethtool commands will reset by default.
Supported/Affected Devices:
- DW Blackjack® Tower Server Series (Linux)
- DW Blackjack® Rack Server Series (Linux)
- DW Blackjack® E-Rack Server Series (Linux)
- DW Blackjack® P-Rack Server Series (Linux)
- DW Blackjack® Cube Series (Linux)
- DW Blackjack® Bolt Series
Enabling Repository Access
By default, DW Blackjack® Servers have OS updates disabled to prevent unexpected operating issues that may occur from auto-updates.
As so, Servers using Ubuntu have repository access disabled by default as well.
To install the ethtool Network Interface Controller Driver too, the repository will need to be made accessible to acquire the installation files. If ethtool is already installed and you are just seeking operating instructions, you can skip to the Using Ethtool with Linux section.
**DISCLAIMER: Please be aware that DW Blackjack® Servers have OS updates and repository access disabled by default. Altering a DW Blackjack® Server’s OS configuration from default settings are performed at the owner’s risk.
**NOTE: When using the Linux command line, be aware that commands are case-sensitive. Press the ENTER key after each command, unless otherwise instructed.
Add Repository Access
- Open the Terminal program on the Linux computer. You can do this by using the Search function in the system Unity menu.
Alternatively, you can simultaneously press the Ctrl+Alt+T keys on the keyboard to launch the Terminal program.
- The Terminal window will display.
To add the repository, use the command:
sudo add-apt-repository “deb http://us.archive.ubuntu.com/ubuntu/ xenial universe multiverse”
- You will be prompted to enter the superuser password. Use the root admin password (will not display):
Dw5pectrum
**NOTE: For older DW Blackjack units purchased prior to June 18, 2021, the previously utilized default Linux OS login was “admin/admin”.
- Follow adding the repository by adding the main repository as well:
sudo add-apt-repository “deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe multiverse”
- Next, to download updates, use the command:
sudo add-apt-repository “deb http://us.archive.ubuntu.com/ubuntu/ xenial-updates universe multiverse”
Follow with command:
sudo apt-get update
- Allow the system to finish fetching the data packages.
You may enter the command again to double-check that the available updated data packages have been obtained by the computer.
sudo apt-get update
Repairing Broken Repository Dependencies
If an error occurs while attempting to add the repository, there is a chance that the atp-get command may be encountering issues when retrieving third-party dependencies. For example, such an error may display as:
The following packages have unmet dependencies:
E: Unable to correct problems, you have held broken packages.
If you encounter an issue with repository access or package corruption, refer to Repairing Broken Repository Dependencies for Ubuntu Servers for troubleshooting help.
Installing Ethtool with Linux
Ethtool is typically included with most Ubuntu releases, so it is likely that the tool is already installed.
You can check for ethtool on your system with the command:
sudo ethtool --version
The resulting script will display the currently installed ethtool version number.
However if ethtool is not installed, the program can be acquired from most default repositories.
To install ethtool with Linux:
- Open the Terminal program on the Linux computer. You can do this by using the Search function in the system Unity menu.
Alternatively, you can simultaneously press the Ctrl+Alt+T keys on the keyboard to launch the Terminal program.
- The Terminal window will display.
Check for updates from the repository by using the command:
sudo apt-get update
- After checking for updates, install the tool by using the command:
sudo apt-get install ethtool
- Allow the tool to complete the installation.
Using Ethtool with Linux
Ethtool allows the System Administrator to retrieve information and change NIC settings at will. When using ethtool, it is helpful to know the name or ID of the system’s Network Interface Controller (NIC) card that you will be working through. By knowing the way that the system has identified the NIC, you can better specify the desired information from ethtool.
Finding the NIC Identifier
To use ethtool:
- Open the Terminal program on the Linux computer. You can do this by using the Search function in the system Unity menu.
Alternatively, you can simultaneously press the Ctrl+Alt+T keys on the keyboard to launch the Terminal program.
- The Terminal window will display.
Find the name or ID of the NIC by using the command:
sudo ip link show
The resulting script will display the hardware/MAC address, IP address, associated gateway (router), and subnet mask of the NIC.
The assigned name of the NIC will display. Take note of the assigned name as it will be needed from this point forward.
Displaying NIC Detail Information
Once you have obtained the identifying label of the system’s NIC, detailed information about the network interface card can be invoked. To view NIC details:
In the Terminal program, use the command:
sudo ethtool <NIC NAME>
In the example below, the <NIC NAME> is “enx00e04c42a3fe”. So the example command would have been “sudo ethtool enx00e004c42a3fe”.
Some of the additional information that displays includes the NIC’s:
- Supported Link Modes (10BASE-T, 100BASE-T, etc.)
- Current Duplex Mode
- Current Network Speed
- Auto-negotiation Support Status
Checking NIC Driver Version
Use the –i flag to check the driver information of the NIC.
To check which driver the NIC is using:
In the Terminal, use the command:
sudo ethtool –i <NIC NAME>
In the example below, the <NIC NAME> is “enx00e04c42a3fe”. So the example command would have been “sudo ethtool –i enx00e004c42a3fe”.
Displaying Network Usage Statistics
Use the –S flag to display the network traffic that has been transmitted (Tx), received (Rx), packet collisions, and Tx or Rx errors.
To display the NIC’s network usage, use the command:
sudo ethtool –S <NIC NAME>
In the example below, the <NIC NAME> is “enx00e04c42a3fe”. So the example command would have been “sudo ethtool –S enx00e004c42a3fe”.
Making the NIC LEDs Illuminate
For supported NIC cards, use the –p flag to make the NIC card’s LEDs blink. This could be useful if you are trying to find the NIC’s Ethernet port and need help with physically locating it.
To do so, use the command:
sudo ethtool –p <NIC NAME>
**NOTE: If the NIC card does not support this feature, an “Operation not supported” error message will display.
Setting Network Speed and Modes
Typically, the auto negotiation features of Ethernet-connected devices will manage the network speeds and modes. However, ethtool can be utilized to manually adjust these settings by using the –s flag if it becomes necessary to do so.
To change the network speeds and modes of the NIC:
- Before changing the settings, check the speeds and modes that are currently being used.
In the Terminal use the command:
sudo ethtool <NIC NAME>
- The current link modes and speeds will display.
To change the settings, use the command:
sudo ethtool –s <NIC NAME> speed <n> duplex <M> autoneg <AN>
In the example below:
- <NIC NAME> = enx00e04c42a3fe
- Desired Speed <n> = 10 Mbps
- Desired Duplex Mode <M> = Full
- Desire Auto-negotiation <AN> = Off
So the example command would have been “sudo ethtool –s enx00e004c42a3fe speed 10 duplex full autoneg off”.
Testing the NIC
Use the –t flag to test the NIC for:
- online – tests nvram and a link test
- offline – tests register, memory, loopback, and interrupt
To run an ONLINE test, use the command:
sudo ethtool –t <NIC NAME> online
To run an OFFLINE test, use the command:
sudo ethtool –t <NIC NAME> offline
**NOTE: If the test fails, ethtool will report which portion of the test did not pass. However, be aware that if the Ethernet device that is being tested does not support offline testing, it will also display as an error, so know what your NIC model can and cannot support as necessary.
Help and More Tools
To view more commands associated with ethtool, you can use the command:
man ethtool