Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Laptop bei kritischem Akkustand im Textmodus runterfahren
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
mrsteven
Veteran
Veteran


Joined: 04 Jul 2003
Posts: 1938

PostPosted: Tue Jun 08, 2004 5:42 pm    Post subject: Laptop bei kritischem Akkustand im Textmodus runterfahren Reply with quote

Hallo!
Wie kann ich meinen Laptop (mit funktionierendem ACPI) bei kritischem Akkustand automatisch herunterfahren, auch wenn er im Textmodus (also ohne X) läuft? Eine Warnung kurz zuvor durch einen Piepston oder so wäre auch ganz nett.
_________________
Unix philosophy: "Do one thing and do it well."
systemd: "Do everything and do it wrong."
Back to top
View user's profile Send private message
Earthwings
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 7753
Location: Germany

PostPosted: Tue Jun 08, 2004 6:45 pm    Post subject: Reply with quote

Schau mal, ob der Kernel bei kritischem Akkustand einen Event generiert. Sprich acpid emergen und schauen, ob im syslog eine Meldung kommt, wenn der Akkustand kritisch ist. Falls ja, musst Du nur noch /etc/acpi/default.sh entsprechend konfigurieren, das darauf reagiert wird. Falls nicht, notfalls selbst einen kleinen Daemon schreiben, der regelmäßig den Batteriestand überprüft.
_________________
KDE
Back to top
View user's profile Send private message
elmo[bjoern]
n00b
n00b


Joined: 03 Jun 2004
Posts: 14
Location: Oer-Erkenschwick, NRW, Germany

PostPosted: Tue Jun 08, 2004 9:47 pm    Post subject: Reply with quote

Nabend,

da ich über dieses Problem auch schonmal nachgedacht habe, habe ich gerade kurz mal ein kleines Perl Script geschrieben. Hoffe es funktioniert bei euch. Einfach das script starten, und am besten in den Hintergrund legen. Man könnte noch ein schönes init-script schreiben, doch habe ich leider grad keine Zeit mehr.
Bin leider kein Perl-Guru, wäre schön wenn ihr mir ein paar tips geben könntet, wie man das vielleicht eleganter schreiben kann.

Quote:

#!/usr/bin/perl -w
# Written by Bjoern Biesenbach < do2bba at darc dot de >
# $batwarn and $batmin are relative values of the battery capacity

# if $batwarn is reached, the programm will broadcast low capacity
# if $batmin is reached, halt is executed


$batwarn = 10;
$batmin = 7;

while(1)
{
if (!(`cat /proc/acpi/battery/BAT0/info | grep "design capacity:"` =~ m/\.*(\d+)\.*/))
{
print "Fehler beim Zugriff auf ACPI Interface !\n";
exit(1);
}
$designcapacity = $1;

if (!(`cat /proc/acpi/battery/BAT0/state | grep "remaining capacity:"` =~ m/\.*(\d+)\.*/))
{
print "Fehler beim Zugriff auf ACPI Interface !\n";
exit(1);
}
$currentcapacity = $1;

$relative = $currentcapacity / $designcapacity * 100;

if($relative <= $batwarn)
{
`wall BATTERIESTAND NIEDRIG !!`;
echo -e "\a" > /dev/tty1;
}
if($relative <= $batmin)
{
`halt`;
exit(0);
}
sleep(10);
}
Back to top
View user's profile Send private message
texx
n00b
n00b


Joined: 14 Nov 2002
Posts: 67
Location: Vienna

PostPosted: Wed Jun 09, 2004 9:07 am    Post subject: Reply with quote

ist es nich sinnvoller das script komplett durchlaufen zu lassen... und per cron alle x wieder zu starten???

matthias
_________________
System 1: Athlon 64 3200+ | Asus K8V Deluxe | 512MB Kingston | 80GB Seagate (IDE) | GeForceFX 5950 | Gentoo-2.6.3-r2
Server: AMD K6 | 64MB | 200GB Seagate (IDE) | Gentoo-2.4.22
Back to top
View user's profile Send private message
Earthwings
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 7753
Location: Germany

PostPosted: Wed Jun 09, 2004 2:14 pm    Post subject: Reply with quote

Wenn Du es per cron startest, hast Du potentiell mehr Plattenzugriffe, was im Batteriemodus nicht unbedingt wünschenswert ist. Als "daemon" bleibt es im Arbeitsspeicher.

@elmo[bjoern]: Vielleicht wäre es sinnvoller, bei nicht vorhandener /proc/acpi/battery/BAT0/info das Skript nicht zu beenden. Die Module können kurzzeitig aus dem Kernel genommen werden (z.B. bei mir bei hibernate/resume) und ein Beenden des Skripts ist dann ungünstig. Außerdem solltest Du noch die mögliche Division durch Null abfangen. Last not least würde ich statt halt shutdown aufrufen (halt ist low-level Befehl), am besten gleich noch mit einer Verzögerung von 1 Minute, so dass man den shutdown notfalls abbrechen kann.
Back to top
View user's profile Send private message
mrsteven
Veteran
Veteran


Joined: 04 Jul 2003
Posts: 1938

PostPosted: Fri Jun 11, 2004 10:58 am    Post subject: Reply with quote

Danke! Werde ich gleich mal ausprobieren.
_________________
Unix philosophy: "Do one thing and do it well."
systemd: "Do everything and do it wrong."
Back to top
View user's profile Send private message
MrTom
l33t
l33t


