Ubuntu Peronista@TTBP

Este es un espejo en el Tilde Blog Project del blog original Ubuntu Peronista. Se encuentra disponible en Tildeverso únicamente con fin histórico.



29 march 2022

¿Cómo activo la función Wake on LAN en Ubuntu 16.04LTS Xenial Xerus?

Durante la génesis del Justicialismo, un hecho de masas sin precedentes definió el definitivo ascenso político del Coronel Juan Perón. El 17 de octubre los obreros se lanzaron a la calle proclamando su liberación. En la biografía que escribe Pavón Pereyra, se revela que dicho suceso de debió al empleo de la característica Wake on Lan desde Ubuntu.

¡Trabajadores!

En los años previos a la Revolución, la Argentina los argentinos estaban sometidos a la ignominia de los explotados, en la cual todo el país obraba en torno al interés de unas pocas familias acomodadas. El Pueblo Argentino - laborioso y bueno - se constituía en poco más que esclavos por esta casta repudiada, que lo obligaba a un trabajo de sol a sol sin que mediara siquiera el descanso reparador que Dios manda para los hombres de trabajo.

Nuestra Revolución no tuvo otro interés que defender el interés del Pueblo, y hacer la Justicia Social que anhelaba la Patria. Abocados a las transformaciones que hicieran de este país una verdadera potencia sobre la tierra, conseguimos para los hombres aquellas medidas que esta era se hacían imprescindibles para el bienestar de su familia.

Yo no he querido mas que ser un nexo de unión entre los trabajadores, una unión indestructible e infinita que les acercara la dignidad que todos merecen. ¡Con ello, no no con otra cosa, es que me he ganado el amor generoso del Pueblo! ¡Un amor, que llena de lágrimas los ojos de este viejo soldado!

Pero la reacción oligárquica de siempre se ha esforzado para volver a la conquista de sus fallidos privilegios. En ello me confinaron a través de ignominiosas maniobras, a un ostracismo en la Isla de Martín García. Sin embargo, la semilla de la Justicia Social ya estaba plantada en el alma del Sentir Nacional, y con solo una señal el Pueblo despertó un 17 de Octubre, y salió a la calle para restaurar al Coronel Perón. Naturalmente, que sectores populares dentro de las fuerzas de seguridad volcaron su actitud y si aguno hubo que quiso parar todo, poco pudo hacer ante el Pueblo en andas.

La épica del Justicialismo guarda paralelismos con un sistema GNU con Linux que no podemos soslayar. Al igual que la rápida reacción de las masas obreras, un equipo informatizado puede trabajar, pero también debe descansar y quedar presto a la actividad a la menor señal.

De esta manera podríamos utilizar un equipo servidor en suspensión, y encenderlo sólo en determinadas ocasiones para accionar en alguna tarea en particular. Lo normal sería encender el equipo mediante su tecla de encendido, pero ello no siempre es práctico o posible.

Afortunadamente, también podremos encenderlo de manera remota empleando la función Wake on LAN. La función Wake on LAN (WoL) es una de las características integradas en los dispositivos Ethernet (por ejemplo, los dispositivos de red de la placa madre), que le permiten encender o reactivarlo a través de una señal especial, denominada Suceso de Activación, o más coloquialmente "paquete mágico".

Hemos de saber que los sistemas actuales cuentan en particular con varios estadíos de trabajo y reposo, nomenclador desde S0 ("Estado Cero", completamente encendido y operando), pasando por S3 ("estado tres" con memoria RAM alimentada, pero procesador y discos desactivados), hasta S5 ("Estado cinco", equipo apagado pero conectado a la red eléctrica). Esto es así pues el trabajo puede regularse a fin de ahorrar energía, y pasar del trabajo a un estado de ahorro, "suspendiendo" el sistema (S3), o "hibernándolo".

En primer lugar hemos de activar la función WoL desde la BIOS del equipo que deseamos encender remotamente. La BIOS es una memoria de configuración básica del sistema, a la cual este responderá incluso antes de cargar el sistema operativo. Normalmente, dicha configuración puede accederse encendiéndo el equipo y presionando inmediatamente de forma repetida la tecla Supr (Del) del teclado, o la tecla F2. Tras unos instantes se presentará la pantalla de configuración de la placa madre.

