如何禁用以太网卡省电功能?

如何禁用以太网卡省电功能?

我正在使用 Ubuntu 18.04,我需要完全禁用以太网卡节能功能。

我不需要更改任何其他系统省电设置,只需更改以太网卡设置。

此外,最好在每次重启后也能保留这个新设置。

答案1

经过一些研究我发现了这一点:

What:       /sys/devices/.../power/control
Date:       January 2009
Contact:    Rafael J. Wysocki <[email protected]>
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'设备(以太网设备卡)。

更新: 最后,我设法每 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;

答案2

对于 Kubuntu 22.04.1 (KDE 5.24.7) [内核 5.15.0-60],我必须“定义一种特殊行为”以永不让计算机进入睡眠状态。

系统设置 > 电源管理 > 活动电源设置

定义特殊行为

[检查] 切勿关闭计算机或让其进入睡眠状态

此外,NetworkManager 无法完全恢复 LAN 连接如果它会自动检测电缆断开并重新连接。

因此(最终),我发现通过 CLI 关闭和打开 NIC 可以持续工作。

因此,在/etc/network/if-up.d,我创建了一个文件000-周期-enp2s0-向下-向上 内容如下:

#!/bin/bash
NIC_NAME="enp2s0"

if [[ "$IFACE" != "$NIC_NAME" ]] 
then
  exit 0
fi

/usr/sbin/ip link set $IFACE down
/usr/sbin/ip link set $IFACE up

然后,我使该文件可执行:

sudo chmod +x 000-cycle-enp2s0-down-up

因此,我现在拥有可靠的 SSH 和 HTTPS 连接。

注意:'enp2s0' 是我的网卡名称。您必须确定您的网卡名称。我使用了以下代码并识别了与网卡名称关联的 IP 地址。

ip a|grep "inet "

相关内容