Joined: 20 Jan 2003
Posts: 608

PostPosted: Mon Jun 14, 2004 7:20 pm    Post subject: Reply with quote

Hab das Script bei mir installiert und wollte nun noch eine Änderung machen. Es soll zusätzlich zum wall noch ein xmessage gemacht werden. Leider funktioniert es nicht so, wie ich will!?!

Mit xhost +local: oder xhost +'hostname' habe ich versucht lokal Zugriff zu bekommen. Also das der User root auf die X-Console des "normalen" Users zugriff hat.

Wenn ich nun versuche mit DISPLAY=:0.0 xmessage test, was auf die X-Console meines Users zu schicken bekomme ich nur die Meldung das :0.0 broken ist und er macht dann einen Restart des X-Servers!

Hat da jemand einen Tipp?!?
Hab jetzt erst mal eingestellt, dass er einen Sound spielt. Da ich meistens nur unter X bin, bekommt ich vom wall nicht viel mit. Zusätzlich hätte ich da schon gerne ein xmessage...
Denke Zugriff mit xhost ist Ok, aber warum X gleich abschmiert verstehe ich nicht?!?!!
Back to top
View user's profile Send private message
sarahb523
Guru
Guru


Joined: 10 Mar 2004
Posts: 423
Location: Berlin

PostPosted: Mon Jun 14, 2004 10:58 pm    Post subject: Reply with quote

zum thema acpi kann ich leider nich viel sagen (hab noch nie acpi konfiguriert), aber wer noch ein "BEEP" vor dem herunterfahren haben möchte sollte zuerst mal

emerge beep

machen. und dann kann man mit dem befehle beep (und witzigen parametern) lustige töne dem pc speaker entlocken. Derzeit piept mein rechner bei allen möglichen sachen mit den unterschiedlichsten beep-codes

probier mal:
Code:
beep -f 800  -r 3 -d 300 -l 300 -D 400 -n -f 200 -l 800


Naja das läßt sich sicher noch optimieren :-)
_________________
AMD Sempron 2400+ / 1GB RAM / NVidia Geforce 5200FX /
Kernel 2.6.31-gentoo-r4 / kde 4.3
Back to top
View user's profile Send private message
MrTom
l33t
l33t


Joined: 20 Jan 2003
Posts: 608

PostPosted: Tue Jun 15, 2004 5:47 am    Post subject: Reply with quote

@sarahb523: Ich glaube, da hat jemand zu schnell gelesen: ;-)

Der Beep oder bei mir der play eines wav macht kein Problem.

Was ich möchte, ist eine Meldung unter X. Da bin ich als User TOM angemeldet. Das Script läuft als ROOT. Wenn ROOT nun versucht dem TOM eine Meldung mit xmessage zu schicken, macht bei mir der XServer einfach einen Neustart und ich habe XDM zur Anmledung da.
Back to top
View user's profile Send private message
Earthwings
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 7753
Location: Germany

PostPosted: Tue Jun 15, 2004 7:37 am    Post subject: Reply with quote

@MrTom: sarahb523's Antwort ging wohl an mrsteven.
Back to top
View user's profile Send private message
sarahb523
Guru
Guru


Joined: 10 Mar 2004
Posts: 423
Location: Berlin

PostPosted: Tue Jun 15, 2004 8:33 am    Post subject: Reply with quote

Earthwings wrote:
@MrTom: sarahb523's Antwort ging wohl an mrsteven.


jap du hats recht, sorry war wohl etwas müde gestern abend ;-) meine antwort bezog sich auf:

mrsteven wrote:
...Eine Warnung kurz zuvor durch einen Piepston oder so wäre auch ganz nett.



wegen xmessage. ich habe mal folgendes probiert:
als user:

xhost +local:localhost

ausgeführt. und dann als root:

xmessage "bla bla bla"

und es geht.
_________________
AMD Sempron 2400+ / 1GB RAM / NVidia Geforce 5200FX /
Kernel 2.6.31-gentoo-r4 / kde 4.3
Back to top
View user's profile Send private message
elmo[bjoern]
n00b
n00b


Joined: 03 Jun 2004
Posts: 14
Location: Oer-Erkenschwick, NRW, Germany

PostPosted: Tue Jun 15, 2004 3:15 pm    Post subject: Reply with quote

@MrTom:

ich habe das mit xmessage auch mal versucht. Es lief, indem ich einfach vom root zum user mit "su" gewechselt bin, dann DISPLAY=:0.0 und export DISPLAY gemacht habe, und /usr/X11R6/bin/xmessage - test aufgerufen habe. Eine umsetzung im script auf diese Weise ist wohl leicht möglich, ich werde mich später mal daran begeben, habe jetzt gerade nicht viel Zeit.

Gruß
Björn
Back to top
View user's profile Send private message
MrTom
l33t
l33t


Joined: 20 Jan 2003
Posts: 608

PostPosted: Tue Jun 15, 2004 6:51 pm    Post subject: Reply with quote

Gehen beide Tipps nicht. Vielleicht liegt es am xorg. Bei kommt dann die Fehlermeldung: X connection to :0.0 broken (explicit kill or server shutdown).
Und genau das macht er auch... Der X macht einen shutdown und startet dann wieder. Da ich den xdm von xorg verwende kommt dieser und fragt braf nach dem User und Passwort...

Werde das bei der nächsten Version von xorg nochmals testen.
Die meisten Fehler erledigt die Zeit ;-)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum