Cześć,
Jako że czuję, że będzie to przewijało się przez kolejne miesiące to postaram się zebrać informację jak poprawić problem z kartami realtek w PVE.
Problem przewija się z większością kart r816x
i w sumie nie znalazłem sposobu by poprawić sterownik w oficjalnym kernelu, za to kilka wpisów na bugtracku kernela jest.
Po aktualizacji kernela karty realtek nie chodzą stabilnie i można je bardzo prosto “ubić” co wymaga restartu karty sieciowej - nie za fajne rozwiązanie jeśli chodzi o stabilność. Rozwiązanie sprawdzone na kilku instancjach i wszędzie problem ustąpił, tak więc przejdźmy do konkretów. Całość wykonujemy z konsoli - czy to konsoli PVE czy zdalnie przez klienta np. PuTTY. Przed
- Edytujemy plik
sources.lst
w wybranym edytorzenano
/vi
nano /etc/apt/sources.list
I do linijek odpowiedzialnych za main
i i updates
dopisujemy non-free
oraz non-free-firmware
, przykładowe wpisy dla pve z debianem w wersji bookworm:
deb http://ftp.pl.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://ftp.pl.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
- Instalujemy pakiet
headers
dla kernela - potrzebny do kompilacji modułów dla kernela oraz modułdkms
dla karty sieciowej
apt update
apt install pve-headers
apt install r8168-dkms
- Sprawdzamy status instalacji modułu przez polecenie:
dkms status
Naszym oczom powinno ukazać się mniej-więcej coś takiego:
r8168/8.051.02, 6.2.16-8-pve, x86_64: installed
Jeśli pakiet ma status installed to wszystko jest do tej pory w jak najlepszym porządku.
- Czas pozbyć się ładowania domyślnego sterownika:
echo "blacklist r8169" >> /etc/modprobe.d/r8168-dkms.conf
Sprawdzamy czy na końcu pliku pojawiła się linijka blacklist r8169
:
cat /etc/modprobe.d/r8168-dkms.conf
Jeśli tak to spokojnie wydajemy polecenie systemctl reboot
i czekamy na ponowne uruchomienie terminala.
[FAQ]
1. Jaką masz kartę ethernet spokojnie sprawdzisz przy pomocy polecenia:
lspci -k
tam będzie wpis podobny do tego (tu już z poprawionym sterownikiem, u Ciebie sterownik będzie inny):
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
Subsystem: Dell RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
Kernel driver in use: r8168
Kernel modules: r8168
2. Nie zauważyłem u siebie problemu
Prawdopodobnie siedzisz na starszym kernelu niż problematyczny. Kernel 6.x zaczął mieć ten problem lecz nie jestem w stanie powiedzieć, od którego wydania dokładnie. Wersję kernela sprawdzisz poleceniem:
uname -r
co da odpowiedź np:
6.2.16-8-pve
Jeśli twój kernel zaczyna się od cyfry 6
to warto zaaplikować powyższy sterownik zamiast domyślnego
3. Mam kernel w wersji 6.x i nadal nie widze problemu
Tak więc albo masz dużo szczęścia i Twój vendor płyty głównej nie namieszał z kartą, albo jeszcze nie obciążyłeś karty odpowiednio dobrze by przestała odpowiadać.
4. Kiedy problem zostanie naprawiony po stronie kernela?
Tego nie wie nikt - póki co na bugtrack są wpisy ludzi ale nikt się nie podejmuje szukania tego problemu, tak więc pewnie 90% użytkowników przesiądzie się na moduł non-free
i problem zostanie olany jak to ma miejsce z innymi problemami, np. z ACPI gdzie patche w kernelu pojawiają się nawet z rocznym opóźnieniem gdzie wdrożenie nowych flag to nie szukanie problemu jak to ma miejsce z tym sterownikiem.