我正在寻找一个可以在 GRUB 配置中使用的内核参数禁用EEE(节能以太网,维基百科)永久保存在我的新笔记本电脑的 LAN(有线以太网)卡上:
基本信息:
# ethtool -i enp59s0
driver: r8169
version: 5.15.0-56-generic
firmware-version: rtl8168h-2_0.0.2 02/26/15
expansion-rom-version:
bus-info: 0000:3b:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no
什么有效(在重新启动、睡眠和唤醒时不持久):
# ethtool --set-eee enp59s0 eee off
但是,我宁愿不必为此设置 @reboot CRON。
# sysctl -w igb.EEE=0
# sysctl -w e1000e.EEE=0
# sysctl -w r8169.EEE=0
所有这些都以错误消息结束:
sysctl: cannot stat /proc/sys/[PARAM]/EEE: No such file or directory
非常感谢您的帮助。
答案1
不存在这样的内核参数。
@reboot
然而,除了cron 作业之外,还有其他方法可以实现您的目标。
如果您使用 NetworkManager,您可以创建一个预启动调度程序脚本(例如/etc/NetworkManager/dispatcher.d/pre-up.d/disable-eee
),以便在激活网络接口时进行配置更改:
#!/bin/sh
#
# Disable EEE on enp59s0
if [ "$1" = "enp59s0" ]; then
/sbin/ethtool --set-eee $1 eee off \
|| /bin/logger "Error $? trying to disable EEE on $1"
fi
exit 0
请务必将脚本标记为可执行。
或者,您可以/etc/modprobe.d/disable-eee
在加载内核模块时创建更改设置:
install r8169 /sbin/modprobe -i r8169 && sleep 1 && /sbin/ethtool --set-eee enp59s0 eee off
(如果r8169
内核模块是在 initramfs 启动阶段加载的,则可能必须运行sudo update-initramfs -u
才能在下次启动时生效。)
或者您可以创建自己的systemd
服务单元来运行 ethtool 命令(例如/etc/systemd/system/disable-eee.service
):
[Unit]
Before=network-pre.target
Wants=network-pre.target
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/sbin/ethtool --set-eee enp59s0 eee off
[Install]
WantedBy=multi-user.target
重要的提示:
根据您的操作系统配置,ethtool
可能会放置在其他地方,例如/usr/sbin/ethtool
Vlastimil 的情况。如果您不确定,您可以运行which ethtool
或command -v ethtool
。程序也是如此logger
。