¿Cómo evito que mi conexión de red ethernet se caiga?

16

Mi conexión de red basada en Ethernet no se mantiene constante. Estoy ejecutando un ping contra la puerta de enlace y lo hará:

  • Trabajar por un minuto
  • Congelar, agotar el tiempo o dar tiempos de respuesta de varios segundos
  • Repetir

Si está atascado y desactivo / habilito la conexión en red a través del applet del administrador de red, todo volverá a funcionar bien por un minuto. Después de 280 paquetes transmitidos, obtengo un 41% de pérdida de paquetes. He intentado un cable y una conexión diferentes a la puerta de enlace, pero esto no tuvo ningún efecto. La distancia a la puerta de enlace es de aproximadamente 3 pies.

Parece que funciona bien si me cambio a Windows, pero Ubuntu es mi sistema operativo principal y ni siquiera puedo usarlo en este momento, ya que dependo de la red.

Mi configuración ...

  • SO: Ubuntu 11.04, arranque dual Windows 7
  • Mobo: Gigabyte Z68X-UD4-B3
  • CPU: Intel Core i7 2600K

Editar

Una pequeña aclaración ... Network Manager todavía me muestra como conectado, pero no puedo llegar a la puerta de enlace ni nada más. En ningún momento NM sugiere que se haya perdido la conexión y llamar a ifconfig muestra que todavía tengo una dirección IP.

Intenté conectarme a una puerta de enlace diferente con un cable diferente y surge el mismo problema.

De acuerdo a lo pedido:

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

Editar

@ roland-taylor: la red siempre está disponible en Windows. Los pings no caducan, las aplicaciones no se quejan de la falta de disponibilidad de la red, las descargas grandes no se interrumpen ni se ralentizan.

Sean Hill
fuente
2
Teóricamente es posible que el problema sea con la puerta de enlace. ¿Has intentado usar una puerta de enlace diferente?
Robin Green
2
No creo que la placa base o la CPU sean de mucho interés aquí. lspci | grep -i ethpodría ser más informativo, y qué módulo está cargado, dhcp se está ejecutando, lo que dmesg | tail -fdice desde la conexión hasta la desconexión.
usuario desconocido
Dices que "parece funcionar bien en Windows" pero ¿estás realmente seguro de eso?
RolandiXor

Respuestas:

13

Descargue el controlador realtek oficial.

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

Luego, retire el módulo r8169 del kernel de Linux.

# 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

Finalmente, ponga en la lista negra el controlador r8169 y agregue lo siguiente a /etc/modprobe.d/blacklist.conf:

#blacklist r8169 driver
blacklist r8169

Lo encontré en http://www.rvdavid.net/how-to-get-gigabit-speeds-from-rtl81118168b-pci-express-gigabit-ethernet-controller-on-ubuntu-linux/ y funciona. Ahora todo está bien con la velocidad neta.

tipo
fuente
Esto funcionó perfectamente! Mi conexión de red ahora es estable y he podido continuar la migración de mi antiguo escritorio a este. Te votaría, pero aparentemente necesito más reputación ... Lo entendería, pero parece extraño teniendo en cuenta que era mi pregunta.
Sean Hill
Gracias, esto ayudó, no puedo conectarme a Internet después de reiniciar. Parece que hay problemas potenciales con la lista negra del módulo. Hay más información en los comentarios de esta publicación.
Drew
para conectarse a Internet después de reiniciar, seguí algunos pasos desde aquí ubuntuforums.org/showthread.php?t=723569 , excepto la compilación desde la fuente
amigo
Actualicé a gnome3 y perdí esta anulación del módulo, parece que debe seguir estos pasos para cada actualización del kernel. No estoy seguro de lo que hace initramfs, pero no lo había hecho antes de la actualización. Lo ejecuté justo ahora y actualizó los ramfs de arranque para el kernel actual, tal vez también se actualizará para los nuevos / dedos cruzados
Drew
¿Estás usando esto? ¿Notas estos problemas? Aquí hay pistas sobre la automatización de la actualización a nuevos núcleos con DKMS djlab.com/2010/10/fixing-rtl8111-8168b-driver-debian-ubuntu
Drew
8

Solo para poder encontrar esto la próxima vez que explote mi SSD. Aquí hay instrucciones para eliminar el r8169 roto e insertar r8168 en Ubuntu con Linux Kernel 3.x.

Kernel 3.x

  • Descargar r8168
  • Aplique este parche si todavía está marcado como no resuelto.
  • DETENER : Si planea usar DKMS, salte a la sección DKMS ahora.
  • Ejecute sudo ./autogen.sh, construirá el módulo, eliminará el anterior (ponga en la lista negra si lo desea) e instale r8168.ko en / lib / modules / 'uname -r' / drivers / net /.

DKMS

DKMS compilará e instalará el módulo en las nuevas instalaciones del kernel. También deberá incluir en la lista negra el antiguo módulo.

Incluya en la lista negra el módulo anterior si aún no lo ha hecho.

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

Instale DKMS y gcc.

sudo apt-get install dkms gcc

Copie los archivos fuente del módulo en una ubicación persistente, para que no los elimine accidentalmente más tarde.

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

Entonces corre,

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
Dibujó
fuente
1
+1 gran publicación. es posible que te falte el update-initramfscomando
bbaja42
Lo he usado muchas veces y nunca vi una diferencia, ¿estás seguro de que esto es necesario para un módulo de red? En realidad, lo incluiré para estar seguro. Escribí la guía a medida que avanzaba en el proceso para asegurarme de que todo funcionara. Es posible que haya ejecutado esto anteriormente mientras el módulo fue compilado / instalado / lo que sea.
Dibujó el
Hoy cambié los enrutadores, después de lo cual el RTL8111E en un GA-Z68X-UD3H-B3 (ejecutando Kubuntu 11.10 de 64 bits) dejó de funcionar: incluso si se pudiera establecer una conexión de red, no se transfirieron paquetes (el pingenrutador falló con "Host de destino Inalcanzable "). Después make modulese insertando el módulo, funcionó nuevamente. Después de rmmodcrear el nuevo módulo y cargar el antiguo, la red volvió a funcionar. Esto también es cierto después de un reinicio. No estoy seguro de qué ayudó a que esta NIC vuelva a funcionar (rmmod / insmod vs rmmod / insmod nuevo módulo), pero espero que sea útil para alguien.
Lekensteyn
0

eso puede ser útil

Puede experimentar los problemas con el controlador r8169 si inicia Windows en algunos sistemas. Windows por defecto deshabilita la NIC en el momento de apagado de Windows para deshabilitar Wake-On-Lan, y esta NIC permanecerá deshabilitada hasta la próxima vez que Windows la encienda. El controlador r8169 en el kernel no sabe cómo encender la NIC desde este estado deshabilitado; por lo tanto, el dispositivo no responderá, incluso si el controlador carga e informa que el dispositivo está activo. Para solucionar este problema, simplemente habilite la función "Wake-on-lan después del apagado". Puede configurar estas opciones a través del administrador de dispositivos de Windows.

Editar: El problema con el arranque dual con Windows también existe en el kernel 2.6.19.5 y 2.6.20.8, por lo que es seguro asumir que afectará a todos los kernel 2.6 hasta que los desarrolladores del kernel actualicen los controladores para RTL8168 a la versión que pueda para encender la NIC desde el estado deshabilitado

tipo
fuente
0

Corrección de erratas:

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
fuente
¿Podría agregar una explicación de lo que hacen estos comandos?