On Sun, 13 Oct 2002, Axel Heinrici wrote:
Hi Ich habe mir SuSE8.1 gekauft und auf einem Acer 223 laptop installiert. ACPI funktioniert nicht korrekt. Es gibt seitens SuSE praktisch keinerlei Dokumentation zu ACPI. Die Batterieanzeige des KDE gibt nur die Fehlermeldung. "..scheinbar ... teilweise ACPI .....blabla.... Wahrscheinlich wurde ACPI eingestellt, aber einige Untereinstellungen nicht. Im Minimum müssen 'AC adapter' und 'Control Metohod Battery' eingestellt sein. ...."
Mir geht es exakt genau so, nur eben mit einem MAXDATA 7100 Notebook. Ich habe zusätzlich auch noch versucht, telefonisch eine LÖSUNG von SuSE zu bekommen --> vergiß es, eher friert die Hölle zu! Ich habe mir dann so beholfen, und es scheint wenigstens ein brauchbarer Workaround zu sein: 1. Da sich das Notebook beim Runterfahren immer unmittelbar nach dem Unloaden der ACPI Module aufhängte, habe ich schrittweise alles raus geworfen (-> Eintragung, welche Module NICHT von ACPID zu laden sind) bis nur mehr die Module "ac" und "battery" übrig blieben. Dann konnte ich es ordentlich runterfahren, was ja nicht unwesentlich ist... :-) 2. Ich habe mir die Dateien in /proc/acpi/ac/... und /proc/acpi/battery... angesehen und dann einen kleinen Shell-Script gestrickt, der nichts anderes macht, als alle 10 Sekunden die Dateien zu analysieren (sind ja gottseidank reine ASCII-Files) und daraus die wesentlichen Infos zu analysieren. Wird ein bestimmter Ladezustand des Akkus unterschritten, wird nun alle 10 Sek. ein Warnton abgespielt. Wird ein noch niedrigerer Wert unter- schritten, gibt's einen beinharten System Shutdown, bevor die Spannung zusammenbricht. Hier mußt Du eben solche Werte eintragen, wie sie Dir gefallen. Vielleicht hilft dieser Lösungsansatz. Hier mein Shell Script... ---<snip>-------------------------------------------------------- #!/bin/sh # Datei /sbin/batterie_monitor # Aufzurufen als "/sbin/batterie_monitor &", damit der Betrieb im Hinter- # grund abläuft, vorzugsweise aus den Start-Scripten. # Dieser Shell-Script ist eine NOTLÖSUNG, da SuSE 8.1 derzeit noch nicht # brauchbar ACPI unterstützt. Kann man sicher schöner/eleganter machen, # aber das hier funktioniert wenigstens einmal... # Geschrieben von: Rainer Hantsch PATH=/usr/bin:/usr/sbin:/bin:/sbin # KONFIGURATIONSTEIL ################################################## # Hier befinden sich die benötigten Daten im proc Filesystem... ac_stat=/proc/acpi/ac_adapter/AC/state bat_stat=/proc/acpi/battery/BAT0/state # Warntöne, die mit "PLAY" abgespielt werden. Die Dateien sollten vorteil- # hafter Weise auch existieren. Vielleicht mal manuell das PLAY austesten? warnsound=/opt/kde3/share/sounds/KDE_Beep_Bottles.wav stopsound=/opt/kde3/share/sounds/KDE_Logout_new.wav # Bei diesen Lade-Zuständen erfolgt Action. Es handelt sich dabei um den # verbleibenden REST-Ladezustand des Akkus im mAh, wie er vom ACPID in # den o.g. Dateien hinterlegt wird. warnlevel=1500 # Bei welcher Akku-Restkapazität warnen? stoplevel=500 # Bei welcher Akku-Restkapazität SHUTDOWN machen? # HIER BEGINNT DER EIGENTLICHE PROGRAMMTEIL ############################## player=`which play` stopcmd=`which halt` echo " Battery level for battery low ........ $warnlevel mAh" echo " Battery level for battery dear ....... $stoplevel mAh" echo sleep 6 # Endlos - Programmschleife while [ 1 == 1 ] ; do # Batteriebetrieb am Wörtchen "off-line" in AC-Datei erkennen... if [ "`cat $ac_stat | grep -i 'off-line'`" != "" ] ; then mode="BATTERIE" else mode="NETZ" fi # Ladezustand des Akkus ermitteln. Dieser Hokuspokus isoliert die Zeile # mit dem Ladezustand und daraus den alleinigen Zahlenwert in mAh, der # Rest wird entfernt. dummy=`cat $bat_stat` fill=`cat $bat_stat | grep mAh | cut -d ':' -f 2 | \ sed -e s/' mAh'//g -e s/' '//g` # Die vorherige Zeile als EINE ZEILE eingeben! if [ "$mode" == "BATTERIE" ] ; then # Nur im Batteriebetrieb testen # Warnton abspielen, daß Batterie knapp wird. if [ $fill -le $warnlevel ] ; then $player $warnsound fi # Jetzt wird's DRINGEND. - Sofortiger Shutdown! if [ $fill -le $stoplevel ] ; then echo "FÜHRE SHUTDOWN AUS." $player $stopsound $stopcmd fi fi sleep 10 done #-EOF- ---<snap>--------------------------------------------------------------- Und hier ein kleiner Shell-Script, der in /etc/rc.d/ zu liegen kommt und über entsprechende symbolische Links aus den Runleveln aufgerufen wird. (Als letztes starten, als erstes stoppen.) Dieser Script startet/stoppt den eigentlichen "Daemon-Prozess". ---<snip>--------------------------------------------------------------- #! /bin/bash case "$1" in start) echo "Starte BATTERIE-MONITOR" /sbin/battery_monitor & ;; stop) echo "Beende BATTERIE-MONITOR" killall -9 battery_monitor ;; *) echo "Usage: $0 {start|stop}" exit 1 esac ---<snap>--------------------------------------------------------------- mfg Ing. Rainer Hantsch -- \\|// Ing. Rainer HANTSCH - Hardware + Software (o o) Forget Windoze! -- We focus on L-I-N-U-X... --oOOo-(_)-oOOo-------------------------------------------------- Ing. Rainer HANTSCH | e-Mail: office@hantsch.co.at Khunngasse 21/20 | www : http://www.hantsch.co.at A-1030 Vienna | Tel. : ++43 - 1 - 7988538 0 ---------------------| Fax : ++43 - 1 - 7988538 18 ** AUSTRIA ** | Mobile: ++43 - 664 - 9194382 -----------------------------------------------------------------