이더넷 카드에서 EEE(Energy Efficient Ethernet)를 영구적으로 비활성화하는 방법은 무엇입니까?

이더넷 카드에서 EEE(Energy Efficient Ethernet)를 영구적으로 비활성화하는 방법은 무엇입니까?

GRUB 구성에 사용할 수 있는 커널 매개변수를 찾고 있습니다.EEE 비활성화(에너지 효율적인 이더넷,위키피디아) 내 새 노트북의 LAN(유선 이더넷) 카드에 영구적으로 저장되었습니다.

기본 정보:

운영 체제:리눅스 민트 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.

관련 정보