<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Troubleshooting | przeqpiciel's site</title><link>https://przeqpiciel.com/categories/troubleshooting/</link><description>Blog techniczny o homelabie, Linuxie i innych ciekawych tematach</description><generator>Hugo</generator><language>pl</language><managingEditor>przeqpiciel</managingEditor><webMaster>przeqpiciel</webMaster><lastBuildDate>Sat, 04 Jul 2026 15:39:03 +0200</lastBuildDate><atom:link href="https://przeqpiciel.com/categories/troubleshooting/index.xml" rel="self" type="application/rss+xml"/><item><title>E1000e network card freeze</title><link>https://przeqpiciel.com/posts/e1000e-network-card-freeze/</link><pubDate>Tue, 28 Jan 2025 00:00:00 +0000</pubDate><author>przeqpiciel</author><guid>https://przeqpiciel.com/posts/e1000e-network-card-freeze/</guid><description>&lt;h1 id="zawieszenie-karty-sieciowej-e1000e"&gt;Zawieszenie karty sieciowej e1000e&lt;/h1&gt;
&lt;h2 id="wstęp"&gt;Wstęp&lt;/h2&gt;
&lt;p&gt;Czy zdarzyło Ci się kiedyś, że Twój serwer, który działał bez problemów przez wiele dni, nagle przestał odpowiadać na sieć? Maszyna się nie restartowała, uruchomione procesy nadal działały, ale jakby zniknęła z sieci. Dokładnie z taką sytuacją miałem do czynienia ostatniej nocy. Rano odkryłem, że serwer jest fizycznie włączony, ale kompletnie nie odpowiada na żadne zapytania sieciowe - ani ping, ani SSH, ani żadne inne usługi sieciowe.&lt;/p&gt;</description><content:encoded>&lt;h1 id="zawieszenie-karty-sieciowej-e1000e"&gt;Zawieszenie karty sieciowej e1000e&lt;/h1&gt;
&lt;h2 id="wstęp"&gt;Wstęp&lt;/h2&gt;
&lt;p&gt;Czy zdarzyło Ci się kiedyś, że Twój serwer, który działał bez problemów przez wiele dni, nagle przestał odpowiadać na sieć? Maszyna się nie restartowała, uruchomione procesy nadal działały, ale jakby zniknęła z sieci. Dokładnie z taką sytuacją miałem do czynienia ostatniej nocy. Rano odkryłem, że serwer jest fizycznie włączony, ale kompletnie nie odpowiada na żadne zapytania sieciowe - ani ping, ani SSH, ani żadne inne usługi sieciowe.&lt;/p&gt;
&lt;h2 id="odkrycie-problemu"&gt;Odkrycie problemu&lt;/h2&gt;
&lt;p&gt;Po sprawdzeniu fizycznego stanu maszyny i podłączeniu monitora oraz klawiatury, system operacyjny działał normalnie. Interfejs sieciowy jednak nie odpowiadał, nawet lokalne testy &lt;code&gt;ping&lt;/code&gt; do innych hostów w sieci kończyły się niepowodzeniem. Czas na śledztwo.&lt;/p&gt;
&lt;h3 id="diagnostyka-za-pomocą-journalctl"&gt;Diagnostyka za pomocą journalctl&lt;/h3&gt;
&lt;p&gt;Pierwszym krokiem w diagnostyce problemu z siecią w systemach Linux jest sprawdzenie logów jądra. Najlepszym narzędziem do tego celu jest &lt;code&gt;journalctl&lt;/code&gt; z odpowiednimi parametrami. Polecenie &lt;code&gt;journalctl -k -b -1&lt;/code&gt; pozwala sprawdzić logi jądra z poprzedniego boot&amp;rsquo;a systemu, co jest szczególnie przydatne, gdy problem wystąpił przed aktualnym uruchomieniem systemu.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;journalctl -k -b -1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Parametry tego polecenia oznaczają:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-k&lt;/code&gt; (lub &lt;code&gt;--dmesg&lt;/code&gt;) - wyświetla tylko logi jądra&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-b -1&lt;/code&gt; - pokazuje logi z poprzedniego boot&amp;rsquo;a (boot -1 oznacza poprzedni boot, -2 poprzedni przed poprzednim, itd.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;W moim przypadku logi jądra ujawniły problem z kartą sieciową e1000e na interfejsie &lt;code&gt;enp0s25&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Jan 10 08:10:28 pve.localhost kernel: e1000e 0000:00:19.0 enp0s25: Detected Hardware Unit Hang:
 TDH &amp;lt;82&amp;gt;
 TDT &amp;lt;8e&amp;gt;
 next_to_use &amp;lt;8e&amp;gt;
 next_to_clean &amp;lt;81&amp;gt;
 buffer_info[next_to_clean]:
 time_stamp &amp;lt;101fda64e&amp;gt;
 next_to_watch &amp;lt;82&amp;gt;
 jiffies &amp;lt;102048d40&amp;gt;
 next_to_watch.status &amp;lt;0&amp;gt;
 MAC Status &amp;lt;80083&amp;gt;
 PHY Status &amp;lt;796d&amp;gt;
 PHY 1000BASE-T Status &amp;lt;3800&amp;gt;
 PHY Extended Status &amp;lt;3000&amp;gt;
 PCI Status &amp;lt;10&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Komunikat &amp;ldquo;Detected Hardware Unit Hang&amp;rdquo; wskazuje na zawieszenie jednostki sprzętowej karty sieciowej e1000e. Karta wielokrotnie próbowała wykryć i naprawić problem, jednak komunikaty powtarzały się co około 2 sekundy, co sugerowało, że problem nie został automatycznie rozwiązany.&lt;/p&gt;
&lt;h3 id="dlaczego-e1000e-ma-ten-problem"&gt;Dlaczego e1000e ma ten problem?&lt;/h3&gt;
&lt;p&gt;Sterownik e1000e obsługuje gigabitowe karty sieciowe Intel podłączane przez PCI Express (końcówka &amp;ldquo;e&amp;rdquo; w nazwie pochodzi właśnie od PCI Express, w odróżnieniu od starszego sterownika e1000 dla kart PCI). W moim przypadku problem był związany z funkcją &lt;strong&gt;EEE (Energy Efficient Ethernet)&lt;/strong&gt;. EEE to standard, który pozwala kartom sieciowym na zmniejszenie zużycia energii poprzez przełączanie się w tryb niskiego poboru mocy podczas bezczynności. Jednak implementacja tej funkcji może powodować problemy z niektórymi kartami lub przełącznikami sieciowymi, prowadząc do zawieszenia się karty.&lt;/p&gt;
&lt;h2 id="rozwiązanie-problemu"&gt;Rozwiązanie problemu&lt;/h2&gt;
&lt;h3 id="krok-1-sprawdzenie-ustawień-eee"&gt;Krok 1: Sprawdzenie ustawień EEE&lt;/h3&gt;
&lt;p&gt;Po zidentyfikowaniu problemu z logów jądra, sprawdziłem ustawienia EEE (Energy Efficient Ethernet) na interfejsie &lt;code&gt;enp0s25&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ethtool --show-eee enp0s25
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Wynik pokazał, że EEE było włączone, ale nieaktywne:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;EEE settings for enp0s25:
	EEE status: enabled - inactive
	Tx LPI: 17 (us)
	Supported EEE link modes: 100baseT/Full
	 1000baseT/Full
	Advertised EEE link modes: 100baseT/Full
	 1000baseT/Full
	Link partner advertised EEE link modes: Not reported
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="krok-2-wyłączenie-eee"&gt;Krok 2: Wyłączenie EEE&lt;/h3&gt;
&lt;p&gt;Na podstawie logów i statusu EEE, wyłączyłem funkcję Energy Efficient Ethernet:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ethtool --set-eee enp0s25 eee off
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Po wyłączeniu EEE, sprawdziłem ponownie status:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ethtool --show-eee enp0s25
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Wynik potwierdził wyłączenie:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;EEE settings for enp0s25:
	EEE status: disabled
	Tx LPI: 17 (us)
	Supported EEE link modes: 100baseT/Full
	 1000baseT/Full
	Advertised EEE link modes: 100baseT/Full
	 1000baseT/Full
	Link partner advertised EEE link modes: Not reported
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Po wyłączeniu EEE interfejs sieciowy zaczął działać normalnie, co potwierdziło, że to właśnie ta funkcja była przyczyną problemu.&lt;/p&gt;
&lt;h3 id="krok-3-wyłączenie-tso-gso-i-gro"&gt;Krok 3: Wyłączenie TSO, GSO i GRO&lt;/h3&gt;
&lt;p&gt;Jako dodatkowe zabezpieczenie, wyłączyłem również funkcje offloading&amp;rsquo;u TSO (TCP Segmentation Offload), GSO (Generic Segmentation Offload) i GRO (Generic Receive Offload):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ethtool -K enp0s25 tso off gso off gro off
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Te funkcje mogą czasami powodować problemy ze stabilnością, szczególnie w połączeniu z EEE. Warto sprawdzić, czy ta zmiana poprawia stabilność karty.&lt;/p&gt;
&lt;p&gt;Funkcje te można włączyć ponownie poleceniem:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ethtool -K enp0s25 tso on gso on gro on
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="zapobieganie-problemom-z-kartą-e1000e"&gt;Zapobieganie problemom z kartą e1000e&lt;/h2&gt;
&lt;h3 id="krok-1-trwałe-wyłączenie-eee"&gt;Krok 1: Trwałe wyłączenie EEE&lt;/h3&gt;
&lt;p&gt;Aby upewnić się, że EEE pozostanie wyłączone po restarcie systemu, należy utworzyć skrypt, który będzie automatycznie wyłączał tę funkcję przy każdym starcie interfejsu sieciowego. W systemach używających &lt;code&gt;systemd-networkd&lt;/code&gt; możemy skorzystać z mechanizmu &lt;code&gt;networkd-dispatcher&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# Utworzenie katalogu, jeśli nie istnieje&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo mkdir -p /etc/networkd-dispatcher/routable.d
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# Utworzenie skryptu&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nano /etc/networkd-dispatcher/routable.d/50-eee-off
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Zawartość skryptu:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ethtool --set-eee enp0s25 eee off
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nadanie uprawnień wykonywania:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo chmod +x /etc/networkd-dispatcher/routable.d/50-eee-off
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Alternatywnie, jeśli &lt;code&gt;networkd-dispatcher&lt;/code&gt; nie jest dostępny, można użyć innych metod:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Opcja A: Użycie &lt;code&gt;/etc/rc.local&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# Edytuj plik /etc/rc.local (pamiętaj o dodaniu linii przed &amp;#34;exit 0&amp;#34;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nano /etc/rc.local
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Dodaj przed &lt;code&gt;exit 0&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ethtool --set-eee enp0s25 eee off
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Opcja B: Użycie NetworkManager dispatcher&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Jeśli używasz NetworkManager:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo mkdir -p /etc/NetworkManager/dispatcher.d
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nano /etc/NetworkManager/dispatcher.d/50-eee-off
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Zawartość:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;if&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;[&lt;/span&gt; &lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#79c0ff"&gt;$1&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;==&lt;/span&gt; &lt;span style="color:#a5d6ff"&gt;&amp;#34;enp0s25&amp;#34;&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;]&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;[&lt;/span&gt; &lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#79c0ff"&gt;$2&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;==&lt;/span&gt; &lt;span style="color:#a5d6ff"&gt;&amp;#34;up&amp;#34;&lt;/span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;]&lt;/span&gt;; &lt;span style="color:#ff7b72"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ethtool --set-eee enp0s25 eee off
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo chmod +x /etc/NetworkManager/dispatcher.d/50-eee-off
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Opcja C: Utworzenie jednostki systemd&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Można również utworzyć jednostkę systemd, która będzie wykonywana po starcie sieci:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nano /etc/systemd/system/disable-eee.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Zawartość:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;[Unit]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Description&lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;Disable EEE on enp0s25&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Wants&lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;network-online.target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;After&lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;network-online.target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Type&lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;oneshot&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ExecStart&lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;/usr/sbin/ethtool --set-eee enp0s25 eee off&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;RemainAfterExit&lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;yes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;[Install]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;WantedBy&lt;span style="color:#ff7b72;font-weight:bold"&gt;=&lt;/span&gt;&lt;span style="color:#a5d6ff"&gt;multi-user.target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Włączenie usługi:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl enable disable-eee.service
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl start disable-eee.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="krok-2-trwałe-wyłączenie-tso-gso-i-gro"&gt;Krok 2: Trwałe wyłączenie TSO, GSO i GRO&lt;/h3&gt;
&lt;p&gt;Jeśli wyłączenie TSO, GSO i GRO pomogło, warto również ustawić te parametry na stałe. Możemy to zrobić w ten sam sposób - dodając polecenia do skryptu wyłączającego EEE:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nano /etc/networkd-dispatcher/routable.d/50-eee-off
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Zaktualizowana zawartość:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-weight:bold;font-style:italic"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ethtool --set-eee enp0s25 eee off
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ethtool -K enp0s25 tso off gso off gro off
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="krok-3-weryfikacja-ustawień"&gt;Krok 3: Weryfikacja ustawień&lt;/h3&gt;
&lt;p&gt;Po zrestartowaniu systemu, warto sprawdzić, czy ustawienia zostały poprawnie zastosowane:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# Sprawdzenie EEE&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ethtool --show-eee enp0s25
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#8b949e;font-style:italic"&gt;# Sprawdzenie TSO, GSO, GRO&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ethtool -k enp0s25 | grep -E &lt;span style="color:#a5d6ff"&gt;&amp;#34;tso|gso|gro&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Oczekiwany wynik dla EEE:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;EEE status: disabled
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Dla TSO, GSO, GRO powinno być:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;tcp-segmentation-offload: off
generic-segmentation-offload: off
generic-receive-offload: off
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="dlaczego-te-ustawienia-pomagają"&gt;Dlaczego te ustawienia pomagają?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;EEE (Energy Efficient Ethernet)&lt;/strong&gt; - może powodować problemy z synchronizacją między kartą a przełącznikiem, szczególnie przy niektórych modelach przełączników lub w określonych warunkach sieciowych&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TSO/GSO/GRO (Offloading)&lt;/strong&gt; - te funkcje przenoszą część przetwarzania pakietów z CPU na kartę sieciową. Chociaż mogą zwiększać wydajność, czasami mogą powodować problemy ze stabilnością, szczególnie w środowisku wirtualizacji lub przy niektórych kombinacjach sprzętowych&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Jeśli problem nadal występuje po wyłączeniu EEE, warto spróbować również wyłączyć offloading, co często rozwiązuje problemy ze stabilnością kart e1000e.&lt;/p&gt;
&lt;h2 id="podsumowanie"&gt;Podsumowanie&lt;/h2&gt;
&lt;p&gt;Problem z zawieszeniem się karty sieciowej e1000e jest znaną usterką, która może wystąpić w systemach z kartami Intel korzystającymi z tego sterownika. W moim przypadku przyczyną była funkcja EEE (Energy Efficient Ethernet), która pomimo swoich zalet w zakresie oszczędzania energii, może powodować problemy ze stabilnością.&lt;/p&gt;
&lt;p&gt;Podstawową metodą diagnozy jest sprawdzenie logów jądra za pomocą &lt;code&gt;journalctl -k -b -1&lt;/code&gt;, co pozwala zobaczyć, co działo się w systemie przed jego ostatnim restartem. Komunikaty &amp;ldquo;Detected Hardware Unit Hang&amp;rdquo; jednoznacznie wskazują na problem z kartą sieciową.&lt;/p&gt;
&lt;p&gt;Rozwiązanie problemu polega na wyłączeniu funkcji EEE za pomocą &lt;code&gt;ethtool --set-eee enp0s25 eee off&lt;/code&gt;, a następnie skonfigurowaniu systemu tak, aby to ustawienie było trwałe. W przypadku gdy to nie wystarczy, warto również wyłączyć funkcje offloading&amp;rsquo;u TSO, GSO i GRO.&lt;/p&gt;
&lt;p&gt;Pamiętaj, że problemy z siecią mogą mieć różne przyczyny - zawsze warto sprawdzić logi systemowe i rozpocząć diagnostykę od podstawowych kroków, takich jak sprawdzenie połączenia fizycznego, konfiguracji sieciowej i logów jądra. W przypadku kart e1000e, wyłączenie EEE jest często pierwszym krokiem, który rozwiązuje problemy ze stabilnością.&lt;/p&gt;</content:encoded></item></channel></rss>