Как отключить энергосбережение карты Ethernet?

Я работаю над Ubuntu 18.04, и мне нужно полностью отключить энергосбережение тележки Ethernet.

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

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

0
задан 11 April 2020 в 16:24

1 ответ

После некоторых исследований я нашел это:

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;
1
ответ дан 14 April 2020 в 07:16

Другие вопросы по тегам:

Похожие вопросы: