Wie verhindere ich, dass meine Ethernet-Netzwerkverbindung unterbrochen wird?

16

Meine Ethernet-basierte Netzwerkverbindung bleibt nicht durchgehend aktiv. Ich tippe gegen das Gateway und es wird:

  • Arbeite eine Minute
  • Einfrieren, Zeitüberschreitung oder Reaktionszeiten von mehreren Sekunden
  • Wiederholen

Wenn es nicht funktioniert und ich das Netzwerk über das Netzwerkmanager-Applet deaktiviere / aktiviere, funktioniert alles für eine Minute wieder. Nach 280 übertragenen Paketen erhalte ich 41% Paketverlust. Ich habe versucht, ein anderes Kabel und eine andere Verbindung zum Gateway herzustellen, dies hatte jedoch keine Auswirkungen. Die Entfernung zum Gateway beträgt nur etwa 3 Fuß.

Scheint gut zu funktionieren, wenn ich auf Windows umsteige, aber Ubuntu ist mein Hauptbetriebssystem und ich kann es momentan nicht einmal verwenden, da ich vom Netzwerk abhängig bin.

Mein Setup ...

  • Betriebssystem: Ubuntu 11.04, Dual-Boot von Windows 7
  • Mobo: Gigabyte Z68X-UD4-B3
  • CPU: Intel Core i7 2600K

Bearbeiten

Eine kleine Klarstellung ... Network Manager zeigt mich immer noch als verbunden an, aber ich bin nicht in der Lage, das Gateway oder etwas anderes zu erreichen. Zu keinem Zeitpunkt schlägt NM vor, dass die Verbindung unterbrochen wird, und der Aufruf von ifconfig zeigt, dass ich noch eine IP-Adresse habe.

Ich habe versucht, mit einem anderen Kabel eine Verbindung zu einem anderen Gateway herzustellen, und das gleiche Problem ist aufgetreten.

Wie gewünscht:

lspci | grep -i eth
07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)

dmesg | tail -f
[   14.024709] EXT4-fs (sda5): re-mounted. Opts: errors=remount-ro,commit=0
[   14.026443] EXT4-fs (sda7): re-mounted. Opts: commit=0
[   14.176101] hda-intel: IRQ timing workaround is activated for card #2. Suggest a bigger bdl_pos_adj.
[   23.917731] eth0: no IPv6 routers present
[  726.109697] r8169 0000:07:00.0: eth0: link up
[  733.169494] r8169 0000:07:00.0: eth0: link up
[  753.930119] r8169 0000:07:00.0: eth0: link up
[  880.787332] r8169 0000:07:00.0: eth0: link up
[ 1159.161283] r8169 0000:07:00.0: eth0: link up
[ 1406.623550] r8169 0000:07:00.0: eth0: link up

Bearbeiten

@ roland-taylor: Netzwerk ist unter Windows immer verfügbar. Pings haben kein Timeout, Anwendungen beschweren sich nicht über keine Netzwerkverfügbarkeit, große Downloads werden nicht unterbrochen oder verlangsamt.

Sean Hill
quelle
2
Theoretisch liegt das Problem möglicherweise am Gateway. Haben Sie versucht, ein anderes Gateway zu verwenden?
Robin Green
2
Ich denke nicht, dass Motherboard oder CPU hier von großem Interesse sind. lspci | grep -i ethkönnte informativer sein, und welches Modul geladen ist, dhcp läuft, was dmesg | tail -fvom Verbinden bis zum Trennen der Verbindung sagt.
Benutzer unbekannt
Sie sagen, es "scheint in Windows gut zu funktionieren", aber sind Sie sich wirklich sicher?
RolandiXor

Antworten:

13

Laden Sie den offiziellen Realtek-Treiber herunter.

http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&PNid=5&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false#2

Entfernen Sie dann das r8169-Modul aus dem Linux-Kernel.

# rmmod r8169

