Ein Knopf zum Herunterfahren eines Debian basierten Fileservers

Bei der Rea­li­sie­rung des Vor­schlags von Gui­do Socher (sie­he http://main.linuxfocus.org/Deutsch/January2001/article186.shtml) auf ver­schie­de­nen Rech­nern und für unter­schied­li­che Ker­nel-Ver­sio­nen hat­te ich eini­ge Pro­ble­me, über deren Behe­bung ich hier berich­ten möch­te.

Schal­tung

Die Schal­tung von Gui­do wur­de mit einer Ände­rung über­nom­men. Um sicher­zu­stel­len, dass der Ein­gang CD bei Nicht­be­tä­ti­gung des Schal­ter auf logisch Null liegt, muss­te Anschluss NC des Schal­ters mit GND ver­bun­den wer­den.

Zur Ver­schal­tung der Bau­tei­le habe ich kei­ne selbst geätz­te Schal­tung ein­ge­setzt son­dern eine Loch­ras­ter­pla­ti­ne.

Nach dem Boh­ren der Löcher für den Tas­ter (links) und dem Unter­bre­chen der Lei­ter­bah­nen mit Hil­fe eines Boh­rers konn­te ich die Bau­tei­le ein­lö­ten. Der Län­ge der Anschluss­bei­ne der bei­den LEDs habe ich an dem vor­her gebohr­ten Gehäu­se ermit­telt.

Um die Schal­tung auch an einem ande­ren PC zu ver­wen­den zu kön­nen, habe ich sie in ein klei­nes Gehäu­se ein­ge­baut.

Soft­ware

Stan­dard­mä­ßig wird auf den bei­den Debi­an basier­ten File­ser­vern c´t‑Server 1.1 und Ubun­tu-Ser­ver 8.04.3 LTS kein C‑Compiler instal­liert. Die­ses ist nach­zu­ho­len.

  • Paket­quel­len in /etc/apt/sources.list über­prü­fen und gege­be­nen­falls mit nano edi­tie­ren
  • apt-get update
  • apt-get install gcc
  • apt-get install build-essen­ti­al für Hea­der Files, nach der Instal­la­ti­on befin­den sich die Datei­en ioctl.h, stat.h und types.h im Ord­ner /usr/include/sys
  • apt-get install setse­ri­al um zu über­prü­fen, wel­che seri­el­len Ports zur Ver­fü­gung ste­hen

Auf einem Cli­ent, der an den File­ser­ver ange­schlos­sen ist, die Datei sled‑0.3.tar.gz von der oben genann­ten Sei­te auf linuxfocus.org her­un­ter­la­den und aus­pa­cken (geht auch auf einem Win­dows-Sys­tem mit fil­zip)

Auf dem Ser­ver mit mkdir /usr/src/sled ein ent­spre­chen­des Ver­zeich­nis erstel­len, dort­hin über das home-Ver­zeich­nis des ange­mel­de­ten Users die Datei­en Make­file, sled.c und sled_rcSuse vom Cli­ent auf den Ser­ver kopie­ren, anschlie­ßend die Datei sled_rcSuse in sled_rc umbe­nen­nen

Eine Kopie von Make­file anle­gen: cp Make­file Makefile.old

Make­file mit nano edi­tie­ren, wegen des Auf­baus des File­sys­tems von Debi­an basier­ten File­ser­vern in allen Pfad­an­ga­ben ”rc.d/” und Aus­druck mit “rc5.d” löschen

sled_rc mit nano edi­tie­ren, wegen des Ver­hal­tens von udev beim Boo­ten Zei­le DEVICE=/dev/led auf DEVICE=/dev/ttyS1 ändern

run ”make” to com­pi­le the soft­ware

run ”make install” to install the pro­gram ”sled” and the rc.d‑script ”sled_rc”

test sled on ist own by run­ning sled /dev/ttyS1

kill the sled pro­cess by run­ning kill­all sled

test the rc script by run­ning /etc/init.d/sled_rc start

crea­te a link from /etc/rc2.d/S99sled to /etc/init.d/sled_rc:

  • cd /etc/rc2.d
  • ln ‑s /etc/init.d/sled_rc S99sled

Test durch Boo­ten und Her­un­ter­fah­ren des Ser­vers