LINUX.ORG.RU
ФорумAdmin

Работа сети L3 в спящем режиме

 , , , ,


0

1

Здравствуйте, столкнулся с проблемой при переходе с Windows на Arch Linux — не могу заставить сетевую карту работать на L3 при засыпании системы при всех включенных фишках Wake-On-Lan.

В Windows при засыпании сетевая карта видна в сети и ее можно пинговать. В Linux же я не могу этого добиться.

Моя задача состоит в том, чтобы будить компьютер через VPN соединение на роутере. Поскольку роутер создает TUN интерфейс, L2 недоступен, однако при использовании Windows и отправке Magic пакета из этого VPN соединения — система просыпается.

На L2 Wake-On-Lan полностью работает.

  • Сетевая карта на чипе R8125 встроена в материнскую плату
  • Драйвер установлен из AUR
  • За сеть отвечает NetworkManager
  • Графическое окружение KDE6

В Windows при засыпании сетевая карта видна в сети и ее можно пинговать.

видимо у всех разное понятие «сон»

Ответ на L3 это не сон.

WOL может быть несколько вариантов. man ethtool /wol

Самый безопасный - magic packet, но это L2-only

Некоторые карты позволяют будить комп при любом пакете. Задав статически arp для компа на роутере можно разбудить такой любым пакетом.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)
Ответ на: комментарий от digit4lsh4d0w

Никогда не пользовался suspend/hibernate т.к. это источник проблем. Комп либо работает, либо выключен. Из выключеного состояния его можно включить через WOL.

Чтобы на L3 послать пакет хосту нужно в arp иметь мас-адрес хоста. Тогда при настройке «wol u» обычный ping будет будить комп.

Ты не уточнил что за роутер. Для роутеров на базе openwrt есть несколько решений.

Если на роутере есть возможность сделать статический arp, то задача решается при помощи port-mapping.

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

Никогда не пользовался suspend/hibernate т.к. это источник проблем.

Ну если с hibernate действительно могут возникнуть проблемы со свопом или вещи типа «обновилось ядро и оно вдруг перестало работать», то какие могут быть проблемы с suspend?

annulen ★★★★★
()

В Windows ты используешь modern sleep (когда компьютер продолжает работать в энергоэффективном режиме), а в Linux — suspend to ram (когда компьютер выключается кроме питания оперативной памяти). Настрой в линуксе s2idle и будет то же самое.

vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 1)
Ответ на: комментарий от annulen

Вот как раз с hibernate проблем обычно минимум, потому что после дампа мозга в своп железо просто выключается. И потом просто включается, но вместо ядро->инит запускает ядро->читаем дамп мозгов. Точка отказа тут только то место куда дамп пишется.

А с suspend куча проблем возможна. Начиная с отмены в современном железе s2idle, продолжая кривыми биосами и таблицами ACPI и завершая драйвероблобом какой нибудь Nvidia и\или другим «странным» железом. Симптомы — засыпает, но не встаёт, засыпает, но встаёт частично и крашится, или «чёрный экран», засыпает «частично» (вроде заснул, но батарейку жрёт и греется), просыпается внезапно по собственной воле в рюкзаке и не засыпает пока батарею не съест, и множество комбинаций вышеописанного.

Если у тебя сразу, «из коробки», заработал suspend — это счастье, невероятное везение, но не думай что так будет всегда. Наверняка однажды к тебе приедет ядро которое всё сломает. Обычно suspend «полуработает» и требует вникания и напильника, но и после настройки он как «хер хрустальный», однажды обязательно разобьётся и руки порежет.

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

В моей админке изначально этого пакета не было.

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

Подойдет лишь как последнее решение.

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

Начал копать в эту сторону но у меня на Arch Linux возникает как-то проблема — комп как-будто начинает засыпать и сразу включается, вот только кроме монитора.

Не знаю, полностью ли он включается — пока выясняю.

Из поддерживаемых режимов доступны только: s2idle и deep, хотя материнка новая.

Использую ядро Zen, если это важно.

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

IMHO это единственно разумный и безопасный способ. Тебе нужно включить что то внутри периметра, ты сначала входишь на роутер, и уже с него осознанно запускаешь. Всё остальное каким то «умным домом» попахивает.

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

Из поддерживаемых режимов доступны только: s2idle и deep, хотя материнка новая.

Вот «материнка новая» это как раз обычно и есть проблема, после того как s2ram с подачи интела стал богопротивен и его начали ломать и удалять из бивисов, даже там где он до этого был и прекрасно работал.

Новая концепция видите ли заключается в том что в режиме энергосбережения каждый девайс в компе нынче засыпает и просыпается независимо, по факту наличия или отсутствия нагрузки\потребности. То есть мы «тут спим, а вот тут не спим», и всё это одновременно, как дельфин, мать его. Ессно это всё работает только при наличии «прямого» бивиса, «прямых» таблиц, «прямых» дров, «прямого» железа и умеющей этим всем управлять ОС. Ну и очевидно что в целом «глубина сна» в таком режиме меньше, а расход батареи выше.

В теории то всё красиво, как бы нет выделенного «режима сна», спит то что не работает, и если юзер какое то время комп не трогает и сам комп ничего не считает\не рендерит (юзерской нагрузки нет, только фоновая системная) — он всё глубже и глубже уходит в сон. Вот только нормально это всё не работает, ни в винде, ни в линукс. Обязательно найдётся какое нибудь говно которое будет мешать уснуть, или станет будить каждые десять секунд. В лучшем случае комп спит как «трепетная лань», постоянно внезапно просыпаясь и снова засыпая.

Я в итоге тупо забил на всё это, вообще, и пользуюсь только гибернацией. А всю прочую связанную со сном хрень отключаю.

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 1)
Ответ на: комментарий от Jameson

Вот самое забавно, что винда на этом же железе умеет уходить в такой «сон», что и пинговать можно, причем это по умолчанию — я не настраивал отдельно такое поведение, только WOL в BIOS и включение от PCIe устройств.

Не знаю, решает ли здесь что-нибудь тот факт, что Linux у меня запускается с внешнего носителя (NVMe диск по USB Type C в материнке)

digit4lsh4d0w
() автор топика