<Quick install with proper kernel settings>
Unpack the tarball :
# tar vjxf r8168-8.aaa.bb.tar.bz2
Change to the directory:
# cd r8168-8.aaa.bb
If you are running the target kernel, then you should be able to do :
# ./autorun.sh (as root or with sudo)
You can check whether the driver is loaded by using following commands.
# lsmod | grep r8168
# ifconfig -a
If there is a device name, ethX, shown on the monitor, the linux
driver is loaded. Then, you can use the following command to activate
the ethX.
# ifconfig ethX up

Als letztes muss der r8169-Treiber auf die schwarze Liste gesetzt werden. Fügen Sie Folgendes zu /etc/modprobe.d/blacklist.conf hinzu:

#blacklist r8169 driver
blacklist r8169

Ich habe es unter http://www.rvdavid.net/how-to-get-gigabit-speeds-from-rtl81118168b-pci-express-gigabit-ethernet-controller-on-ubuntu-linux/ gefunden und es funktioniert. Jetzt ist alles gut mit Nettogeschwindigkeit.

Kumpel
quelle
Das hat perfekt funktioniert! Meine Netzwerkverbindung ist jetzt stabil und ich konnte die Migration von meinem alten Desktop auf diesen fortsetzen. Ich würde dich wählen, aber anscheinend brauche ich mehr Ruf ... Ich würde verstehen, aber es scheint seltsam, wenn man bedenkt, dass es meine Frage war.
Sean Hill
Dank dieser Hilfe kann ich nach dem Neustart nicht mehr ins Internet. Es scheint potenzielle Probleme mit der Sperrliste des Moduls zu geben. Theres mehr Info in den Kommentaren zu diesem Beitrag.
Drew
im Internet zu bekommen nach dem Neustart i von hier einige Schritte , gefolgt ubuntuforums.org/showthread.php?t=723569 außer Kompilieren von der Quelle
Geck
Ich habe auf gnome3 aktualisiert und diese Modulüberschreibung verloren. Es sieht so aus, als müssten Sie diese Schritte für jedes Kernel-Update durchführen. Ich bin nicht sicher, was initramfs macht, aber ich hatte das vor dem Update nicht getan. Ich habe es gerade ausgeführt und es hat die Boot-RAMs für den aktuellen Kernel aktualisiert. Vielleicht werden auch neue aktualisiert / Daumen drücken
Drew
Benutzt du das? Merkst du diese Probleme? Hier finden Sie Hinweise zur Automatisierung des Upgrades auf neue Kernel mit DKMS. Djlab.com/2010/10/fixing-rtl8111-8168b-driver-debian-ubuntu
Drew
8

Nur damit ich das nächste Mal herausfinden kann, wenn meine SSD in die Luft geht. Hier finden Sie Anweisungen zum Entfernen des defekten r8169 und Einfügen von r8168 unter Ubuntu mit Linux Kernel 3.x.

Kernel 3.x

  • Laden Sie r8168 herunter
  • Wenden Sie diesen Patch an, wenn er noch als ungelöst markiert ist.
  • STOP : Wenn Sie vorhaben, DKMS zu verwenden, fahren Sie jetzt mit dem Abschnitt DKMS fort.
  • Führen Sie aus sudo ./autogen.sh, es wird das Modul erstellen, das alte entfernen (es auf die schwarze Liste setzen, wenn Sie möchten) und r8168.ko unter / lib / modules / 'uname -r' / drivers / net / installieren.

DKMS

DKMS erstellt und installiert das Modul bei einer Neuinstallation des Kernels. Sie müssen auch das alte Modul auf die Blacklist setzen.

Setzen Sie das alte Modul auf die schwarze Liste, falls Sie dies noch nicht getan haben.

echo 'rmmod r8169' | sudo tee /etc/modprobe.d/blacklist.conf

Installieren Sie DKMS und gcc.

sudo apt-get install dkms gcc

Kopieren Sie die Modulquelldateien an einen dauerhaften Speicherort, damit Sie sie später nicht versehentlich entfernen.

