Ein Knopf zum Herunterfahren des Rechners für die serielle RS232 Schnittstelle mit LED's
ArticleCategory: [Choose a category for your article]
Hardware
AuthorImage:[Here we need a little image from you]
TranslationInfo:[Author and translation history]
original in en Guido
Socher
en to de Guido
Socher
AboutTheAuthor:[A small biography about the author]
Guido ist ein langjähriger Linuxfan. Die meiste Zeit
entwickelt er Software oder arbeitet für LinuxFocus, aber von
Zeit zu Zeit lötet er auch an der Hardware herum.
Abstract:[Here you write a little summary]
In diesem Artikel entwickeln wir einen kleiner Taster, den man an die
serielle Schnittstelle anschließt. Er kann benutzt werden, um
einen Server sauber herunterzufahren.
ArticleIllustration:[This is the title picture for your
article]
ArticleBody:[The article body]
Einleitung
Ein richtiger Server braucht normalerweise keine Tastatur,
Monitor oder gar eine Maus. Ein Server braucht ein gutes
Betriebssystem, wie z.B Linux, und eine Netzwerkkarte. Geräte
wie Maus und Tastatur stören nur. Wenn Linux auf dem Server
läuft, ist es die einfachste und beste Lösung, den Server
"remote" vom Arbeitsplatz aus bequem zu bedienen.
Beim Kauf eines Computers prüfe ich immer, daß er
eine Biosoption hat, die es erlaubt, den Rechner ohne Tastatur zu
booten. Alle guten Hersteller haben das. Einige, die immer noch
denken, daß die Leute Windows wollen, booten nicht ohne
Tastatur, aber das ist eine andere Geschichte und ich kann keinem
empfehlen, solche Hardware zu kaufen.
Solch ein Computer ohne Tastatur und Monitor ist der perfekte
Computer für eine Firewall, einen Web-Server, einen NFS File
Server, einen Mailserver, eine ADSL Gateway etc... Er muß
überhaupt kein schneller Rechner sein. Ein alter Pentium
100MHz mit genug RAM wird ohne weiteres einige hundert andere
Rechner bedienen.
Keine Tastatur angeschlossen zu haben ist gut und angenehm,
weil der Server dann nur eine kleine Kiste ist, die irgendwo in die
Ecke, ins Regal oder in den Keller paßt. Manchmal würde
man jedoch gerne einen kleinen Taster haben, mit dem man den Server
ordentlich herunterfahren kann, ohne sich zuerst einzuloggen und den
Shutdown Befehl einzugeben. Es könnte sein, das man gerade im
Serverraum ist und der nächste Arbeitsplatzrechner ist 100
Meter weg oder jemand der physikalisch Zugang zum Rechner hat, aber
kein root Passwort, muß den Rechner herunterfahen, bevor er die
Stromversorgung abschaltet.
Einfach den Strom wegzunehmen, ist meist keine gute Idee, da man
dabei Daten verlieren kann und das anschließende Hochfahren
länger dauert.
Die Lösung ist die kleine und billige Schaltung, die in
diesem Artikel vorgestellt wird.
Entwicklung der Schaltung
Wir werden eine kleine Schaltung mit 2 LEDs und einem Taster
bauen. Eine grüne Leuchtdiode zeigt an, wenn der Taster aktiv
ist und eine langsam blinkende gelbe LED zeigt, daß der
Server arbeitet oder noch dabei ist herunterzufahren. Um den Server
herunterzufahren, drückt man den Taster einfach für 3
Sekunden.
Wenn Du den Taster gedrückt hast, geht die grüne LED aus
und zeigt damit an, daß der shutdown gerade im Gange
ist. Der Befehl "/sbin/shutdown -t2 -h now" wird jetzt
ausgeführt. Die gelbe LED blinkt weiter, während der
Server noch herunterfährt. Wenn die gelbe LED aufhört zu
blinken, dann sollte man noch 10 Sekunden warten, bis man
ausschaltet. Die gelbe LED hört auf zu blinken, wenn alle
Prozesse beendet sind und nun die Platten unmounted
werden.
Falls der Computer automatisches power off unterstützt, dann
braucht man sich über die 10 Sekunden keine Gedanken zu
machen. Er schaltet sich selbst aus.
Die serielle Schnittstelle
Der interessante Aspekt der seriellen Schnittstelle ist, das es eine
Anzahl von Kontakten gibt, die man direkt über ioctl
Systemaufrufe steuern kann. Das bedeutet, man braucht keinen
speziellen Treiber im Kernel, um diese LEDs anzusteuern oder den
Taster abzufragen. Die serielle Schnittstelle hat gerade genug
Ausgangsleistung, um zwei Lowpower LEDs anzusteuern. Wir werden die
RTS und DTR Pins für die LEDs benutzen und den Taster an den
Carrier Detect Eingang anschließen.
9 PIN D-SUB Stecker (männlich) am Computer.
9 PIN-connector |
25 PIN-connector |
Name |
Dir |
Description |
1 |
8 |
CD |
input |
Carrier Detect |
2 |
3 |
RXD |
input |
Receive Data |
3 |
2 |
TXD |
output |
Transmit Data |
4 |
20 |
DTR |
output |
Data Terminal Ready |
5 |
7 |
GND |
-- |
System Ground |
6 |
6 |
DSR |
input |
Data Set Ready |
7 |
4 |
RTS |
output |
Request to Send |
8 |
5 |
CTS |
input |
Clear to Send |
9 |
22 |
RI |
input |
Ring Indicator |
Die Schaltung
Man braucht die folgenden Bauteile für die Schaltung.
- 1 grüne Lowpower LED (eine normale LED geht auch, ist aber
nicht so hell)
- 1 gelbe Lowpower LED
- 2 Widerstände 1.5K Ohm
- 1 Widerstand 6.8K Ohm
- 1 einen kleine Taster
- 1 RS232 Stecker (weiblich) mit Kabel
Die
Bauteile werden wie im Schaltbild dargestellt verdrahtet. Die
Spannung an der seriellen Schnittstelle beträgt +/- 10 Volt.
Der 1.5k Widerstand ist genau richtig für eine Lowpower LED,
aber normale LEDs tun's auch. Ich empfehle, nicht die Werte der
Widerstände zu ändern oder externe Spannungvesorgung zu
benutzen, da die Ansteuerung der RS232 Schnittstelle beim PC im
Chip-Set steckt. Wenn die Bausteine des Chip-Set kaputt gehen, braucht
man ein neues Motherboard.
Das oben zu sehende Foto zeigt die fertig geätzte
Schaltung. Ich habe leider kein Layout für die Platine. Bei
einfachen Schaltungen zeichne ich die Bahnen einfach mit
Asphaltlack direkt auf die Kupferplatine. Das ist das einfachste
Verfahren.
Die endgültige Schaltung ist auf dem Bild oben im Artikel
dargestellt. Man bohrt einfach vorsichtig 3 Löcher in die
Vorderseite des Servers. Zwei 3mmm Löcher für die LEDs
und ein Loch für den Taster. Die gesamte Schaltung ist sehr
leicht und die Schraube des Tasters reicht aus, um sie sicher zu
halten.
Die Software
Die Software besteht aus einem kleine Programm, das im Hintergrund
läuft. Es kann über ein Skript aus /etc/rc.d/rc3.d/
gestartet werden. Die Systemaufrufe ioctl(fd, TIOCMSET,...) und
ioctl(fd, TIOCMGET, ...) werden benutzt, um vom Serialport zu lesen
oder dorthin zu schreiben. Man kann sled-0.1.tar.gz einfach von dieser Seite
herunterladen. Ein Makefile und eine Installationsanleitung liegen
bei.