PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : halt-Taste über Parallelport



BLUESCREEN3D
18-12-2002, 21:46
Vorraussetzung:
-Einlesen von Daten (Schalterzustand an/aus) über den Parallelport
-im Hintergrund laufendes Programm das darauf reagiert

Ziel:
Irgendwie einen Schalter basteln der an dem Parallelport eines Linuxrechners angeschlossen ist und bei dessen drücken der "halt"-Befehl ausgeführt wird, um den Rechner runterzufahren.
Ein Programm das im Hintergrund läuft und auf den Schalter reagiert, geschrieben in C oder C++.

Problem:
-Wie lese ich den Zustand des Parallelports ein?
-Wie kann ein Programm immer im Hintergrund laufen?
-Wie wird ein Consolen-Befehl, der möglicherweise root-Rechte braucht, ausgeführt?
-Wie muss der Schalter/Taster an den Parallelport angeschlossen werden?

Hat wer Ideen oder Links um das ganze erstmal möglichst einfach zu realisieren?
Gibt es eine einfachere Möglichkeit als den Parallelport (Serielle Schnittstelle oder so)?

anda_skoa
18-12-2002, 23:30
Sowas wurde im Linuxmagazin mal für die Serielle Schnittstelle gemacht.
Vielleicht findest du da einen Ansatzpunkt:

http://www.linux-magazin.de/Artikel/ausgabe/2000/09/Seriell/seriell.html

Ciao,
_

BLUESCREEN3D
19-12-2002, 07:04
Danke für den Tip erstmal, da wird sich sicher was interessantes finden lassen! :D

The Ripper
19-12-2002, 12:27
Wenn deine Rechner ACPI unterstützt, dann aktiviers im Kernel (System, Button & Prozessor) und installiere acpid, damit fahren sich meine Rechner runter wenn ich auf den Power-Button drücke :)

BLUESCREEN3D
19-12-2002, 15:33
Ich glaube nicht so ganz, dass das alte AT-Mainboard ACPI-Unterstützung hat. Möglicherweise das, das da bald reinkommt, aber dann hat der Rechner immernoch ein AT-Netzteil und deshalb wird das wohl nicht gehen...

The Ripper
19-12-2002, 17:29
jo, hätte ja sein können dass du schon moderner ausgestattet bist ;)

meinen p133 (auch ohne atx-netzteil) fährt sich runter wenn ich str + alt + entf drücke, ist nur ein kleiner eintrag in /etc/inittab

BLUESCREEN3D
19-12-2002, 20:16
Mein Server von dem ich rede ist auch ein p133 :D


meinen p133 (auch ohne atx-netzteil) fährt sich runter wenn ich str + alt + entf drücke, ist nur ein kleiner eintrag in /etc/inittab

Erzähl mehr! (dann werde ich dem PC vieleicht doch ne Tastatur spendieren :))

BLUESCREEN3D
19-12-2002, 22:50
mir fällt gerade meine kaputte Tastatur ein (4 Tasten gehen nicht) - da könnte man doch bestimmt den kleinen wichtigen Teil der Elektronik ausbauen und die Kontakte der Tasten Strg, Alt und Entf mit einem Schalter verbinden... :D

The Ripper
20-12-2002, 11:41
In /etc/inittab wird


ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

zu


ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now

fertig :)

falls du deinen PC lieber mit ALT+Pfeil nach oben herunterfahren möchtest, ist "ctrlaltdel" durch "kbrequest" zu ersetzen

Sion
20-12-2002, 17:21
Original geschrieben von BLUESCREEN3D
Problem:
-Wie lese ich den Zustand des Parallelports ein?
-Wie kann ein Programm immer im Hintergrund laufen?
-Wie wird ein Consolen-Befehl, der möglicherweise root-Rechte braucht, ausgeführt?
-Wie muss der Schalter/Taster an den Parallelport angeschlossen werden?

Für alle interessierten: Mit Parapin (http://www.circlemud.org/~jelson/software/parapin/) geht sowas ganz einfach!
Du fragst einfach zyklisch den Pin, an dem der Schalter hängt, ab.
Wenn du das Programm als root ausführst, kann es mit system("halt"); den Rechner runterfahren.
Auf der Seite ist alles weitere Erklärt.

BLUESCREEN3D
20-12-2002, 19:00
Ich glaube fast, dass die Seite bei den Google-Suchergebnissen dabei war - aber ich wusste nicht, dass das damit so einfach geht... :D

Da ich vorhin eine alte Tastatur extrem zerlegt habe werde ich es aber erstmal mit einem gebastelten "Strg+Alt+Entf-Schalter", der an das kleine Elektronik-Teil der Tastatur angeschlossen ist, probieren

nobody0
21-12-2002, 17:22
Den Parallelport kann man einfach auslesen: einfach inb(0x378) (oder wo er sonst ist).
Dazu gibt es noch das Status-Register, das auch einen interruptfähigen Eingang hat.
Allerdings kann man über den Daten-Port meistens nur schreiben und nicht lesen, so dass meist nur der Status-Port genutzt werden kann.
Im Linuxmagazin gibt auch mind. einen Artikel dazu, den man über die Suche dort findet.