Wake On Lan после сбоя питания (или из состояния G3)
Wake-on-LAN (WOL; в переводе с англ. — «пробуждение по [сигналу из] локальной сети») — технология, позволяющая удалённо включить компьютер посредством отправки через локальную сеть специальной последовательности байтов. wiki
И все бы хорошо, если бы не одно но. После сбоя питания ваш компьютер не включится.
Согласитесь, это будет «приятной» неожиданностью, особенно если вы находитесь за пару тысяч километров от него.
Одно из решений написано здесь, но оно аппаратно-программное, а ведь можно обойтись без дополнительного железа.
Про WOL на Хабре можно найти уже две станицы. Поэтому в этой статье не будет рассматриваться включение wol на карточке.
Введение
Для начала разберемся, почему компьютер не включится. Для понимания этого стоит обратится к ACPI.
ACPI — англ. Advanced Configuration and Power Interface — усовершенствованный интерфейс управления конфигурацией и питанием). В ACPI описаны состояния — как глобальные, так и конкретных устройств в частности. (wiki)
Нас интересуют два глобальных состояния:
- G2 (S5) (soft-off) — мягкое (программное) выключение; система полностью остановлена, но под напряжением, готова включиться в любой момент. Системный контекст утерян.
- G3 (mechanical off) — механическое выключение системы; блок питания ATX отключен.
К сожалению, при подключении питания система сама не переходит из G3 в G2.
Поэтому для обеспечения возможности загрузки после сбоя питания нужно научится переводить компьютер из G3 в G2.
В большинстве [новых] биосов есть опция «After Power Failure». Принимать она может одно из трех значений:
- «Stay Off» – при потере питания в сети и его восстановлении для включения ПК необходимо нажать кнопку питания.
- «Turn On» – восстановление питания вызывает автоматическое включение системы.
- «Last State» – Восстановление системы в то состояние, в котором она находилась на момент пропадания питания. Если была выключены — остается выключена, иначе включается.
Выбрав «Turn On», останется вопрос лишь в том, как выключить компьютер, когда он включился после сбоя питания, а не от запроса по сети или штатного запуска кнопкой на корпусе. Делать эти проверки мы будем в initrd.
Initrd (сокращение от англ. Initial RAM Disk, диск в оперативной памяти для начальной инициализации) — временная файловая система, используемая ядром Linux при начальной загрузке. (wiki_ru) (wiki_en)
Расположение файлов для initrd в Ubuntu/Debian можно посмотреть в man на initramfs-tools (онлайн с сайта Ubuntu).
Для Centos все немного по другому — там dracut.
Для обеспечения проверки, как был включен компьютер, после посылки wol пакета мы будем пинговать его. Но так как пакет WOL у нас «магический», пусть пинги будут тоже «магическими». Пусть наши пинги будут размером в 48 байт, а не в 84.
Итого вся идея в виде блок-схемы:
Реализация
Модули
В /etc/initramfs-tools/modules добавим необходимые модули для работы iptables и сети.
Источник
Wake on lan не работает при выключенном компьютере
Сообщения: 8627
Благодарности: 2126
По-видимому на роутере не прописана arp-запись для этого компьютера, при этом роутер до просыпания компьютера имеет право забыть, к какому LAN-порту он подключён.
Не мешало бы назвать однако как модели материнок, так и модель роутера.
Например, у себя в ZyXEL Keenetic Giga II мне пришлось ввести в startup config записи для всех домашних компьютеров типа:
где 192.168.3.10 — IP-адрес одного из домашних компьютеров, а 31:45:с9:55:96:42 — MAC-адрес его сетевой карты.
И теперь роутер знает, что для обращения к этому спящему компьютеру надо сначала найти, к какому LAN-порту роутера подключена сетевая карта с этим MAC-адресом.
Это сообщение посчитали полезным следующие участники:
| Конфигурация компьютера |
| Материнская плата: ASUS ROG X570-E |
| HDD: 1TB M.2 PCI-E 4, 0.5TB M.2 PCI-E 3, 2TB x2 SSD, 0.5TB x2 SSD |
| Звук: Asus Xonar U7 |
| Монитор: Samsung 16:9, 3840×2160, 28″; Samsung 5:4, 1600×1280, 19″ |
| Прочее: Logitech: G815, G935, G502, F350, Attack 3 |
| Не мешало бы назвать однако как модели материнок, так и модель роутера. » |
И так, модель мат. платы первого пк — ASUS Prime B350M-A, модель мат. платы второго ПК — Gigabyte GA-970A-DS3P.
| Например, у себя в ZyXEL Keenetic Giga II мне пришлось ввести в startup config записи » |
| этот роутер не осилил скорость интернета от МГТС » |
Более 100 мегабит/с у вас теперь?
| Результаты тестирования показывают, что при работе с прямым подключением роутер обеспечивает практически полную скорость гигабитного канала — более 700 Мбит/с. |
В остальных случаях цифры заметно ниже — загружать данные из сети Интернет для PPPoE и PPTP можно на скорости около 200 Мбит/с, в режиме L2TP — около 120 Мбит/с
| Конфигурация компьютера |
| Материнская плата: ASUS ROG X570-E |
| HDD: 1TB M.2 PCI-E 4, 0.5TB M.2 PCI-E 3, 2TB x2 SSD, 0.5TB x2 SSD |
| Звук: Asus Xonar U7 |
| Монитор: Samsung 16:9, 3840×2160, 28″; Samsung 5:4, 1600×1280, 19″ |
| Прочее: Logitech: G815, G935, G502, F350, Attack 3 |
Изображения
| ssh.jpg | |
| (279.1 Kb, 3 просмотров) | |
| Более 100 мегабит/с у вас теперь? » |
Да, после переезда решил перейти с билайна, LT2P и 100 мбит на МГТС, GPON (оптика) и 500 мбит.
Сначала пробовал в RV6699 подключать свой N66 и делать DMZ на него, а с него уже пробрасывать дальше на другие ПК и мобильные устройства — худший сценарий, больше 205 мбит N66 не выдержал (процессор был нагружен на 99.9%). Потом попробовал его как repeater использовать — уже лучше, почти 400 мбит, но всё равно не 500. В итоге продал N66, и остался на RV6699. Но, RV6699 стоит у двери (у входа в квартиру), и мне пришлось тянуть витую пару от него до комнаты, вышло около 20 метров, т.к. сам роутер мне не передвинуть, у меня ничего нет для работы с оптикой.
Вопрос: если же первый ПК работает безупречно, будет ли второй работать так же хорошо как первый (в плане WOL) если я протяну для него ещё один кабель от роутера, исключив из схемы свитч?
| ввести в startup config записи для всех домашних компьютеров » |
Я ошибся, у меня таки есть SSH доступ к роутеру. Какая там OS точно не могу сказать, но что-то из unix. Как мне правильно всё прописать, учитывая что IP адрес этого ПК 192.168.1.11, а его mac — 1C:1B:0D:49:E8:58?
UPD2:
Добавил arp -i br0 -s 192.168.1.11 1C:1B:0D:49:E8:58, команда прошла успешно. Правда для этого воспользовался эксплоитом авторизации под root’ом. Говорят, должно работать, но до перезагрузки. Послал компьютер в сон, через несколько часов попробую разбудить.
Последний раз редактировалось iEnemY, 02-12-2018 в 21:17 . Причина: Добавил ARP запись
Источник
Не включается компьютер по Wake On Lan после переподключения питания.
Есть системынй блок, который после выключения всегда можно включить по Wake On Lan, но вот если происходит отключение электричества, то после возобновления подачи электричества я уже не могу включить этот системный блок по WOL. Хочу разобратся, почему я не могу включить компьютер по WOL после отключения электропитания и всегда могу включить его если подача электропитания на компьютер не прекращалась с момента его выключения? Надеюсь понятно описал ситуацию. Кто в этом разбирается, прошу помочь с решением этого вопроса.
В бивисе есть ручка, которая может называться по-разному (или вообще отсутствовать, тут уж как повезет), которая устанавливает как твоя пека должна себя вести после подачи питания: last state — вернуться в последнее состояние до отключения питания, power on — всегда включаться, power off — оставаться выключенным. Поищи, вдруг тебе повезло.
Что-то вроде «Restore on AC Power Loss» может быть. Но в твоей версии бивиса может называться иначе.
В бивисе есть ручка, которая может называться по-разному (или вообще отсутствовать, тут уж как повезет), которая устанавливает как твоя пека должна себя вести после подачи питания: last state — вернуться в последнее состояние до отключения питания, power on — всегда включаться, power off — оставаться выключенным. Поищи, вдруг тебе повезло.
Видел такую штуку у себя в биосе на русском как ты и описал, какой режим нужно поставить чтобы после переподключения электропитания к системному блоку я мог включить его по WOL?
Попробуй выставить в Power On. Ну и посмотри на другие ручки в управлении питанием в биосе же, может быть что-нибудь натолкнет на верную мысль.
Попробуй выставить в Power On. Ну и посмотри на другие ручки в управлении питанием в биосе же, может быть что-нибудь натолкнет на верную мысль.
У меня на русском есть режим «всегда включать» я так понимаю ты его называешь Power On, так вот этот режим просто включает компьютер когда на него начинает подаатся электропитание, а это совсем не WOL. У меня есть еще режим «Восстанавливать к предыдущему состоянию» но в этом режиме компьютер по WOL не включается.
Странно, а на варианте «выключено» тоже не работает после перебоя? Видимо перебой почему-то выключает подачу питания на сетевую карту, если так, то остаётся только автоматически включать в случае перебоя и настраивать выключение в отсутствие активности.
Сильно не рекомендую биос переключать на любой язык, отличный от английского. Там невообразимые глюки
Убедись, что в управлении питанием включена поддержка ACPI. Возможно там есть ручки которые запрещают ему использовать ACPI и soft power off state? В таком случае машина полностью обесточена и отвечать на волшебный пакет некому.
А зачем тебе вообще выключать комп? Много электричества не нагорит, а так всегда под рукой
Думаю в биосе вся завязка.
Убедись, что в управлении питанием включена поддержка ACPI. Возможно там есть ручки которые запрещают ему использовать ACPI и soft power off state? В таком случае машина полностью обесточена и отвечать на волшебный пакет некому.
Не нашел у себя в биосе никаких ACPI.
Wol не работает после потери питания, насколько я знаю. По крайней мере, в десктопных матерях.
Wol не работает после потери питания, насколько я знаю. По крайней мере, в десктопных матерях.
Я не исключал что кто то напишет это. Скажи, насчет десктопных материнок это инфа 100% ?
Если ты прав то у тебя не должно быть затруднений с приведением хотябы одного контрпримера.
если система выставляет флаг g при выключении, то логично, что при потере питания она его не выставит и материнка не сможет проснуться. тогда надо создать сервис, который будет его выставлять при загрузке
проверь у себя, возможно дело в этом
у меня нет таких данных, но все, что у меня были (три), работали именно так.
перед выключением, для активации wol, надо было запускать какую-то утилиту, потом poweroff. если после этого снимаешь питание, wol более не отрабатывает.
проверь у себя, возможно дело в этом $ sudo ethtool eth0| grep Wake-on
Проверил, у меня все так же.
Такая-же фигня. Материнка- асус. Пару лет назад пытался разобраться с этим, но ничего не вышло. Если вдруг чего путного нароешь, отпишись пожалуйста!
Источник