Przejdź do głównej zawartości

ethtool


  • ethtool – zaawansowany program użytkowy umożliwiający wyświetlanie i zmianę parametrów sterowników oraz kart sieciowych (link speed, duplex, autonegocjacja, Wake‑on‑LAN, offload, kolejki, EEE).
  • Służy do debugowania problemów z łącznością, optymalizacji wydajności (RSS, ring buffers) oraz aktualizacji firmware niektórych kart.
  • Dostępny w większości dystrybucji Linuksa, także w BusyBox (ograniczona wersja); wymaga uprawnień roota do operacji zapisu.

Okno terminala
ethtool [opcje] <interfejs>
ethtool -s <if> [speed {10|100|1000|...}] [duplex {half|full}] [autoneg {on|off}] [...]
  • Wywołanie bez opcji (ethtool eth0) wypisuje podstawowy status linku.
  • Większość podpoleceń ma postać --set-* lub --show-*.

ParametrOpis
-i, --driverPokazuje nazwę sterownika, wersję, firmware.
-p, --identifyMiga diodą na karcie (N sekund) dla identyfikacji sprzętu.
-s, --changeUstawia prędkość, duplex, autoneg, port, fec.
-g, --show-ringWyświetla rozmiar buforów RX/TX.
-G, --set-ringUstawia rozmiar buforów RX/TX.
-k, --show-featuresListuje funkcje offload (TSO, GRO, GSO).
-K, --featuresWłącza/wyłącza funkcje offload (tso on).
-S, --statisticsPobiera licznik statystyk sprzętowych.
-t, --testWykonuje autotest sterownika/karty.
-r, --negotiateRestartuje autonegocjację linku.
-L, --set-channelsUstawia liczbę kolejek (RX/TX/RXTX).
-l, --show-channelsWyświetla aktualne limity i liczbę kolejek.
--show-eee, --set-eeePokaż/ustaw Energy‑Efficient Ethernet.
--get-dump, --set-dumpZrzut i konfiguracja pamięci firmware NIC.
-P, --show-permaddrPokazuje stały adres MAC zapisany w ROM.
--debug <mask>Aktywuje flagi debug sterownika (nie wszystkie sterowniki).

Okno terminala
# 1. Sprawdzenie statusu i parametrów linku 1 Gb/s
ethtool enp3s0
# 2. Wymuszenie prędkości 100 Mb/s full‑duplex (bez autoneg)
sudo ethtool -s enp3s0 speed 100 duplex full autoneg off
# 3. Włączenie TSO i wyłączenie GSO
sudo ethtool -K enp3s0 tso on gso off
# 4. Zwiększenie bufora odbiorczego do 4096
sudo ethtool -G enp3s0 rx 4096
# 5. Miganie diody przez 10 s w celu zlokalizowania portu
sudo ethtool -p enp3s0 10

  • Wsparcie sterownika: Dostępność opcji zależy od sterownika NIC; niektóre funkcje mogą zwracać Operation not supported.
  • Uprawnienia: Operacje zapisu (-s, -K, -G, --set-eee) wymagają roota; odczyt zwykle może wykonać zwykły użytkownik z grupy netdev.
  • Persistencja: Zmiany dokonane przez ethtool znikają po restarcie; użyj systemd‑networkd, NetworkManager lub skryptów w /etc/network/interfaces aby je utrwalić.
  • MTU vs prędkość: ethtool nie ustawia MTU; użyj ip link set mtu dla zmian wielkości ramki.
  • Alternatywy: Nowe narzędzie ethtool w wersji ip ethtool (ip --json link).

Błąd / KomunikatPrzyczynaRozwiązanie
ethtool: Cannot get device settings: Operation not supportedSterownik nie obsługuje danego poleceniaSprawdź dokumentację karty lub zaktualizuj sterownik/kernel.
Cannot set new settings: Device or resource busyInterfejs aktywny lub zarządzany przez NetworkManagerDezaktywuj nmcli connection down, zmodyfikuj i ponownie aktywuj.
Po wymuszeniu prędkości brak linkuNieobsługiwana przez switch konfiguracjaPrzywróć autoneg on lub dopasuj konfigurację switcha.
Wyniki statystyk ethtool -S wszystkie zeraLiczniki odświeżane przez ethtool‐priv napęd; sterownik nie wdrożył APIUżyj ip -s link lub ethtool --statistics <if> z nowym kernelem.