Guide Installation r8168-Treiber
Aus EUserv Wiki
Languages: |
Deutsch • English |
Installation r8168-Treiber für Realtek-Netzwerkchip
Inhaltsverzeichnis |
Installation r8168-Treiber für Realtek-Netzwerkchip
Allgemeines und Fehlerbeschreibung
Der r8169-Treiber für den Realtek-Netzwerkchip funktioniert selbst bei frisch installierten Systemen nicht immer korrekt.
- Hintergrund:
- Der im Linux Kernel enthaltene Treiber ist nicht fehlerfrei und führt zu Problemen bei Netzwerkkarten mit Realtek Chipsatz.
- Betroffene Systeme / Hardware:
- alle Server mit Realtek Netzwerk Chip
- alle Kernelversionen (auch die neuesten, Stand 02/2014)
- Symptome
- Timeouts der Netzwerkverbindung
- Ständiger Wechsel der Netzwerkzustände (Flapping des Links "up / down")
- Systemabstürze (eher selten)
Folgende Log-Einträge in /var/log/messages sind ein Anzeichen für einen veralteten Treiber:
[ 8.843743] r8169 0000:02:00.0 eth0: link down [ 10.394656] r8169 0000:02:00.0 eth0: link up [ 97.126563] r8169 0000:02:00.0 eth0: link down [ 98.681824] r8169 0000:02:00.0 eth0: link up [ 100.806543] r8169 0000:02:00.0 eth0: link down [ 102.763810] r8169 0000:02:00.0 eth0: link up
- Problembehebung
- Entfernung des eingebauten Kernel - Treibers r8169
- Installation des offiziellen r8168 - Treibers von Realtek
Durch die Installation des offiziellen r8168-Treibers von Realtek anstatt des r8169 des Linux-Kernels lässt sich das Problem beheben. Dieser offizielle Treiber ist nicht Bestandteil der meisten Distributionen. Während unter CentOS der Treiber aus den Repositories nachinstalliert werden kann, muss er unter Debian und Ubuntu aus den Quellen kompiliert und aktiviert werden.
Dieser Artikel beschreibt, wie dabei vorzugehen ist.
Installation
Installation unter Debian/Ubuntu
Unter Debian und Ubuntu erfolgt die Installation durch die Kompilierung aus den Quellen und anschließende Aktivierung des Treibers.
Installation aus den Quellen
Voraussetzungen
Installation der zur Übersetzung notwendigen Pakete mittels folgendem Befehl:
aptitude install build-essential linux-headers-`uname -r` screen
Installation des Treibers
Zur Installation gehen Sie nach folgenden Schritten vor:
- Herunterladen und Entpacken der Quellen:
cd /tmp wget http://mirror.euserv.net/misc/r8168-8.038.00.tar.bz2 tar xjf r8168-8.038.00.tar.bz2
- Überprüfen mit 'make modules' ob Kernel-Modul ohne Fehler kompiliert werden kann:
cd r8168-8.038.00 && make modules # wahlweise: cd r8168-8.038.00 && make all
- Kompilieren des Treibers durch Ausführen des autorun.sh-Skripts. Dabei wird der vorhandene r8169-Treiber ersetzt:
screen cd r8168-8.038.00 ./autorun.sh
Hierbei wird die Netzwerkverbindung getrennt und es kommt zur dauerhaften Deaktivierung des r8169-Treibers. Sie können stattdessen den Treiber aktivieren. Dabei kommt es zu keiner Trennung der Netzwerkverbindung und nur zur temporären Deaktivierung des Treibers.
Aktivieren des Treibers
Aktivieren Sie den Treiber, wenn Sie keine Unterbrechung der Netzwerkverbindung im laufenden Betrieb möchten. Dazu befolgen Sie die folgenden Schritte:
- Aktualisieren der Modulabhängigkeiten:
depmod -a
- Verhindern, dass der r8169-Treiber automatisch vom Kernel geladen wird:
echo "blacklist r8169" >> /etc/modprobe.d/blacklist.conf
- Einbinden des neuen Treibers in die initrd:
echo "r8168" >> /etc/initramfs-tools/modules
- Neuerzeugen der initrd:
update-initramfs -v -t -u
- Reboot des Servers.
Nach zukünftigen Kernel-Updates muss der Treiber ggf. neu kompiliert werden.
Installation unter CentOS
Installation aus dem Repository
Die Installation unter CentOS kann aus den Repositories durchgeführt werden.
Um den r8168-Treiber aus dem Repository zu installieren, gehen Sie wie folgt vor:
- Einbinden des benötigten Repository im System durch Importieren des öffentlichen GPG-Schlüssels mittels folgendem Befehl:
rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org
Für RHEL-6 oder CentOS-6 wird der GPG-Schlüssel mittels folgendem Befehl importiert:
rpm -Uhv http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
- Installation des Pakets mit dem neuen Kernel-Modul:
yum --enablerepo=elrepo install kmod-r8168
Der geänderte Treiber wird auch nach einem Reboot verwendet und bleibt auch nach einer Aktualisierung des Kernels aktiv.
Installation aus den Quellen
Voraussetzungen
Folgende Voraussetzungen müssen vor der Installation gegeben sein:
- Installation des neusten Kernels via yum bzw. apt-get
- Booten des Kernels
- Installation der Header-Pakete des Kernels 'kernel-devel', 'kernel-headers' und des Compilers zur Übersetzung des Treibers:
yum install gcc gcc-c++ kernel-devel kernel-headers
Installation des Treibers
Zur Installation gehen Sie nach folgenden Schritten vor:
- Herunterladen und Entpacken der Quellen:
cd /tmp wget http://mirror.euserv.net/misc/r8168-8.038.00.tar.bz2 tar xjf r8168-8.038.00.tar.bz2
- Überprüfen mit 'make modules' ob Kernel-Modul ohne Fehler kompiliert werden kann:
cd r8168-8.038.00 && make modules # wahlweise: cd r8168-8.038.00 && make all
- Kompilieren des Treibers durch Ausführen des autorun.sh-Skripts. Dabei wird der vorhandene r8169-Treiber ersetzt:
screen cd r8168-8.038.00 ./autorun.sh
Hierbei wird die Netzwerkverbindung getrennt und es kommt zur dauerhaften Deaktivierung des r8169-Treibers. Sie können stattdessen den Treiber aktivieren. Dabei kommt es zu keiner Trennung der Netzwerkverbindung und nur zur temporären Deaktivierung des Treibers.
Aktivieren des Treibers
Aktivieren Sie den Treiber, wenn Sie keine Unterbrechung der Netzwerkverbindung im laufenden Betrieb möchten. Dazu gehen Sie wie folgt vor:
- Öffnen der Datei /etc/modprobe.conf und Änderung des zuständigen Treibers für die Schnittstelle eth0 durch Umbenennung des folgenden Eintrags:
alt: alias eth0 r8169 neu: alias eth0 r8168
- Anlegen eines Shell-Skripts mit den für die Aktivierung des Treibers benötigten Befehlen, da Netzwerkverbindung unterbrochen wird:
echo "rmmod r8169" > /tmp/r8168 echo "depmod -a" >> /tmp/r8168 echo "modprobe r8168" >> /tmp/r8168 echo "service network restart" >> /tmp/r8168 echo "service ipaliases restart" >> /tmp/r8168
- Ausführen des angelegten Skripts:
sh /tmp/r8168
- Löschen des Arbeitsverzeichnisses nach Erreichbarkeit des Servers mit dem neuen Netzwerkkartentreiber:
rm -rf /root/r8168
Installation unter OpenSUSE
Installation aus dem Repository
Um den r8168-Treiber aus dem Repository zu installieren, gehen Sie wie folgt vor:
- Hinzufügen des Repository mit Zypper und Installation des entsprechenden Modulpakets:
cd /etc/zypp/repos.d wget http://download.opensuse.org/repositories/drivers:/nic/openSUSE_Tumbleweed/drivers:nic.repo zypper refresh zypper install r8168-kmp-default
- Verhindern, dass r8169-Treiber vor Reboot geladen wird:
echo "blacklist r8169" >> /etc/modprobe.d/99-local.conf
- Reboot des Servers.
Nach dem Neustart sollte der neue Treiber dauerhaft aktiv sein.