イーサネットカードでEnergy Efficient Ethernet(EEE)を永久に無効にする方法は?

イーサネットカードでEnergy Efficient Ethernet(EEE)を永久に無効にする方法は?

GRUB構成に使用できるカーネルパラメーターを探しています。EEEを無効にする(エネルギー効率の良いイーサネット、ウィキペディア)私の新しいラップトップのLAN(有線イーサネット)カードに永久に保存されました。

基本情報:

オペレーティングシステム:Linux Mint 21.1「ベラ」シナモン

# 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ただし、クローン操作に加えて、目標を達成するための別の方法があります。

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

(initramfsの起動段階でカーネルモジュールがロードされた場合は、次回の起動時に適用されるようにr8169実行する必要があるかもしれません。)sudo update-initramfs -u


あるいは、ethtoolコマンドを実行するために独自のsystemdサービスユニットを作成することもできます/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

重要なヒント:

オペレーティングシステムの設定によっては、Vlastimilの場合と同じようethtoolに他の場所に配置することもできます。/usr/sbin/ethtoolわからない場合、which ethtoolまたはを実行できますcommand -v ethtool。プログラムも同じですlogger

おすすめ記事