La opción Power on Lan suele encontrarse bajo la sección Power Management Setup ("Administración de Energía") del BIOS. De tal modo que nos desplazamos hasta ella y buscar la opción Wake on LAN. También puede llamarse Resume by PCI/PCI-e/LAN PME. Debemos dejarla en la función Activada (Enabled). Adicionalmente, podrán contar en vuestra BIOS con diferentes estados de suspensión (S1, S2, S3, etc). A modo de ejemplo os diré que en la BIOS de mi motherboard ESC H57H-MUS, debo configurar las opciones de un modo en particular para lograr la mayor eficiencia. El tipo de suspención ACPI la configuro en S3 o Auto, y la función Resume by Ring (reactivar por módem o evento telefónico) queda desactivada (Disabled). Naturalmente la función Resume by LAN PME queda activada (Enabled), lo mismo que Resume by USB S3 (reactivar por medio de dispositivos USB, ratón o teclado). Una vez concluida los cambios en la configuracción, los guardamos mediante la opción Save Changes and Exit BIOS.

Una vez que arranque el sistema operativo GNU con Linux, hemos de conocer qué dispositivo de red deseamos utilizar para encender el equipo, y en particular su dirección única de hardware, llamada Dirección MAC.

Aquí debemos tener una provisión. Normalmente estos tomaban el nombre Ethx, siendo la x un número que va ascendiendo desde 0 según tantos dispositivos LAN/Ethernet tengamos. El adaptador LAN/Ethernet integrado en la placa madre suele ser Eth0, pero si tenemos otro (como en las placas madres más avanzadas) podríamos encontrarnos con Eth1, Eth2, etc.

Esta nomenclatura a partir de Ubuntu 16.04LTS ha cambiado, ya hora toma la forma de enpxpy (siendo x el número de la interfaz e y el número de puerto).

Para identificar este requerimiento de forma sencilla, podríamos abrir la terminal con Ctrl+Alt+T y tipear el comando ifconfig para saber a cual estamos conectados. Para conocer específicamente los dispositivos de conectividad y sus direcciones MAC, podremos ingresar el comando:

ifconfig | grep HW

Nos devolverá los dispositivos y la dirección MAC de cada uno. Por ejemplo:

enp4s0 Link encap:Ethernet direcciónHW aa:bb:cc:12:34:56 enp5s0 Link encap:Ethernet direcciónHW 11:22:33:ab:cd:cd

Nos conviene tomar nota del nombre de la interfaz (enp4s0 en este ejemplo) y la dirección MAC del equipo remoto, pues nos facilitará reencenderlo luego cuando no tengamos acceso directo a él.

Acto seguido, verificaremos que los dispositivos cuenten con la posibilidad de despertar al equipo. Para ello instalaremos el programa ethtool, encargado de dicho relevamiento: Tipeamos el siguiente Comando de Organización:

sudo apt-get install ethtool etherwake wol

Asumiendo que el dispositivo de red que queremos utilizar para despertar el equipo sea aquel identificado como enp4s0, usaremos el siguiente comando:

sudo ethtool enp4s0

....el sistema debería devolvernos una serie de datos que hacen a la capacidad del dispositivo enp4s0 para la conexión de red. En este caso, entre otras cosas debería indicarnos:

Supports Wake-on: pumbg Wake-on: g

...esto nos indica que el dispositivo de red eth0 utiliza el modo G de conexión para Wake on LAN. En el caso que nos indicara otra letra, podríamos cambiar el modo operativo. Lo haríamos con:

sudo ethtool -s enp4s0 wol g

En Ubuntu el paquete que controlan el apagado y estados de energía es pm-utils. Normalmente debería estar instalado, pero si no lo estuviese, ingresamos:

sudo apt install pm-utils

Una vez esto, podremos ya suspender o hibernar el equipo. Podremos hacerlo mediante la tecla especcial "sleep" del teclado, o mediante la función "Suspender" de Ubuntu. Si estamos en la consola, podremos hacerlo mediante la siguiente orden

sudo pm-suspend

El 17 de octubre, si bien alguno intentó levantar puentes para impedir el paso de los obreros, poco pudo hacer. En este caso debemos aseguriar los mismo. En caso de usar un router con cortafuegos (firewall), habremos de liberar el puerto 9 UDP para que pueda enviarse la señal de encendido a través de la red, y no sea filtrada por el mismo. Esto se hace ingresando a la web de configuración del router (normalmente con nuestro navegador a la dirección IP del router 192.168.0.1 o 192.168.1.1). Luego en la sección de configuración "port forwarding" crearemos una nueva Regla de Excepción. En la misma, a través del protocolo UDP, para el puerto 9, filtraremos de forma universal (de manera que puedan emitir en dicho puerto todos los equipos de la red local) Con esto, el router dejará libremente pasar el suceso de activación al puerto 9 entre los equipos de la red local. Eventualmente, podría hacerla específicamene para que la reciba una IP fija de un tipo de dispositivo en particular, o que sólo pueda emitir una IP en particular.

