
Hardware-Poweroff  (c) 2003 Thomas Dingermann <thomas@dingermaenner.de>

 ***
 *** The below documentation is in German.
 *** If someone has time and is willing to translate this to English, 
 *** please do so and send me the translation to 
 ***           Sergei Haller <Sergei.Haller@math.uni-giessen.de>
 *** 

Warnung:  Diese Schaltung kann mindestens den Druckerport zerstören! 
          Es wird keinerlei Haftung für die Funktion bzw. Schäden übernommen.
          Jeder muß selbst _verstehen_, was er hier macht!

Das MSI-6160 (Fujitsu-Siemens-PC mit Celeron Prozessor) hat folgenden Fehler:
Nach dem Setzen der Aufwachzeit im BIOS-Setup bzw. Schreiben der Werte durch 
nvram-wakeup muß der PC von Hand ausgeschaltet werden. Sobald der PC mit Hilfe 
von APM oder ACPI abgeschaltet wird, wird der PC nicht zur programmierten Zeit 
wach.

Lösung:

Die angehängte Datei enthält ein FreeDOS-Bootdisketten-Image, die als einzige 
Funktion folgendes (Turbo-Pascal)-Programm startet:

-----------------------------------------------------------------------------
var b    : byte;
    n,
    f    : word;
    x    : string;
begin
 if paramcount>0
  then begin
        val(paramstr(1),n,f);
        if f>0
         then begin
               writeln('Usage: poweroff nnn');
               writeln('while nnn is the decimal value of your printerport');
               writeln('0x3F8 is decimal 888');
               writeln('0x278 is decimal 632');
               writeln('0x3BC is decimal 956');
               exit;
              end;
       end
  else n:=$378;
 str(n,x);
 inc(n,2);
 writeln ('Setting /Strobe on parallelport ('+x+') to 0... Poweroff!');
 b:=port[n];
 port[n]:=b or 1;
 repeat until false;
end.
------------------------------------------------------------------------------

Dieses Programm schaltet den Strobe-Ausgang des Parallelports auf 0 Volt.

Durch eine Diode (z.B. 1N4148) zwischen dem Pin 1 des Parallelports und dem 
ATX-Ein/Aus-Schalter wird dem PC vorgegaukelt, jemand würde den Ein/Aus-Schalter 
drücken.

Im Detail:
Der ATX-Ein/Aus-Schalter hat einen Stecker mit zwei Leitungen der auf die Hauptplatine
gesteckt wird. Ein Anschluß ist fest auf Masse (Null Volt), der andere über einen 
Pull-Up-Widerstand nach + 5 Volt gelegt. Zunächst solle man mit einem Voltmeter den 
richtigen Pin finden: 
	Ein/Aus-Schalter nicht gedrückt: 5 Volt
	Ein/Aus-Schalter gedrückt: 0 Volt

Wenn man nun den richtigen Pin hat, wird die Anode der Diode 
(das ist die Seite ohne Strich/Markierung) an diese Leitung angelötet. Mit einer Leitung
(ca. 40 cm) wird die Kathode der Diode (das ist die Seite mit Strich/Markierung) 
an den Pin 1 eines 25 poligen Sub-D-Steckers (männlich) gelötet. Dieser Stecker wird in 
den Druckeranschluß gesteckt.
Fertig.
Einfach mal das beigelegte Image booten und sehen wie der PC ausgeht.

Image kann man auf Diskette spielen: 
 dd if=dioden-poweroff of=/dev/fd0

Image kann man zum Booten im Lilo oder GRUB eintragen:

Label=Poweroff
image=/boot/dioden-poweroff

Dann mit den entsprechenden Anleitungen im vdrshutdown-Skript den Bootmanager so
konfigurieren, daß er _nur_ beim nächsten Mal dieses Image bootet (bzw. von Diskette)

Viel Erfolg!
