LINUX.ORG.RU
ФорумAdmin

Wake on LAN на Ubuntu 18.04

 


1

1

Ну здравствуй ЛОР! Великий и ужасный! Подари мне пож-ста немножечко мозгов.

Я хочу запускать домашний комп удаленно с телефона или с работы. Нагуглил рецепт аж от 2014-го года.

Создал скрипт

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

Права установил. В автозапуск добавил. Даже в /etc/init.d добавил.

Но срабатывает этот скрипт один раз, если выполнить его в терминале.

То есть после его выполнения, я выключаю компьютер и включаю его с телефона. Больше он включаться не будет. Снова надо запускать скрипт руками из-под рута.

Самое страшное, что ethtool под рутом и подо мной показывает разные значения Supports Wake-on.

dronsovest@apricot:~$ ethtool enp2s0
Settings for enp2s0:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  1000baseT/Full 
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: Unknown
Cannot get wake-on-lan settings: Operation not permitted
	Current message level: 0x00000000 (0)
			       
	Link detected: yes
dronsovest@apricot:~$ sudo -i
root@apricot:~# ethtool enp2s0
Settings for enp2s0:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  1000baseT/Full 
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: Unknown
	Supports Wake-on: pg
	Wake-on: g
	Current message level: 0x00000000 (0)
			       
	Link detected: yes

Подскажите пож-ста, чем это лечится?

Operation not permitted

Что тут не понятно? У юзера нет прав, у рута есть.

Создать юнит на выключение типа такого (это просто пример):

[Unit]
 Before=shutdown.target

[Service]
 Type=oneshot
 ExecStart=/path/to/script/script.sh
 RemainAfterExit=yes

[Install]
WantedBy=shutdown.target
mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)
Ответ на: комментарий от mandala

Ага. А вот это колдунство мне еще не знакомо.

Подскажите пож-ста чего почитать по этому вопросу и как ставить вопрос перед Гугелом?

И на что именно у пользователя нет прав? На запуск службы? Или на доступ к параметру wake-on?

dronsovest
() автор топика
Ответ на: комментарий от mandala

там просили мозгов, а не разжевать

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

anonymous
()
Ответ на: комментарий от dronsovest

Почитать про что? Про systemd? Или про права доступа?

Раз ты написал скрипт, то пользовался таким руководством

http://pyatilistnik.org/kak-nastroit-wake-on-lan-v-linux/

Но там идет включение его в SysVinit. А сейчас используется systemd – я и предложил тебе создать простейший unit, мой пример должен быть рабочим.

https://www.shellhacks.com/ru/systemd-service-file-example/

Тут описано создание сервиса, в юнит-файл ты просто помещаешь содержимое которое я предложил в первом сообщении и вместо /patch/to/script/script.sh указываешь путь к своему скрипту.

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)
nmcli connection modify enp2s0 802-3-ethernet.wake-on-lan magic

/thread

r0ck3r ★★★★★
()

домашний комп

А в bios случайно нет соответствующей опции?

Deleted
()
Ответ на: комментарий от mandala

Огромное спасибо. Почти получилось.

Создал юнит. Ну как создал? Скопировал твой, поменял путь.

Запихнул его в автозагрузку.

Еще и вчитался как он работает.

Почти сразу выявились 2 проблемы. 1. Компьютер можно запустить, только если он был корректно выключен. 2. Служба стартует не всегда. С этим буду разбираться.

dronsovest
() автор топика
Ответ на: комментарий от dronsovest

Не надо с этим разбираться. Это в корне неверное решение. Если для сети используется NetworkManager, то выше уже дали решение через nmcli. Если же сеть настроена через systemd-networkd, то там тоже штатными средствами настраивается через .link файл.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от dronsovest

Читай логи в journald, вот подсказка https://losst.ru/shpargalka-po-journalctl-v-linux (ну и сам нагуглишь)

  1. Компьютер можно запустить, только если он был корректно выключен.

Посмотри мануал по своей плате, может там форсировать можно, как тут уже подсказывали. Ну или выкинуть unit и написать timer с запуском даже хоть раз в минуту (аналог cron в systemd, хотя для простоты можно и в обычный cron скрипт засунуть).

mandala ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Не надо с этим разбираться

Да, тут это костыль, но зато теперь человек познакомился с юнитами. )

mandala ★★★★★
()
Ответ на: комментарий от mandala

Вот честно, Вы что курите ? Какой в попу nm, systemd... уже два человека написали правильное направление, с которого надо начинать, посмотреть в сторону bios... вы же все продолжаете обсуждать через попу мы простых путей не ищем.

anc ★★★★★
()
Ответ на: комментарий от anc

NM я не предлагал трогать. Сустемд – по аналогии с инструкцией из гугла со скриптом, именно такую использовал ТС. Можно не инитом скрипт дергать, а кроном.

уже два человека написали правильное направление

Я исходил из стартового поста, а не из своих соображений как там на самом деле правильно.

mandala ★★★★★
()
Ответ на: комментарий от mandala

NM я не предлагал трогать.

Простите, пропустил слово коллеги. Вот так должно было быть: «Вот честно, коллеги Вы что курите ?» Обращаясь ко всем отписавшимся по «nm, systemd &etc»

Я исходил из стартового поста, а не из своих соображений как там на самом деле правильно.

Если человек спросит «как мне выстрелить в ногу?», вы ему поможете с объяснениям как это удобнее сделать. Ну что же, вариант, не спорю, каждый имеет право на свое мнение.

anc ★★★★★
()
Ответ на: комментарий от anc

уже два человека написали правильное направление

Через nmcli

посмотреть в сторону bios

Как тебе поможет биос, если у тебя «Wake-on: d»? Биос _разрешает _использовать wakeonlan, но его таки надо включить

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Может быть какой-то уникальный биос такое и умеет, но ни один из встреченых мной тысяч биосов такое не умел.

Да что вы говорите. Вот просто интересно, а эти «тысячи» как считать ?
Давайте просто порассуждаем. wol имеет отношение к старту «машинки»? Вроде да. Такое же как и старт по нажатию кнопки на клаве. Заметьте просто к старту машины! Какая ОС на ней не играет роли. Не к варианту 'мы загрузились в «OS name» и что-то поменяли и тогда после останови машинки мы сможем еще раз ее стартовать'
Следую же вашим рассуждениям, то и машинки под дос,нетварью,etc не стартовали бы.
Ну и просто шах и мат. Встроенная сетевка, специально включил, так использую дискретные.

	Supports Wake-on: pumbg
	Wake-on: g

Мать asus b150-plus чяднт?

anc ★★★★★
()
Ответ на: комментарий от gremlin_the_red

ЗЫ

тысяч биосов

Это минимум две тысячи разных вариантов. Если по одному в день, получаеться больше пяти лет опытов. Но вот я не верю, в то что вы каждый день сталкивались с новым биос и внимательно рассматривали все опции. Если же не каждый день а например через три дня, то тем более опцию wol не могли пропустить.

anc ★★★★★
()
Ответ на: комментарий от anc

Давайте просто порассуждаем

Давайте. Настройка в биосе пусть будет включена. В линуксе делаем ethtool -s eth0 wol d, выключаем, посылаем magic-пакет. Что будет? Спойлер: ничего. Но ведь опция в биосе включена? А сетевушке это пофигу, потому что у неё флаг в eeprom'е и в состоянии d она при получения magic-пакета PME не генерирует. По умолчанию все мне встреченые сетевушки из коробки именно в режиме d (подозреваю, что по соображениям безопасности). В типичном биосе опция отвечает только за то, чтобы сохранять питание на сетевушке, но для посылки PME при получения пакета требуется и включить флаг на сетевушке. Может, конечно, какие-то биосы и при включении опции и сами настраивают сетевушку, но мне такие не известны. Вот и в твоём случае — а это точно поведние из коробки? Есть же вариант, когда флаг взели до попадания материнки к тебе.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Обращаю внимание, что самой опции под названием «сделать хорошо» может и не быть. Хотя в зависимости от бивисов, даже такая существует. Чаще по написанию это косвенные опции, типа поднятие от pci девайсов и т.п. Я не говорю что это есть совсем у всех. Но заявлять что в «тысяч биосов» по меньшей мере голословно.

anc ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Вот и в твоём случае — а это точно поведние из коробки?

Последний бивис от вендора заливал где-то 1-2 месяца назад, наверное можно назвать это «из каробки».

anc ★★★★★
()
14 января 2020 г.
Ответ на: комментарий от anc

Настройка WOL на HP 6300

Добрый день!

Можете подсказать, что я делаю не так?

HP Elite 6300, встроенная сетевуха не работает, поэтому подключен через внешнюю. В BIOS включено пробуждение «от внешнего сервера», в самой карте вот так:

Settings for enp2s0: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supported pause frame use: Symmetric Receive-only Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Advertised pause frame use: Symmetric Receive-only Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Link partner advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Link partner advertised pause frame use: Symmetric Link partner advertised auto-negotiation: Yes Link partner advertised FEC modes: Not reported Speed: 100Mb/s Duplex: Full Port: MII PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbg Wake-on: g Current message level: 0x00000033 (51) drv probe ifdown ifup Link detected: yes

Выключаю комп, пытаюсь его включить через меню Wake On LAN (роутер ASUS RT-N14U) - ноль эмоций.

dimjeb
()
23 июля 2020 г.

sudo ethtool enp2s0

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.