Ubuntu Linux 8.04 – Wake on LAN
Now that I’ve switched to a Macbook Pro with OSX Leopard as my primary desktop, I’ve located my Ubuntu machine in another part of the house to be accessible to my children. Not wanting to walk to the room where it’s located just to flip the power switch, I researched how to get “wake on LAN” working, so I could power it up remotely.
- Enable the appropriate setting in your BIOS. Mine had something to do with wake on PCI device.
-
Install ethtool if you don’t already have it.
sudo apt-get install ethtool cd /etc/init.d sudo vim wakeonlanconfig
Add the following lines to that file:
#!/bin/bash ethtool -s eth0 wol g
Install the script:
sudo update-rc.d -f wakeonlanconfig defaults
Run the script:
sudo /etc/init.d/wakeonlanconfig
-
Keep the network interface alive after shut down.
sudo vim /etc/init.d/halt
Change the following line:
halt -d -f -i $poweroff $hddown
to the following line (i.e. remove the -i)
halt -d -f $poweroff $hddown
-
Get the MAC address
ifconfig | grep HW
- Send the magic packet via the following Ruby program:
require 'socket'
mac_addr = "x21x53x39xB3x90x42"
s = UDPSocket.new
s.setsockopt(Socket::SOL_SOCKET, Socket::SO_BROADCAST, 1)
s.send("xff"*6 + mac_addr*16, Socket::SO_BROADCAST, '10.0.0.255', 7)