Inicio > Informática > WOL no funciona en ubuntu 10.04 LTS tras realizar la suspensión

WOL no funciona en ubuntu 10.04 LTS tras realizar la suspensión

Hacía tiempo que no me encontraba con un problema difícil de resolver en Linux. Resulta que tenemos un bug reconocido por el cual la función Wake On LAN dejará de funcionar tras la primera suspensión / hibernación del equipo. Es decir, que puedes suspender y reiniciar la máquina mediante WOL una única vez; las sucesivas será imposible. Y como es de costumbre, google te muestra miles de resultados con gente que configura el WOL sin problemas, pero nadie que se encuentre en mi misma tesitura.

Investigando un poco me he encontrado con varios enlaces que sugerían diversas soluciones, ninguna de las cuales me ha servido. Sin embargo, si me han dado una pista de por donde empezar. El directorio /etc/pm/sleep.d/ contiene scripts que se ejecutan al suspender y restaurar el sistema, llevando a cabo las acciones necesarias, de forma parecida a los de System V. Además, en /usr/lib/pm/sleep.d/ hay otros tantos definidos que se también se ejecutan.

Ya puestos en situación, resulta que he descubierto (mediante el conocidísimo método informático ensayo-error) que es necesario “resetear” las interfaces de red para que funcione de forma adecuada el WOL, además de habilitarlo, pues se deshabilita en cada suspensión / apagado. Esto lo hago con el siguiente script que me he creado, y que he colocado en /etc/pm/sleep.d/10_wol:

#!/bin/bash

IFACE=eth0

resetif() {
 ifconfig $IFACE down
 ifconfig $IFACE up
 ethtool -s eth0 wol g
}

case "${1}" in
 suspend|hibernate)
 resetif
 ;;
 resume|thaw)
 resetif
 dhclient $IFACE
 ;;
esac

El inconveniente es que este script entra en conflicto con /usr/lib/pm/sleep.d/55NetworkManager; el susodicho para y restaura el NetworkManager de Ubuntu. Así que he borrado éste último para evitar que falle.

Por cierto, que también es necesario habilitar WOL tras reiniciar la máquina. Para ello basta con crear un script que lo haga en cada automáticamente, /etc/init.d/wol:

#!/bin/bash
#
# Enables Wake On LAN 

ethtool -s eth0 wol g 

Y habilitarlo para que se ejecute en cada inicio:

# update-rc.d wol defaults

Y con esto ya tenemos nuestro Wake On LAN funcional.

Advertisement
Categorías:Informática Etiquetas: ,
  1. Aún no hay comentarios.
  1. Aún no hay trackbacks

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.