Wake On LAN

This is the ManagedPlatformUnit page which describes how Informatics' Wake On LAN service is put together. If you just want to use the service, see http://wake.inf.ed.ac.uk. If you're looking for documentation for users of the service, see Remote Wake-up for Sleeping Computers.

Instructions for Support

For a person to be able to wake a sleeping computer using wake.inf.ed.ac.uk, these things need to happen:

  • It has to be on a Forum or Tower network wire.
  • The computer's lcfg file needs to #include <dice/options/wake-client.h>.
    You will usually not need to bother with this because it has already been done in the following headers: dice/options/office-at.h, dice/options/office-forum.h, dice/options/studentlabs.h, dice/os/selfmanaged.h, dice/os/managed-desktop.h, dice/os/placeholder.h and dice/os/diystub.h.
  • Machines using dice/os/placeholder.h will also need their MAC address declared in the wolclient.mac resource in their profile. Unless this is done, placeholder.h machines cannot be woken by wake.inf. On placeholder.h machines this needs to be done even if the MAC address is already in dhclient.mac. Don't bother with this step if the machine doesn't use placeholder.h.
  • Whoever the computer is allocated to (in sysinfo.allocated) will then have permission to wake it.
  • You can give extra people permission to wake a machine by adding their names to the wolclient.users resource. For example
    !wolclient.users mEXTRA(huey dewey louie)
    You can also use a capability or netgroup if you precede it by @ e.g.
    !wolclient.users mEXTRA(@sysmans)
    !wolclient.users mEXTRA(@wol/nephews)
    Note If you create a capability specially for this, like wol/nephews in the example above, make sure to wait until it has been created before adding it to wolclient.users. You can tell when it has been created when netgroup -U lists its members, e.g.
    $ netgroup -U wol/nephews
    If you're really in a hurry then ssh ionian and run your netgroup command there; if your capability hasn't yet shown up then om openldap kick to hurry it along.
  • Architecture

    The web server of wake.inf.ed.ac.uk currently runs on ionian. The configuration for the web server portion is in dice/options/wake-web.h. The CGI script and associated files live in LCFG subversion in the wakeweb directory and are installed using the wakeweb RPM.

    The web server does not wake machines itself. Instead it sends commands to Infrastructure Unit machines abbado and otaka. abbado covers Forum subnets and otaka covers Tower subnets. The Wake On LAN configuration for abbado and otaka is in dice/options/wake-backend.h. The backend part of the service uses a small script which lives in LCFG subversion in the wakebackend directory and is installed using the wakebackend RPM.

    wake.inf.ed.ac.uk gets its list of registered hosts & users from a configuration file on ionian. The configuration file is /etc/wol-lcfg.map and is built by the lcfg-wolconf component. This subscribes to the wol/all spanning map.

    Each participating machine - everything that's registered to be wakeable - publishes to the spanning map using the lcfg-wolclient component. This component has no code - it just publishes to the spanning map - so it works just as well on self-managed machines that have no XML LCFG profile. The configuration for the client end is in dice/options/wake-client.h. This is included by dice/options/office-at.h, dice/options/office-forum.h, dice/options/studentlabs.h, dice/os/selfmanaged.h and dice/os/diystub.h.

    You can exclude a machine using one of the above headers by, above that header's inclusion, defining NO_WAKE_ON_LAN.


    Informatics' Wake On LAN service was developed under development project 213, and re-used a couple of the LCFG components developed by Kenny MacDonald for the IS Wake On LAN facility.

    Topic revision: r15 - 04 Jul 2018 - 15:47:56 - ChrisCooke
    This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
    Ideas, requests, problems regarding TWiki? Send feedback
    This Wiki uses Cookies