sudo cp -R r8168-8.025.00 /usr/src

echo 'PACKAGE_NAME=r8168
PACKAGE_VERSION=8.025.00
MAKE[0]="make"
BUILT_MODULE_NAME[0]=r8168
BUILT_MODULE_LOCATION[0]="src/"
DEST_MODULE_LOCATION[0]="/kernel/updates/dkms"
AUTOINSTALL="YES"' | sudo tee /usr/src/r8168-8.025.00/dkms.conf

Dann renne,

dkms add -m r8168 -v 8.025.00
dkms build -m r8168 -v 8.025.00
dkms install -m r8168 -v 8.019.00
sudo update-initramfs -u
Drew
quelle
1
+1 toller Beitrag. Möglicherweise fehlt Ihnen der update-initramfsBefehl
bbaja42
Ich habe das schon oft benutzt und habe nie einen Unterschied gesehen. Bist du sicher, dass dies für ein Netzwerkmodul benötigt wird? Eigentlich werde ich es nur einschließen, um sicher zu gehen. Ich habe den Leitfaden geschrieben, als ich durch den Prozess schritt, um sicherzustellen, dass alles funktioniert. Möglicherweise habe ich dies zuvor ausgeführt, während das Modul erstellt / installiert / was auch immer war.
Drew
Heute habe ich Router getauscht, nach denen der RTL8111E auf einem GA-Z68X-UD3H-B3 (mit Kubuntu 11.10 64-Bit) nicht mehr funktionierte: Selbst wenn eine Netzwerkverbindung hergestellt werden konnte, wurden keine Pakete übertragen ( pingzum Router fehlgeschlagen mit "Destination Host") Nicht erreichbar "). Nach dem make modulesEinsetzen des Moduls hat es wieder funktioniert. Nachdem rmmoddas neue Modul und das alte geladen wurden, funktionierte das Netzwerk wieder. Dies gilt auch nach einem Neustart. Ich bin nicht sicher, was dazu beigetragen hat, dass diese Netzwerkkarte wieder funktioniert (rmmod / insmod vs rmmod / insmod neues Modul), aber hoffentlich ist es jemandem hilfreich.
Lekensteyn
0

das kann nützlich sein

Die Probleme mit dem r8169-Treiber können auftreten, wenn Sie Windows auf einigen Systemen dual booten. Windows deaktiviert standardmäßig die Netzwerkkarte beim Herunterfahren von Windows, um Wake-On-Lan zu deaktivieren. Diese Netzwerkkarte bleibt deaktiviert, bis Windows sie das nächste Mal einschaltet. Der r8169-Treiber im Kernel kann die Netzwerkkarte in diesem deaktivierten Zustand nicht einschalten. Daher reagiert das Gerät nicht, selbst wenn der Treiber geladen wird und meldet, dass das Gerät in Betrieb ist. Aktivieren Sie einfach die Funktion "Wake-on-lan nach dem Herunterfahren", um dieses Problem zu umgehen. Sie können diese Optionen über den Geräte-Manager von Windows einstellen.

Bearbeiten: Das Problem des Dual-Bootens mit Windows besteht auch im 2.6.19.5- und 2.6.20.8-Kernel. Daher kann davon ausgegangen werden, dass alle 2.6-Kernel betroffen sind, bis die Kernel-Entwickler die Treiber für RTL8168 auf die Version aktualisieren, die in der Lage sein wird um die Netzwerkkarte aus dem deaktivierten Zustand einzuschalten

Kumpel
quelle
0

Errata corrige:

echo 'blacklist r8169' | sudo tee /etc/modprobe.d/blacklist-r8169.conf
dkms add -m r8168 -v 8.025.00
dkms build -m r8168 -v 8.025.00
dkms install -m r8168 -v 8.025.00
sudo update-initramfs -u
sccplg
quelle
Könnten Sie bitte eine Erklärung hinzufügen, was diese Befehle bewirken?