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

septiembre 19, 2011 Deja un comentario Go to comments

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.

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

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: