[linux-l] Hardwareproblem: Nochmal PowerOff

Norm@nSteinbach norm at nsteinbach.de
Do Mär 8 23:19:49 CET 2007


Steffen Dettmer wrote:
> SuSE hat was in /etc/powersave/. In events stehen bei mir z.B.:
> EVENT_BUTTON_POWER="wm_shutdown"
> EVENT_BUTTON_SLEEP="suspend_to_disk"
> EVENT_BUTTON_LID_OPEN="ignore"
> EVENT_BUTTON_LID_CLOSED="screen_saver"

Mangels genaueren Fachwissens kann ich hier nur einen Vergleich
anstellen: Bei mir liegt in /etc ein verzeichnis /power, darin 2
unterverzeichnisse einmal /event.d und einmal /scripts.d
In beiden Unterverzeichnissen liegt nur jeweils eine Datei
"Laptop-Mode", ein Shellscript was letztlich das PowerManagement eines
Laptops regeln soll...
Dafür gibts ein Verzeichnis /etc/acpi, was wohl eher dafür zuständig
ist. Darin liegen Dateien wie hibernatebtn.sh oder batterybtn.sh aber
auch Verzeichnisse wie ac.d oder events oder resume.d - also hat in
diesem Verzeichnis alles irgendwie mit Powermanagement (also auch
PowerOff) zu tun. Eine Datei heisst power.sh - das darin enthaltene
Shellscript scheint nur zu überprüfen obs sich bei dem System um ein
Laptop handelt und obs genug Batterieladung hat wenns auf Akku läuft.
Die erste 2 Zeilen (hinter #!/bin/bash) lauten:
. /etc/default/acpi-support
. /usr/share/acpi-support/power-funcs

Also schaue ich da mal nach. In /etc/default liegen Dateien von
verschiedenen Systemdiensten (von cupsys bis tmpfs alles, auch acpid und
acpi-support), acpi-support und acpid regeln aber anscheinend nur Dinge,
die mit den verschiedenen Systemereignissen wie "Suspend to RAM" usw. zu
tun haben...also in /usr/share/acpi-support gehen... Dort sieht die
Datei "key-constants" unter anderem vielversprechend aus. Die erste
Zeile beinhaltet den Kommentar "Generated from
/usr/include/linux/input.h dated Sat Feb 4 14:58:52 GMT 2006
An diesem Tag im Jahr 2006 kannte mein Rechner noch kein Linux - im Jahr
2007 ist das Problem schätzungsweise zu diesem Zeitpunkt ungefähr
aufgetreten. Kann aber auch schon vorher gewesen sein... Jedenfalls
stehen da ganz viele "Key" (also Tasten)-Bezeichner drin, die alle der
Reihe nach hochzählen. Die meisten sind eigentlich klar, aber es gibt
auch Keys die für nur englisch und deutsch Verstehende nichtssagende
Namen haben wie "KEY_ZENKAKUHANKAKU" (=85) oder "KEY_KATAKANA",
"KEY_HIRAGANA", "KEY_KATAKANAHIRAGANA". Gleichzeitig gibts darin Keys
wie "KEY_SENDFILE" oder "KEY_DELETEFILE", was ja eigentlich keine
"on-a-key"-Funktionen sind, sondern höhere. Und Einträge die sogar
jeglicher Logik entbehren wie "KEY_FINANCE", "KEY_SPORT", ...
Jedoch ist kein "KEY_POWER" dabei, daher sehen wir mal weiter in dem
Verzeichnis: power-funcs klingt interessant, mal reinschauen: Der
Kommentar lautet "a micro library of helper functions for the power
scripts" - hmm, hilfsfunktionen, scheints als auch nicht zu sein
(nebenbei bemerkt: was bedeutet die Zeile "umask 022;" in einem
Shellscript?). Aber es wird darin ein weiterer Pfad angegeben, in dem
was liegen könnte: /var/lib/acpi-support.

Aber da liegen auch nur Informationen wie system-manufacturer,
bios-version usw. Also wieder nix.

Verdammt, kann man sich nichtmal selbst zurechtfinden lernen? Irgendwo
muss doch die Taste (ebenso wie in /usr/share/acpi-support/key-constants
die anderen mehr oder weniger real existierenden Eintastenfunktionen)
definiert sein, und was sie macht!?! Wie finde ich sowas?
Okay, weitersuchen: irgend ein Gefühl (Und Computerbedienung ist
schließlich zu weit mehr als 90% Gefühlssache!) sagt mir, in /etc/acpi
könnte doch noch was interessantes sein, also ins unterverzeichnis
/events gewechselt, und siehe da: Es sind ne Menge Dateien, die
verschiedene Hardwarbuttons bezeichnen, darunter: powerbtn. Langsam
wirds spannend! Okay, die Datei verweist auf eine die mir schon vorher
hätte aufgefallen sein müssen: /etc/acpi/powerbtn.sh - darin wird
anscheinend überprüft wie "sicher" Gnome- und KDE-Sitzungen vorm
ausschalten beendet werden können, und am Ende steht:
# If all else failed, just initiate a plain shutdown.
/sbin/shutdown -h now "Power button pressed"

Also mal in /sbin/shutdown schauen...
Scheiße, das ist ne Binärdatei.
Sie enthält aber ein seltsames Mix aus Binär- und RealText-Daten:
EL4|D4 (4>4��(  Q�d/lib/ld-linux.so.2GNUCVNL;
                                             ,#7E"P
3$)SKQM/CU @AD6R&5H+▒GBO=1:J*
0(▒.98%?-<>F'   42TMx]gB�xd|5Uojq.]��!fZ ��Q6%▒6!=
:nzs!!�/Hr4�IzN6m=��j�6Z]sAdV0�C�'c�VǢ

                     8KF!�

                       6IKX.
_Jv_RegisterClasses__gmon_start__libc.so.6getutidsigemptysetfdopengeteuidsnprintf__strtol_internalgetpidfscanffgetsmemcpyperrorgetuidisattysiglongjmpoptarggetutentfflushalarm__sigsetjmpunamenanosleepfprintfkillctimestrcatrebootchdiroptindwaitumaskstrstrsignalendutentopenlogcloselogstrncmpstrncpyunlinksync__strdupforksscanfexecvstrncatsigactiongettimeofdaygetoptlocaltimememsetsyslogshutdownttynamegetpwuidgethostnamesprintffclosestderrpututlinefputcfwriteaccess__xstat__errno_locationexitfopen_IO_stdin_used__libc_start_mainupdU4HP�trchrsetutentfputsexecvpwarnsetuid__environGLIBC_2.1GLIBC_2.0$ii


▒
 !"#$%&:;<=>?@ABCDEFRQ
                    TU����5%%h�%�%h�h▒�h �h(�h0h8�%

h@�hH�hP�%hX�h`�%hh%hp�%hx�%h�%h�%h�%h�%h�%h�%h�%h�%h��%h��%h��%h��%h��%h�%h��%h�%h�%�%h�%h▒�%h
�h(�h0�h8�h@�hH�hP�hX�h`�hhhp�hx�h�h�h�h�h�%h�%h�%h�%h�%h�%h�%h�%h�%h%h�%h�%h�%�%h�h▒�h
�h(�h0h8�%

                                             h@�hH�1���TRhQVh��,�Ѓ[]Ë$�=t
                  ����� �Ð
�$\$,$�Ƅ$+$$�$�           �$$�
t�O�$�LD$
         ��$Q$$�5Č[^_]Ä�

u�D$▒�D$,D$�$
             �$Q$$��D�$$��É$��m�D$$�$�Å�pƿ�u\�$��غ�DT$$$�Å뵍$,��$$�DŽ$DŽ$
$0$��\$$���f8u�,t޿�Ƅ$b�%\$$b$�$b�$$���$$��$(1$�D$(�

                                                  L$(

                                                     $�@<$��t&�$t&�\$�$
                  ��$&$b$��$�$D$b\$$�A$3$%�= $A�▒�▒%�   MA��    �

t&�&%`at&�t&v�t&f�$    $�D$(�D$($��1��$L$(


$��Dž#D$$$$0�u<$��<$���ʼn؉\$$���$$�u�u�F�_vމ�vwԃC at D�$<$���VS�D$0D$�$
t$\$▒�8u D$T$▒D$T$ t$$���փ�[^Ã

      $��$��$����$�D$

                     �T�$�$�D$�WVS�$D��$D$ $��$ i    �$$1�ы$@�эY1�
Ё�[^_]Íl$0\$@D$,$ov
                 ���0=D|t$$��$��$$�DŽ�\$$�$���$��Å��D$ D$$�=t{D$
                                                               �$
�$���/�$$��Ё�[^_]��Ё�[^_]É$��$��1�WVS�$p�$ �?�t$ 4$�1   ��Q�_D$\$�$

@)ЉD$$���$4$���[^_�D$

              @)ЉD$$����$4$��[^_�S�\$0t$ 4$�)\$
�$$�Å�-4$�D�$$��u$���[^É\$���VS��$<�|$<
V$��$��D$<��Ã|�6t$<�4$��9�D$=�[^��8
u߸�[^ËT$PD$TD$�$<D$\D$@D$XD$ �t$L$ t]D$@PT$@��$<�$��t$D$$�D$$��$���$<밻t
$륡$���x        ~3;~/~L���)�)������)�)�����)�)���VS51ۉ$��?u$��u�$���$$�� D$
                     �4�$��$$�� �$
                                  �$
�$$�$��D$
         �2�$$��$       $��$��$�$
                                 ��$$��$$��$
                                            ��$$���D$
                                                     ��$$���$
                                                             ��$�D$
                                                                   �'�$$��$

   ��$�0D$

          �<�$��$#���$�$��$$��D$

                                ��$$��$��D$


�-�$��$gE#����U�VS�������$����D$@D$$�D$▒D$���$��$�$��$$��$$���$$��$�$�$���$$��0�$���
                 f1DžDž1Dž�U
                         T$M
                           $��t9�3w$��U
                                       T$M
=0                                       $�uNj�
�$$�Å1`\�$4$���i`<#t�
tكԉ�ut&B�<
u�B��$���\�$4$���
                 DŽ�$���ƅf>uD$
                             � �$]$��`D\$$���EU�A������ Cj���
                                                             �
                                                              ���0
Ѓ?1��tD�!��
T$$���ɻ�Dž���Dž��0�5ÉD$���6�1���$�Å�E��$$��$�ۃ�9/E�~▒�$$��d<0<6z<1X<6t&v<0z������$��$�Ål�D�$��$��$$���$$���$$���$$���$$��$$�����$$�Dž��\$$�u:Au:A:Af0+Є�)

                                    C�,0<
v�Q�C��D$:$▒�E�$
                E��<$�t��}}�]$�$])]�
e�^_]ËU�9�$$��$E$�4D$
�)P�t$����otpDž1�$<��9�J�$��Dž���$��$<��9�$��1
                     ��$$�$1��fǁ
�M
  4Dž1���+T$1��f �)��u�<to ainenace odeforsysem alt�����$
                                                        �$
�$$��Dž▒��<$�����$B$��$�����$B$▒�$���forreboo�9�U
                                                ���8�$$���Ǡ�90e����$$�ÅED$

  �+�$�$�▒D$

            �1�$�$���D$

                       �'�$$��$�D$

                                  �)�$$��$�t�$�$��D$

                                                    ��$$�$��D$
����$$$��f$$X$�$TD$$$���$$$�� |$$$��� t$$$�t`��$$����:>t&t1t$l$D$$$���
$@D$$$��D$$���!t$�$��[^�D$D$$$���WVS�$P$\$`Ƅ$�$$"

$XD$TD$<$��[^_]Í$��\$�$D$$�$�l� \$$$��� \$$$

                                   ��U�V1���ã


                                             ��  E��9��E�)�9��
        [^_]��▒]���
                   u}  )�u�:]�}�ÐUЋCu�[]ÐU����
                                              �[]�uid %droot/dev/(%.28s)
[unknown]/dev/%.*s/../
^%c
Remote broadcast message (%s):


Broadcast message from %s@%s %s(%s):

HOME=/TERM=dumb/etc/nologin/fastboot/forcefsck/var/run/shutdown.pid
/dev/initctlshutdown: fork/dev/nullshutdown: can't idle init.
~~shutdownaccton-aquotaoffshutdown: turning off swap
swapoffumountshutting down for system halt/sbin/init-tINIT_HALTshutdown
failedPOWERDOWN0156aAbBcCsSshutdown: `%s': bad runlevel
HPacqkrhnfFyt:g:i:r/etc/shutdown.allow/dev/consoleshutdown: not running.
shutdown: already running.
to runlevel %s%d
now%d:%2dPATH=/bin:/usr/bin:/sbin:/usr/sbin@(#) shutdown 2.86-1
31-Jul-2004 miquels at cistron.nlUsage:      shutdown [-akrhHPfnc] [-t
secs] time [warning message]
                  -a:      use /etc/shutdown.allow
                  -k:      don't really shutdown, only warn.
                  -r:      reboot after shutdown.
                  -h:      halt after shutdown.
                  -P:      halt action is to turn off power.
                  -H:      halt action is to just halt.
                  -f:      do a 'fast' reboot (skip fsck).
                  -F:      Force fsck on reboot.
                  -n:      do not go through "init" but go down real fast.
                  -c:      cancel a running shutdown.
                  -t secs: delay between warning and kill signal.
                  ** the "time" argument is mandatory! (try "now") **
timeout opening/writing control channel %s
The system is going down %s NOW!
The system is going DOWN %s in %d minute%s!
The system is going down on %s
shutdown: sending all processes the TERM signal...
shutdown: sending all processes the KILL signal.
shutdown: unmounting all file systems
The system is halted. Press CTRL-ALT-DEL or turn off power
Please stand by while rebooting the system.
shutdown: cannot execute %sboot
shutdown: you must be root to do that!
shutdown: -H and -P flags needs -h flag.
shutdown: no authorized users logged in.
shutdown: cannot find pid of running shutdown.
shutdown: can use "-n" for halt or reboot only.
shutdown: warning: cannot open %s
ߧ
/var/log/wtmp/var/run/utmp$

H

ڏozo
ڐ
ڑ
ڒ
ʓ
GCC: (GNU) 3.4.6 (Ubuntu 3.4.6-1ubuntu2)GCC: (GNU) 3.4.6 (Ubuntu
3.4.6-1ubuntu2)GCC: (GNU) 4.0.3 (Ubuntu 4.0.3-1ubuntu5)GCC: (GNU) 4.0.3
(Ubuntu 4.0.3-1ubuntu5)GCC: (GNU) 4.0.3 (Ubuntu 4.0.3-1ubuntu5)GCC:
(GNU) 4.0.3 (Ubuntu 4.0.3-1ubuntu5)GCC: (GNU) 3.4.6 (Ubuntu
3.4.6-1ubuntu2)GCC: (GNU) 4.0.3 (Ubuntu 4.0.3-1ubuntu5)GCC: (GNU) 3.4.6
(Ubuntu
3.4.6-1ubuntu2).shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rel.dyn.rel.plt.init.text.fini.rodata.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment
                             ( !Hl'
                                  `/    7o
                                         Dod
                                            0S
                                               \
                                                       P
                                                       e

                                                       `$▒!4w▒5▒
@��B8B 8BzC�


Interessant, laut meiner Interpretation dieses Dateiinhaltes scheint der
Parameter -h wirklich das System nur anzuhalten, während die Option -p
benötigt wird für einen PowerOff.
Also ändern wir mal in der Datei, in der vorher diese hier angegeben
wurde, das -h nach -p um und sehen, ob der Rechner dann ausschaltet beim
PowerButton.
Mach ich jetzt aber nicht, weil ich ihn ja noch benutzen will.

Jaaaa, SO stelle ich mir selber-lernen vor!!!

Warum muss man das alles selbst machen???

;-)


Viele Grüße,

Norman



Mehr Informationen über die Mailingliste linux-l