Ahora debo instalar un programa para generar el paquete mágico de encendido, y poder dispararlo a través del puerto 9 de la red. Ello debe hacerse en un equipo cliente distinto en la red local, que utilizaremos para encender al equipo remoto.

En el equipo local instalaremos el programa wakeonlan, por medio del siguiente comando de organización:

sudo apt-get install wakeonlan

Una vez instalado este breve programa, encenderemos el equipo remoto que habíamos suspendido, de la misma forma en que los obreros de la carne salieron a la calle en octubre del 45. Lo haremos con

wakeonlan Dirección_MAC_remota Por ejemplo, en este caso sería:

wakeonlan aa:bb:cc:12:34:56

Nota: A veces este programa no tiene resultado, podremos emplear el software etherwake, el cual es más difícil. Su sintaxis es:

etherwake -p 255.255.255.255.9 Dirección_MAC_remota

Naturalmente, que para que el paquete de reencendido surta efecto, el equipo remoto ha de estar conectado a la red eléctrica, y ha de estar suspendido o hibernado. En el caso de usar Ubuntu, podremos usar la función Suspender, Hibernar del equipo remoto (si está activada). Esto será posible si tengo acceso físico al equipo.

¿Qué sucede si deseo suspender o hibernar el equipo remoto, pero no estoy a su alcance físico, pero si a través de una red? En tal caso deberia poder suspender o hibernar el sistema de forma remota, a través de la terminal. Para ello utilizaremos un enlace remoto (preferiblemente uno cifrado, a través de SSH). Una vez que me encuentro logueado al sistema remoto a través de la consola cifrada SSH, podria suspender el equipo remoto con:

sudo pm-suspend

También podría querer directamente hibernarlo, si me aseguro que el sistema funciona de forma adecuada, por medio de la siguiente orden:

sudo pm-hibernate

Ahora podría reencender abriendo un equipo cliente, y usando la orden Wakeonlan, por medio de la sintaxis:

wakeonlan dirección_mac_remota

...al recibir el paquete mágico, la fuente de alimentación se encenderá y se activará el sistema cual si fuese un 17 de octubre telemático. Al cabo de unos segundos (o minutos, dependiendo del estado de ahorro de energía q la velocidad de arranque del equipo remoto) deberíamos poder conectarnos de forma remota al equipo también a través de SSH o de otros protocolos que estuviesen activados en el mismo.

Si deseo reencender equipos remotamente al unísono desde la interfaz gráfica, puedo utilizar la aplicación gWakeonlan. Se trata de un software libre completamente simple, en el cual podremos incorporar el nombre y la dirección MAC de varios equipos en la red. Esto nos permite no tener que recordar la dirección MAC del equipo todo el tiempo.

Instalamos la aplicación con los comandos:

wget https://github.com/muflone/gwakeonlan/releases/download/0.5.1/gwakeonlan_0.5.1-1_all.deb

sudo dpkg -i gwakeonlan_0.5.1-1_all.deb

sudo apt-mark hold gwakeonlan

Y la ejecutamos desde Sistema / Internet / gWakeOnLan. Al iniciar, la aplicación estará vacía. Tendré que presionar el botón "+" y surgirá un cuadro, que me permitirá ingresar la dirección MAC y el nombre del o los equipos que deseo encender y que se encuentren en la red local. Una vez que aparezca el o los equipos en la lista, podemos seleccionar el equipo en cuestión, y enviarle el paquete mágico de encendido mediante el botón de los "engranajes" para despertarlo, y encenderá a la primera como una moto Puma con arranque a patada.

Desde OpenWRT

Si utilizan un router peronista con firmware libre OpenWrt, bien podrán crear un paquete mágico para reencendido Wake On Lan, descargando una aplicación específica en la memoria del aparato. Una vez que gane acceso al ruteador (normalmente a través de vínculo cifrado SSH) podrán instalar el pequeño software etherwake. Lo harán por medio de los siguientes comandos de organización:

opkg update opkg install etherwake

Una vez cargado, ya podremos utilizar al router como plataforma de reencendido: Si todo está configurado por defecto, lo haremos con el comando ya explicado:

etherwake -p 255.255.255.255.9 Dirección_MAC_remota

Naturalmente, que con un poco de ingenio podríamos hacer más cosas, como preparar al router para que encienda o quite la suspensión los equipos no bien termine de arrancar, permitir al router el acceso externo a través de Secure Shell y por su intermedio reencender equipos en el área local desde otra locación (¡incluso en otro pais!), etc.