Wake On LAN

Немного заметок об особенностях работы Wake On LAN (WOL) в операционной системе Debian.

Содержание

  1. Wake On LAN
    1. Аппаратная часть
    2. Прошивка / BIOS
    3. Софт
    4. Conclusion
    5. External Links

Аппаратная часть

Ваш первый шаг к загрузке компьютера через сеть – убедиться, что ваша Ethernet-карта и материнская плата поддерживают какой-либо тип функции Wake On LAN. В особенности карты 3Com’s маркировки -NM (non managed) не поддерживают WOL, тогда как карты маркировки -M (managed) поддерживают.

Есть две основные системы. Старый способ заключается в использовании 3-пинового коннектора Wake On LAN между вашей Ethernet-картой и материнской платой. Оба гнезда(англ.версия – “headers”) обычно именуются ‘wol’. Более новая система использует Wake On LAN pin на PCI-шине, что устраняет необходимость в кабеле. Некоторые материнские платы поддерживают оба варианта и только предоставляют гнездо для обратной совместимости с Ethernet-картами, не поддерживающими PCI pin.

Более новые материнские платы с встроенными сетевыми картами поддерживают Wake On LAN без необходимости каких-либо выводов / кабелей.

Прошивка / BIOS

В хорошем BIOS в управлении питанием вы найдёте ясную, интуитивно понятную опцию “Wake On LAN”. К сожалению, моя система не была столь ясной и имела несколько возможных вариантов. один казался работающим всегда, остальные – временами. Я строил по информации заимствованной у Mark Ivey, т.к. У меня тоже есть Shuttle XPC SK41G и я успешно использую опцию “PowerOn by PCI Card”.1

Софт

Настройка интерфейса

stretch

Добавьте этот файл:

$ cat /etc/network/interfaces.d/eth0
auto eth0
iface eth0 inet dhcp
        ethernet-wol g

перезагрузитесь. Проверьте работу:

$ sudo ethtool eth0

Settings for eth0:
        Supported ports: [ MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 1
        Transceiver: external
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: g
        Link detected: yes

Директива Wake-on: g означает, что всё работает.

Squeeze

Для Squeeze ethtool параметры могут быть установлены непосредственно из /etc/network/interfaces. Результат выше может быть достигнут так:

iface eth0 inet dhcp
        ethernet-wol g

Скрипт /etc/network/if-up.d/ethtool будет заботиться о вызове ethtool по ifup. Читайте /usr/share/doc/ethtool/README.Debian для более полной информации.

Дальше можете выключить систему и приготовить остальные системы, чтобы разбудить её.

После squeeze

После аппаратной активации Wake On LAN также необходимо активировать его в программном обеспечении. Это делается с использованием программы ethtool, которая говорит интерфейсу отвечать на волшебный пакет (the magic packet). Замените eth0 на имя вашего сетевого интерфейса:

$ su
# aptitude install ethtool
# ethtool -s eth0 wol g

Это можно автоматизировать с помощью записи в /etc/network/interfaces:

iface eth0 inet dhcp
        post-up /sbin/ethtool -s $IFACE wol g
        post-down /sbin/ethtool -s $IFACE wol g

Это запускает ethtool после каждого подъёма интерфейса eth0, а также после его отключения, таким образом WOL должен работать даже в случае, когда сеть отключена некорректно.

Отправка WOL сообщений

Я установил пакет etherwake в контролирующей системе для отправки “Magic Packet” к моему компьютеру для пробуждения. Программа должна быть запущена от имени root для отправки пакета (Я использую sudo для её запуска).

# aptitude install etherwake
# etherwake <mac address>

Также доступен wakeonlan – программа, использующая UDP-пакеты, а TCP, и не требующая прав root для запуска. Она также чуть более гибкая в настройке.

# aptitude install wakeonlan && exit
$ wakeonlan <mac address>

WOL чувствительность

Я нашёл, что не хочу каких-либо Wake On LAN настроек, за исключением Wake on “Magic Packet” (g). Я хочу только включать мою машину тогда, когда я ей это говорю, ни одноадресных (u), широковещательных (b) или многоадресных (m) сообщений.