Bug#618878: [pm-utils] power.d/wireless broken

2014-11-14 Thread Raphaƫl Droz
Please note that the script is still broken (in wheezy) for a very
related reason:

 /sys/class/net/*/device/enable
never exists, only does:
 /sys/class/net/*/device/enabled


See:
https://bugs.launchpad.net/ubuntu/+source/pm-utils/+bug/1299975
http://anonscm.debian.org/cgit/collab-maint/pm-utils.git/diff/?id=d33ba310


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#618878: [pm-utils] power.d/wireless broken

2011-03-19 Thread Florian Kriener
Package: pm-utils
Version: 1.4.1-7
Severity: normal
Tags: patch

--- Please enter the report below this line. ---
I noticed that pm-utils did not turn on wireless power management
when unplugging from ac on my laptop. I investigated a bit and
found out, that the power.d/wireless skript uses a heuristic
method for finding out if a network interface is a wireless
interface. The line in question is

# Skip if not a wireless card.
[ -d /sys/class/net/$1/wireless ] || return 1

Apparently, the directory /sys/class/net/$1/wireless has gone
away, or is not available on every platform at least. Therefor I
think it's best to use /sys/class/ieee80211 instead.

The patch below corrects the script accordingly. The new skript
works fine on my box but I cannot test it on different hardware
and it might need some adjustments in the final loop for other
network cards since I am not sure what it means, when one
ieee80211/* device has multiple ../device/net/* devices.


diff --git a/wireless b/wireless
index b4be69c..de70084 100755
--- a/wireless
+++ b/wireless
@@ -16,12 +16,10 @@ get_wireless_params() {
 unset iwpriv iwconfig iwlevel
 
 # Don't do anything if we cannot find a driver for this iface.
-[ -L /sys/class/net/$1/device/driver ] || return 1
-# Skip if not a wireless card.
-[ -d /sys/class/net/$1/wireless ] || return 1
+[ -L /sys/class/ieee80211/$1/device/driver ] || return 1
 # Also don't do anything if the device is disabled
-[ $(cat /sys/class/net/$1/device/enable) = 1 ] || return 1
-driver=$(readlink /sys/class/net/$1/device/driver)
+[ $(cat /sys/class/ieee80211/$1/device/enable) = 1 ] || return 1
+driver=$(readlink /sys/class/ieee80211/$1/device/driver)
 driver=${driver##*/}
 case $driver in
 ipw2100) iwpriv_ac=set_power 0
@@ -31,7 +29,7 @@ get_wireless_params() {
 ipw3945)
 iwpriv_ac=set_power 6
 iwpriv_batt=set_power 7;;
-iwl*) if [ -f /sys/class/net/$1/device/power_level ]; then
+iwl*) if [ -f /sys/class/ieee80211/$1/device/power_level ]; then
  iwlevel_ac=0
  iwlevel_batt=3
   else
@@ -53,19 +51,21 @@ get_wireless_params() {
 }
 
 wireless_powersave() {
-for dev in /sys/class/net/*; do
-get_wireless_params ${dev##*/} $1 || continue
+for phy in /sys/class/ieee80211/*; do
+get_wireless_params ${phy##*/} $1 || continue
ret=0
-   printf Turning powersave for %s %s... ${dev##*/} $1
-   if [ $have_iwconfig = true -a $iwconfig ]; then
-   iwconfig ${dev##*/} $iwconfig || ret=1
-   fi
-if [ $have_iwpriv = true -a $iwpriv ]; then
-   iwpriv ${dev##*/} $iwpriv || ret=1
-   fi
+for dev in $phy/device/net/*; do
+printf Turning powersave for %s %s... ${dev##*/} $1
+if [ $have_iwconfig = true -a $iwconfig ]; then
+iwconfig ${dev##*/} $iwconfig || ret=1
+fi
+if [ $have_iwpriv = true -a $iwpriv ]; then
+iwpriv ${dev##*/} $iwpriv || ret=1
+fi
+done
 if [ $iwlevel ]; then
-   echo $iwlevel  $dev/device/power_level || ret=1
-   fi
+echo $iwlevel  $phy/device/power_level || ret=1
+fi
[ $ret -eq 0 ]  echo Done. || echo Failed.
 done
 }
@@ -76,4 +76,4 @@ case $1 in
 *) exit $NA ;;
 esac
 
-exit 0
\ No newline at end of file
+exit 0



--- System information. ---
Architecture: amd64
Kernel:   Linux 2.6.38-1-amd64

Debian Release: wheezy/sid
  500 unstablewww.debian-multimedia.org 
  500 unstableftp.de.debian.org 
  500 testing ftp.de.debian.org 
  100 experimental-snapshots qt-kde.debian.net 
1 experimentalftp.de.debian.org 

--- Package information. ---
Depends (Version) | Installed
=-+-===
powermgmt-base| 1.31
kbd   | 
 OR console-tools | 1:0.2.3dbs-70


Recommends  (Version) | Installed
=-+-===
vbetool   | 1.1-2
procps| 1:3.2.8-10
hdparm| 9.32-1


Suggests(Version) | Installed
=-+-===
cpufrequtils  | 007-1
wireless-tools| 30~pre9-5
ethtool   | 1:2.6.37-1
radeontool| 








-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org