domingo, 25 de diciembre de 2016

Evitar desconección Wifi Realtek en Raspbian por poca actividad

   Me ha pasado más de una vez en los RPi que tengo siempre funcionando y sin pantalla (modalidad headless), que al estar conectados solo por Wifi y no tener mucho movimiento diario, que al querer conectarme remotamente vía SSH no están disponibles. Eso hace que tenga que enchufarle mouse, teclado y pantalla. Ahí aparece que el aparatito está sano y feliz haciendo nada, pues en algún momento se desconectó del Wifi.
Dongles Wifi con chips Realteck: (izquierda) TP-Link TL-WN725N con chip Realtek 8188eu. (derecha) dongle genérico con chip Realtek 8192cu.

   Investigando, no es raro para los poseedores de dongles Wifi con chips Realtek que esto pase, al parecer por problemas con la administración de energía. En mi caso tengo varios basados el chip Realtek 8192cu y otro dongle con el r8188eu.
   La solución mas común pasa por apagar esa funcionalidad usando parámetros al modulo respectivo del kernel, como se menciona en blog Optimize my Pi Wifi.

Configuración para Realtek 8192cu

   Este chip es bastante común para el RPi, pues fue uno de los primeros soportados en el kernel de Raspbian en forma nativa en sus versiones 3.X.
   La forma de configurarlo es crear un archivo para el módulo del kernel para este dispositivo, con parámetros que apagan la conservación de energía, pero a la vez mantiene la conexión estable.
   Para ello se debe crear el siguiente archivo, con el comando para editarlo si no existe:
sudo nano /etc/modprobe.d/8192cu.conf

y luego agregar los parámetros:
options 8192cu rtw_power_mgnt=0 rtw_enusbss=0

luego de grabar los cambios y salir (CTRL+O y CTLR+X), se debe reiniciar el RPi.

Configuración para Realtek8188eu

   La forma de configurarlo es similar, pero el nombre del archivo a crear es diferente:
sudo nano /etc/modprobe.d/r8188eu.conf

y luego agregar los parámetros:
options r8188eu rtw_power_mgnt=0 rtw_enusbss=0

luego de grabar los cambios y salir (CTRL+O y CTLR+X), se debe reiniciar el RPi.

Verificación de parametros

   Con el comando modinfo se pueden listar los parametros del módulo del kernel para el dongle wifi, así si se listan solo los parámetros (con opción -F parm) se pueden conocer cuales existen:
$ sudo modinfo 8192cu -F parm
rtw_ips_mode:The default IPS mode (int)
ifname:The default name to allocate for first interface (charp)
if2name:The default name to allocate for second interface (charp)
rtw_initmac: (charp)
rtw_channel_plan: (int)
rtw_chip_version: (int)
rtw_rfintfs: (int)
rtw_lbkmode: (int)
rtw_network_mode: (int)
rtw_channel: (int)
rtw_mp_mode: (int)
rtw_wmm_enable: (int)
rtw_vrtl_carrier_sense: (int)
rtw_vcs_type: (int)
rtw_busy_thresh: (int)
rtw_ht_enable: (int)
rtw_cbw40_enable: (int)
rtw_ampdu_enable: (int)
rtw_rx_stbc: (int)
rtw_ampdu_amsdu: (int)
rtw_lowrate_two_xmit: (int)
rtw_rf_config: (int)
rtw_power_mgnt: (int)
rtw_low_power: (int)
rtw_wifi_spec: (int)
rtw_special_rf_path: (int)
rtw_antdiv_cfg: (int)
rtw_enusbss: (int)
rtw_hwpdn_mode: (int)
rtw_hwpwrp_detect: (int)
rtw_hw_wps_pbc: (int)
rtw_max_roaming_times:The max roaming times to try (uint)
rtw_force_iol:Force to enable IOL (bool)
rtw_mc2u_disable: (int)
rtw_mac_phy_mode: (int)
rtw_80211d: (int)
rtw_notch_filter:0:Disable, 1:Enable, 2:Enable only for P2P (uint)

Se puede ver el valor utilizado de los parámetros para estos módulos leyendo desde /sys/module/ :

$ cat /sys/module/8192cu/parameters/rtw_enusbss
0


No hay comentarios.:

Publicar un comentario