Я работаю над Ubuntu 18.04, и мне нужно полностью отключить энергосбережение тележки Ethernet.
Мне не нужно изменять какие-либо другие настройки энергосбережения системы, кроме настройки карты Ethernet.
Кроме того, было бы здорово сохранить эту новую настройку даже после любой перезагрузки.
После некоторых исследований я нашел это:
What: /sys/devices/.../power/control
Date: January 2009
Contact: Rafael J. Wysocki <rjw@rjwysocki.net>
Description:
The /sys/devices/.../power/control attribute allows the user
space to control the run-time power management of the device.
All devices have one of the following two values for the
power/control file:
+ "auto\n" to allow the device to be power managed at run time;
+ "on\n" to prevent the device from being power managed;
The default for all devices is "auto", which means that they may
be subject to automatic power management, depending on their
drivers. Changing this attribute to "on" prevents the driver
from power managing the device at run time. Doing that while
the device is suspended causes it to be woken up.
Исходная документация из: Документация ядра
Итак, окончательное решение, которое я нашел, следующее:
sudo echo "on" > /sys/class/net/"$(ls /sys/class/net/ | grep -E '^e')"/power/control
Блок ]"$(ls /sys/class/net/ | grep -E '^e')"
используется для поиска первого устройства 'e'
(Ethernet Device Card).
ОБНОВЛЕНИЕ:
В конце концов мне удалось запускать этот скрипт каждые 5 секунд как root
, просто добавьте следующий скрипт как /etc/cron.d/ethernet-control
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""
* * * * * root for i in {1..12}; do (echo 'on' > /sys/class/net/"$(ls /sys/class/net/ | grep -E '^e')"/power/control) 2>/dev/null; sleep 5; done;