我正在寻找一个内核参数,可以在GRUB配置中永久地在我的新笔记本电脑的局域网(有线以太网)卡上使用disable EEE (节能以太网,维基百科):
基本信息:
# 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非常感谢你的帮助。
发布于 2022-12-24 10:25:39
不存在这样的内核参数。
但是,除了@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.targetImportant注记:
根据您的操作系统配置,在Vlastimil的情况下,ethtool可能被放置在其他地方,比如/usr/sbin/ethtool。如果您不确定,可以运行which ethtool或command -v ethtool。logger程序也是如此。
https://unix.stackexchange.com/questions/729508
复制相似问题