[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

acpi-skripte sind falsch



Hi Leute!

Ich quäle mich immer noch damit rum, dass ifplugd meine WLAN-Karte nach dem Ausschalten nicht mehr einschaltet. Jetzt bin ich - so denke ich - einen wichtigen Schritt weitergekommen. Die Skripte in /usr/share/acpi-support scheinen falsch zu sein. Zumindest für meinen Rechner.

Im Skript "/usr/share/acpi-support/state-funcs gibt es die Funktion
isAnyWirelessPoweredOn
Darin wird folgendes abgefragt:

isAnyWirelessPoweredOn()
{
    for DEVICE in /sys/class/net/* ; do
    if [ -d $DEVICE/wireless ] ; then
# the initial status is 0 which means that the interface is thought as enabled
        # if it is found disabled, the status will be put to 1

        STATUS="0"
if [ -r $DEVICE/device/power/state ] && [ "`cat $DEVICE/device/power/state`" -ne 0 ]; then
            STATUS="1"
        fi
if [ -r $DEVICE/device/rf_kill ] && [ "`cat $DEVICE/device/rf_kill`" -ne 0 ] ; then
            STATUS="1"
        fi
if [ -r $DEVICE/operstate ] && [ "`cat $DEVICE/operstate`" = "down" ] ; then
            STATUS="1"
        fi

        if [ "$STATUS" -eq "0" ]; then
            # found an enabled interface, returning success
            return 0
        fi
    fi
    done
    # otherwise return failure
    return 1
}


Aber die Abfrage "if [ -d $DEVICE/wireless ] ; then" funktioniert schon mal nicht, da bei mir in /sys/class/net/wlan0 gar kein Verzeichnis "wireless" vorkommt...
Damit ignoriert diese Funktion schon mal das Device wlan0.
Weiters wird nach "rf_kill" abgefragt. Das gibt es bei mir so auch nicht. Denn die Struktur schaut so aus
$DEVICE/device/rfkill/rfkill[0-9]/

root@pluto:/sys/class/net/wlan0/device/rfkill/rfkill3# ls -Al
insgesamt 0
-rw-r--r-- 1 root root 4096  1. Nov 22:51 claim
lrwxrwxrwx 1 root root    0  1. Nov 22:51 device -> ../../../0000:0c:00.0
-r--r--r-- 1 root root 4096  1. Nov 22:44 name
drwxr-xr-x 2 root root    0  1. Nov 22:51 power
-rw-r--r-- 1 root root 4096  1. Nov 22:44 state
lrwxrwxrwx 1 root root 0 1. Nov 22:44 subsystem -> ../../../../../../class/rfkill
-r--r--r-- 1 root root 4096  1. Nov 22:44 type
-rw-r--r-- 1 root root 4096  1. Nov 22:51 uevent

Somit ist auch diese Abfrage nicht zielführend.

Die Abfrage nach "$DEVICE/device/power/state" gibt es auch nicht, da in $DEVICE/device/power/state einzig und allein die Datei wakeup vorhanden ist.

Einzig die Abfrage nach $DEVICE/operstate kann durchgeführt werden.
Aber ich nehme einmal an, dass das Skript die div. Möglichkeiten durchprobiert und hofft auf eine gültige zu stoßen. Aber wie schon geschrieben, soweit kommt es gar nicht, da das Verzeichnis "wireless" nicht vorhanden ist.

Soll ich dazu einen Bugreport verfassen?

Wie könnte ich eine Abfrage machen, ob das gerade abgefragte Device auch tatsächlich ein wireless-device ist, wenn dieses Verzeichnis nicht vorhanden ist?

 root@pluto:/sys/class/net/wlan0# ls -Al
insgesamt 0
-r--r--r-- 1 root root 4096  1. Nov 22:44 address
-r--r--r-- 1 root root 4096  1. Nov 22:44 addr_len
-r--r--r-- 1 root root 4096  1. Nov 22:44 broadcast
-r--r--r-- 1 root root 4096  1. Nov 22:44 carrier
lrwxrwxrwx 1 root root    0  1. Nov 22:44 device -> ../../../0000:0c:00.0
-r--r--r-- 1 root root 4096  1. Nov 22:44 dev_id
-r--r--r-- 1 root root 4096  1. Nov 22:44 dormant
-r--r--r-- 1 root root 4096  1. Nov 22:44 features
-rw-r--r-- 1 root root 4096  1. Nov 22:44 flags
-rw-r--r-- 1 root root 4096  1. Nov 22:44 ifalias
-r--r--r-- 1 root root 4096  1. Nov 22:44 ifindex
-r--r--r-- 1 root root 4096  1. Nov 22:44 iflink
-r--r--r-- 1 root root 4096  1. Nov 22:44 link_mode
-rw-r--r-- 1 root root 4096  1. Nov 22:44 mtu
-r--r--r-- 1 root root 4096  1. Nov 22:44 operstate
lrwxrwxrwx 1 root root    0  1. Nov 22:44 phy80211 -> ../../ieee80211/phy0
drwxr-xr-x 2 root root    0  1. Nov 22:44 power
drwxr-xr-x 2 root root    0  1. Nov 22:44 statistics
lrwxrwxrwx 1 root root 0 1. Nov 22:44 subsystem -> ../../../../../../class/net
-rw-r--r-- 1 root root 4096  1. Nov 22:44 tx_queue_len
-r--r--r-- 1 root root 4096  1. Nov 22:44 type
-rw-r--r-- 1 root root 4096  1. Nov 22:44 uevent

wobei
# cat type
1
root@pluto:/sys/class/net/wlan0# cat uevent
INTERFACE=wlan0
IFINDEX=44
root@pluto:/sys/class/net/wlan0# cat ifalias
root@pluto:/sys/class/net/wlan0# cat dev_id
0x0
root@pluto:/sys/class/net/wlan0# cat features
0x2000
root@pluto:/sys/class/net/wlan0# cat flags
0x1003

ausspuckt.
Möglicherweise ist ja einer dieser Werte ein verschlüsselter für ein wireless-device.

Mein Rechner ist ein Dell Latitude D630 mit einer Mischung aus Lenny, Squeeze und ein paar backports.

# acpid -v
acpid-1.0.10

Ich würde mich nämlich gerne auch an der Weiterentwicklung und am Bugfixing beteiligen und natürlich einen voll funktionsfähigen Rechner bekommen ;-) Ich bereite mich mal auf einen Bugreport vor. An welche Debian-Listen ist es noch sinnvoll, diese Informationen zu schicken (englisch-sprachige)?


lg jakob



--
The UNIX way of Sex:
gunzip-strip-touch-finger-mount-fsck-more-yes-umount-sleep


Reply to: