web-dev-qa-db-fra.com

La carte Ethernet Realtek se déconnecte de manière aléatoire

Mon ordinateur portable a une carte Ethernet Realtek RTL8168, qui fonctionne plutôt bien. Sauf dans certains cas, lorsque la connexion est interrompue et que je dois débrancher et rebrancher le câble afin de rétablir la connexion.

J'ai essayé le module r8169 préinstallé, mais j'utilise maintenant le module r8168 construit avec le code source du site Web de Realtek. Le problème se produit avec les deux modules de pilote.

$ lspci | grep Ethernet
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)

$ dmesg
#stops working, no reports
#unplugging
[ 9324.277753] r8168: eth0: link down
[ 9328.636380] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
#replugging
[ 9334.316610] r8168: eth0: link up
[ 9334.316744] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
#Working again

PS: Avec grep NetworkManager /var/log/syslog, voici ce que je devrais faire, à peu près au moment où une telle interruption de connexion s'est produite:

#EDIT:These messages are printed when I plug out the cable. Before, there is nothing
Jan 28 23:40:31 dracarys NetworkManager[912]: <info> (eth0): carrier now OFF (device state 100, deferring action for 4 seconds)
Jan 28 23:40:35 dracarys NetworkManager[912]: <info> (eth0): device state change: activated -> unavailable (reason 'carrier-changed') [100 20 40]
Jan 28 23:40:35 dracarys NetworkManager[912]: <info> (eth0): deactivating device (reason 'carrier-changed') [40]
Jan 28 23:40:35 dracarys NetworkManager[912]: <info> (eth0): canceled DHCP transaction, DHCP client pid 6975
Jan 28 23:40:35 dracarys NetworkManager[912]: <warn> DNS: plugin dnsmasq update failed
Jan 28 23:40:35 dracarys NetworkManager[912]: <info> Removing DNS information from /sbin/resolvconf
Jan 28 23:40:35 dracarys NetworkManager[912]: <info> NetworkManager state is now DISCONNECTED
#replug
Jan 28 23:40:40 dracarys NetworkManager[912]: <info> (eth0): carrier now ON (device state 20)
Jan 28 23:40:40 dracarys NetworkManager[912]: <info> (eth0): device state change: unavailable -> disconnected (reason 'carrier-changed') [20 30 40]
Jan 28 23:40:40 dracarys NetworkManager[912]: <info> Auto-activating connection 'Wired connection 1'.
Jan 28 23:40:40 dracarys NetworkManager[912]: <info> Activation (eth0) starting connection 'Wired connection 1'
Jan 28 23:40:40 dracarys NetworkManager[912]: <info> (eth0): device state change: disconnected -> prepare (reason 'none') [30 40 0]
Jan 28 23:40:40 dracarys NetworkManager[912]: <info> NetworkManager state is now CONNECTING

Et puis ça a encore fonctionné

Des idées pour résoudre le problème? Faites-moi savoir si vous avez besoin d'informations supplémentaires.

EDIT: $ modinfo r8168

filename:       /lib/modules/3.13.0-37-generic/kernel/drivers/net/ethernet/realtek/r8168.ko
version:        8.038.00-NAPI
license:        GPL
description:    RealTek RTL-8168 Gigabit Ethernet driver
author:         Realtek and the Linux r8168 crew <[email protected]>
srcversion:     7600C3366E422907A1D79F1
alias:          pci:v00001186d00004300sv00001186sd00004B10bc*sc*i*
alias:          pci:v000010ECd00008168sv*sd*bc*sc*i*
depends:        
vermagic:       3.13.0-37-generic SMP mod_unload modversions 
parm:           eee_enable:int
parm:           speed:force phy operation. Deprecated by ethtool (8). (ushort)
parm:           duplex:force phy operation. Deprecated by ethtool (8). (int)
parm:           autoneg:force phy operation. Deprecated by ethtool (8). (int)
parm:           aspm:Enable ASPM. (int)
parm:           s5wol:Enable Shutdown Wake On Lan. (int)
parm:           rx_copybreak:Copy breakpoint for copy-only-tiny-frames (int)
parm:           timer_count:Timer Interrupt Interval. (int)
parm:           debug:Debug verbosity level (0=none, ..., 16=all) (int)
3
s3lph

