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.
Składnia
Dział zatytułowany „Składnia”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-*
.
Parametry
Dział zatytułowany „Parametry”Parametr | Opis |
---|---|
-i , --driver | Pokazuje nazwę sterownika, wersję, firmware. |
-p , --identify | Miga diodą na karcie (N sekund) dla identyfikacji sprzętu. |
-s , --change | Ustawia prędkość, duplex, autoneg, port, fec. |
-g , --show-ring | Wyświetla rozmiar buforów RX/TX. |
-G , --set-ring | Ustawia rozmiar buforów RX/TX. |
-k , --show-features | Listuje funkcje offload (TSO, GRO, GSO). |
-K , --features | Włącza/wyłącza funkcje offload (tso on ). |
-S , --statistics | Pobiera licznik statystyk sprzętowych. |
-t , --test | Wykonuje autotest sterownika/karty. |
-r , --negotiate | Restartuje autonegocjację linku. |
-L , --set-channels | Ustawia liczbę kolejek (RX/TX/RXTX). |
-l , --show-channels | Wyświetla aktualne limity i liczbę kolejek. |
--show-eee , --set-eee | Pokaż/ustaw Energy‑Efficient Ethernet. |
--get-dump , --set-dump | Zrzut i konfiguracja pamięci firmware NIC. |
-P , --show-permaddr | Pokazuje stały adres MAC zapisany w ROM. |
--debug <mask> | Aktywuje flagi debug sterownika (nie wszystkie sterowniki). |
Przykłady użycia
Dział zatytułowany „Przykłady użycia”# 1. Sprawdzenie statusu i parametrów linku 1 Gb/sethtool 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 GSOsudo ethtool -K enp3s0 tso on gso off
# 4. Zwiększenie bufora odbiorczego do 4096sudo ethtool -G enp3s0 rx 4096
# 5. Miganie diody przez 10 s w celu zlokalizowania portusudo 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 grupynetdev
. - Persistencja: Zmiany dokonane przez
ethtool
znikają po restarcie; użyjsystemd‑networkd
,NetworkManager
lub skryptów w/etc/network/interfaces
aby je utrwalić. - MTU vs prędkość:
ethtool
nie ustawia MTU; użyjip link set mtu
dla zmian wielkości ramki. - Alternatywy: Nowe narzędzie
ethtool
w wersjiip ethtool
(ip --json link
).
Najczęściej spotykane błędy i jak je naprawić
Dział zatytułowany „Najczęściej spotykane błędy i jak je naprawić”Błąd / Komunikat | Przyczyna | Rozwiązanie |
---|---|---|
ethtool: Cannot get device settings: Operation not supported | Sterownik nie obsługuje danego polecenia | Sprawdź dokumentację karty lub zaktualizuj sterownik/kernel. |
Cannot set new settings: Device or resource busy | Interfejs aktywny lub zarządzany przez NetworkManager | Dezaktywuj nmcli connection down , zmodyfikuj i ponownie aktywuj. |
Po wymuszeniu prędkości brak linku | Nieobsługiwana przez switch konfiguracja | Przywróć autoneg on lub dopasuj konfigurację switcha. |
Wyniki statystyk ethtool -S wszystkie zera | Liczniki odświeżane przez ethtool‐priv napęd; sterownik nie wdrożył API | Użyj ip -s link lub ethtool --statistics <if> z nowym kernelem. |
Linki i źródła
Dział zatytułowany „Linki i źródła”- man ethtool – oficjalna dokumentacja.
- ethtool project – kod źródłowy, release notes.
- Linux Networking – Tuning Guide – praktyczne wskazówki.