sábado, 5 de enero de 2019

Solucionado error en Archlinux al hacer por wifi copia con rsync

Desde que instalé Archlinux hace casi cuatro años en mi netbook mobii me daba este error al copiar ficheros de gran tamaño:

rsync: [sender] write error: Broken pipe (32)
rsync error: unexplained error (code 255) at io.c(820) [sender=3.1.3]


Esta es la tarjeta de red wifi:

$ sudo lspci -v

02:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8187SE Wireless LAN Controller (rev 22)
    Subsystem: Realtek Semiconductor Co., Ltd. RTL8187SE Wireless LAN Controller
    Flags: bus master, fast devsel, latency 0, IRQ 17
    I/O ports at ec00 [size=256]
    Memory at febfc000 (32-bit, non-prefetchable) [size=16K]
    Capabilities: [40] Power Management version 3
    Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [70] Express Legacy Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [140] Virtual Channel
    Capabilities: [160] Device Serial Number xx-xx-xx-xx-xx-xx-xx-xx
    Kernel driver in use: rtl818x_pci
    Kernel modules: rtl818x_pci


rsync se quedaba bloqueado y al cabo de un tiempo daba timeout. También daba error copiando ficheros grandes con caja de MATE desktop.

Ayer me vino la inspiración y probé a cambiar distintas configuraciones de la tarjeta wifi con iwconfig. ¡Y solucioné el problema!.

El cambio que me funciona es el siguiente:

$ sudo iwconfig wlp2s0 frag 512


Ayer le tuve más 8 horas haciendo la copia sin ningún problema. Lo he añadido como un servicio en el arranque y lleva más de 9 horas sin problemas.

He probado con 1024 y da el mismo error.

En man iwconfig te explican que hace frag y buscando he encontrado esta página: http://kmkeen.com/linux-wifi/2012-06-18-10-00-10-044.html


Actualización 25/02/19: 

He hecho una prueba de más de 18 horas y no ha dado problemas la siguiente configuración (más de 1.1MB/s de media en mi netbook):

$ sudo iwconfig wlp2s0 rts auto
$ sudo iwconfig wlp2s0 frag 750
 
Lo he añadido al arranque creando el servicio iwconfig_settings en systemd:
 

$ sudo vim /etc/systemd/system/iwconfig_settings.service

Con este texto:

[Install]
WantedBy=network.target
RequiredBy=network.target

[Unit]
Description=Service to execute iwconfig setup rts auto and frag 750
Documentation=man:iwconfig(8)
Requires=network.target
Wants=network.target
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/iwconfig wlp2s0 rts auto
ExecStop=/usr/bin/iwconfig wlp2s0 frag 750

 

No hay comentarios:

Publicar un comentario