Il y a quelques jours, j'ai trouvé une nouvelle version du pilote (8.039.900) sur le site Web de Realtek. Je l'ai téléchargé, compilé et installé, et je n'ai jamais connu de baisse de connexion depuis.

Mise à jour de r8168:

La source de pilote la plus récente peut être téléchargée ici .

Extrayez l'archive téléchargée et lancez

Sudo make

dans le dossier d'extraction. Après la compilation, le module r8168 actuellement installé sera automatiquement remplacé par la nouvelle version (ce qui, à mon avis, ne devrait se produire que lors de l'exécution de make install)

Pour charger la nouvelle version, exécutez

Sudo modprobe -r r8168 && Sudo modprobe r8168

PS: N'utilisez pas le script d'installation fourni avec ce pilote. Il désinstallera l’ancien module (peu importe qu’il soit r8168 ou r8169) avant même d’essayer de le compiler. Si la compilation échoue, vous vous retrouvez sans Internet, si vous n'avez pas de WiFi ou une autre carte Ethernet.

0
s3lph

N.B : Cette réponse n’est en aucun cas définitive. J'ai proposé quelques solutions possibles à partir de recherches en ligne ainsi que de suggestions personnelles d'expérience.

Remplacer le module du noyau

Après des recherches en ligne, il apparaît que la meilleure solution consiste souvent à remplacer le module r8168 fourni avec l'installation d'Ubuntu par une version plus récente et mise à jour. Par exemple, ce post crunchbang .

Ce post sur les forums Ubunt de 2012 documente un script pour une version plus récente et mise à jour du module r8168. Vous pouvez faire Sudo apt-get install linux-headers-$(uname -r) ou Sudo apt-get install --reinstall linux-headers-$(uname -r), puis suivez les instructions de matera.ttp. Praseonym, qui a également posté sur ce site, suggère d'installer le pilote avec dkms , qui est censé reconstruire les modules pour chaque mise à jour du noyau. Dkms devrait déjà être installé et vous pouvez le vérifier avec which dkms. Vous pouvez donc utiliser les instructions de Praseonym ou celles de matera.ttp. L'idée est la même.

Tweak Paramètres du module

Pour de nombreux problèmes de réseau, modifier les configurations des modules peut aider à résoudre les problèmes, mais franchement, je doute que ce soit un problème, car vous avez utilisé r8169 avec le même effet. Néanmoins, essayez-le.

Dans le répertoire /etc/modprobe.d/, créez le fichier r8168.conf. Dans ce fichier, écrivez:

options eee_enable=1

Enregistrez et redémarrez.

Maintenant, vous pourriez faire la même chose avec d’autres options. Par exemple, ma première hypothèse était d'ajouter options timer_count=3600 au fichier r8168.conf. Pourquoi 3600? En supposant que le paramètre traite avec le temps, alors c'est probablement les secondes.

J'ai trouvé un cas où cela n'a pas fonctionné, et le problème était lié au bios. Reportez-vous à cette page: http://ubuntuforums.org/showthread.php?t=2138125&page=2

Si tout le reste échoue

J'ai également mentionné dans d'autres articles que le matériel est parfois le problème et peu importe le nombre de modifications que vous apportez, cela ne vous aidera pas. Personnellement, j’ai eu affaire à deux chipsets sans fil rtl8192, dont l’un produisait un bogue sonore étrange, mais l’autre fonctionnait presque sans faille.

Je vous suggère d'explorer les possibilités de remplacement de votre carte Ethernet. Ma suggestion serait un hub USB portable avec une fente Ethernet, n peu comme ceux-ci

1
Sergiy Kolodyazhnyy