Как я могу включить Wake-On-Lan навсегда?

13

Я хочу включить Wake-On-Lan для моих сетевых карт, навсегда. Руководство сообщества рекомендует добавить соответствующую команду в /etc/network/interfaces. В прошлом, редактируя conf-файлы Ubuntu, весьма вероятно, что файл сетевого интерфейса записывается заново при каждой загрузке, если не при каждом обновлении. Каков наилучший способ обеспечить включение wake-on-lan при каждой загрузке?

djeikyb
источник

Ответы:

12

Загрузочный скрипт, запускаемый после настройки сетевых карт, должен помочь. Ubuntu использует выскочку. После прочтения о новых работах, ethtool, написании сценария с выскочкой и поиске в сети для лучшего решения, я придумал это из jevinskie (вы захотите поместить это в файл /etc/init):

start on started network

script
    for interface in $(cut -d: -f1 /proc/net/dev | tail -n +3); do
        logger -t 'wakeonlan init script' enabling wake on lan for $interface
        ethtool -s $interface wol g
    done
end script
  • Запускается при инициализации nics
  • Получает никнеймы из / proc / net / dev
  • Записывает действия в системный журнал
  • Акты на всех найденных ников
  • Требуется ethtool, поэтому сначала убедитесь, что он установлен:

    sudo apt-get install ethtool
    

Если вы хотите придать силе пробуждения только один ник, что-то вроде этого более уместно:

start on started network

script
    interface=eth0
    logger -t 'wakeonlan init script' enabling wake on lan for $interface
    ethtool -s $interface wol g
end script
djeikyb
источник
2
Я всегда думал, что wake on lan - это функция BIOS.
con-f-use
@ con-f-use Требуется сотрудничество между BIOS и NIC. Оба должны поддерживать WOL. Кроме того, по крайней мере, мой ник имеет плохую привычку отключать wol после загрузки. Вики сообщества Ubuntu подразумевает, что это относится ко многим компьютерам.
djeikyb
@ con-f-use Этот поток superuser.sx о том, как работает питание и перезагрузка, также интересен, так как он относится к WOL.
djeikyb
Это нужно изменить для systemd?
Натан Осман
@NathanOsman, пожалуйста, добавьте системный ответ! это решение по-прежнему актуально для более старых, но все еще поддерживается выпусков LTS
djeikyb
3

Скажем wakeonlanconfig, создайте новый файл и поместите в него следующие строки:

#!/bin/bash
ethtool -s eth0 wol g
exit

Далее установите права доступа к файлу, сделав его исполняемым:

chmod a+x wakeonlanconfig

И, наконец, запустите скрипт при запуске:

update-rc.d -f wakeonlanconfig defaults

Для более подробной информации, пожалуйста, посетите: http://lukasz-lademann.blogspot.com/2013/01/how-set-up-wol-wake-on-lan-on-thin.html

Лукаш
источник
1

В Ubuntu 16.04 дополнительно установлено WOL_DISABLE=Nв , /etc/default/tlpчтобы избежать получений WOL отключенных от управления питанием TLP.

http://linrunner.de/en/tlp/docs/tlp-configuration.html

Добавить NETDOWN=noв /etc/default/haltдля предотвращения отключения питания сетевой карты во время остановки

nkef
источник