alonbl 14/05/27 16:41:38 Added: laptop-mode-tools-1.64-ethernet-power.patch Log: Fix newer kernel compatibility, bug#511110, thanks to Stefan Huber (Portage version: 2.2.8-r1/cvs/Linux x86_64, signed Manifest commit with key BF20DC51)
Revision Changes Path 1.1 app-laptop/laptop-mode-tools/files/laptop-mode-tools-1.64-ethernet-power.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-laptop/laptop-mode-tools/files/laptop-mode-tools-1.64-ethernet-power.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-laptop/laptop-mode-tools/files/laptop-mode-tools-1.64-ethernet-power.patch?rev=1.1&content-type=text/plain Index: laptop-mode-tools-1.64-ethernet-power.patch =================================================================== >From c55b44f656c88aa1ef7307664f7040407d23e0de Mon Sep 17 00:00:00 2001 From: Alon Bar-Lev <alon.bar...@gmail.com> Date: Tue, 27 May 2014 19:35:11 +0300 Subject: [PATCH] ethernet: replace sysfs/enabled by 'ip link down' backport of 8fff5eb2bfdde0 --- usr/share/laptop-mode-tools/modules/ethernet | 59 +++++++++++----------------- 1 file changed, 22 insertions(+), 37 deletions(-) diff --git a/usr/share/laptop-mode-tools/modules/ethernet b/usr/share/laptop-mode-tools/modules/ethernet index 6fd06e2..0c922e2 100755 --- a/usr/share/laptop-mode-tools/modules/ethernet +++ b/usr/share/laptop-mode-tools/modules/ethernet @@ -24,6 +24,13 @@ if [ x$CONTROL_ETHERNET = x1 ] || [ x$ENABLE_AUTO_MODULES = x1 -a x$CONTROL_ETHE MIITOOL=/bin/false fi + if [ -x /bin/ip ]; then + IPTOOL=/bin/ip + else + log "VERBOSE" "ip is not installed" + IPTOOL=/bin/false + fi + if [ $ON_AC -eq 1 ]; then if [ "$ACTIVATE" -eq 1 ]; then @@ -52,43 +59,7 @@ if [ x$CONTROL_ETHERNET = x1 ] || [ x$ENABLE_AUTO_MODULES = x1 -a x$CONTROL_ETHE fi for DEVICE in $ETHERNET_DEVICES ; do - DISABLED=0 - path=`readlink -f /sys/class/net/$DEVICE` - dev_path="" - log "VERBOSE" "ethernet: $path" - if ! [ -z $path ]; then - if [ -d $path/device ]; then - dev_path=`readlink -f $path/device` - log "VERBOSE" "ethernet: $dev_path" - fi - fi - - if ! [ -z $dev_path ] && [ -f $dev_path/enable ]; then - if [ x$DISABLE_ETHERNET = x1 ]; then - if [ -f $dev_path/enable ]; then - echo 0 > $dev_path/enable - log "VERBOSE" "ethernet: Disabling ethernet device $DEVICE" - DISABLED=1 - fi - elif [ x$DISABLE_ETHERNET = x0 ]; then - if [ -f $dev_path/enable ]; then - echo 1 > $dev_path/enable - log "VERBOSE" "ethernet: Re-enabling ethernet device $DEVICE" - DISABLED=0 - fi - elif [ x$DISABLE_ETHERNET = x2 ]; then - DISABLED=0 # Be safe. :-) - else - DISABLED=0 # Same here. Be safe. :-) - # For all other cases also, just disable it. - fi - else - log "VERBOSE" "$DEVICE does not seem to be supporting enable/disable" - fi - - if [ x$DISABLED = x1 ]; then - continue - fi + log "VERBOSE" "ethernet: $DEVICE" # Wakeup-on-LAN handling if [ x$DISABLE_WAKEUP_ON_LAN = x1 ] ; then @@ -152,6 +123,20 @@ if [ x$CONTROL_ETHERNET = x1 ] || [ x$ENABLE_AUTO_MODULES = x1 -a x$CONTROL_ETHE log "VERBOSE" "Could not restore speed for $DEVICE" fi fi + + # Shut down interface + if [ x$DISABLE_ETHERNET = x1 ]; then + if $IPTOOL link show $DEVICE | grep -q NO-CARRIER; then + log "VERBOSE" "ethernet: Disabling ethernet device $DEVICE" + $IPTOOL link set dev $DEVICE down + else + log "VERBOSE" "ethernet: Not disabling ethernet device $DEVICE with active carrier." + fi + elif [ x$DISABLE_ETHERNET = x0 ]; then + $IPTOOL link set dev $DEVICE up + log "VERBOSE" "ethernet: Re-enabling ethernet device $DEVICE" + fi + done else log "VERBOSE" "Ethernet module is disabled." -- 1.8.5.5