Forum: PC Hard- und Software Linuxdienste mit Atmega de-/aktivieren


von Fredolin .. (fredolin92)


Lesenswert?

Hallo liebe uC-Community,
ich habe seit einziger Zeit ein Linux Server am laufen... Ich habe es 
nun aber satt immer per Remote Control oder Webinterface die Dienste die 
ich zur Zeit nicht benötige auszuschalten. Nun ist meine Frage ob dies 
mit einem Atmega realisierbar ist? Beispiel: Eine Board mit 5-10 
Kurzhubtaster welche bei drücken einen Serverdienst z.B. MySQL, 
ausschaltet bzw, einschaltet. Ich habe bereits bei Google gesucht, nur 
fallen mir nicht die passenden Stichwörter dazu ein, um geeignete 
Ergebnisse zu finden. Habt ihr eine Idee? Ein Projekt oder Stichwörter 
nach denen ich bei Google suchen kann?

Auf eine Antwort würde ich mich sehr freuen...

von Marcel P (Gast)


Lesenswert?

UART und Serielle Schnittstelle mit Terminal auf diesem dann einfach die 
notwendigen Befehle senden. - SSH dürfte schwer werden, wenn du keinen 
"Tunnel-Rechner" benutzt.

Zum Auswerten einfach die Rückmeldung verarbeiten. (Ob via µC oder 
Rechner ist ja egal).

Mal so als kleiner Denkanstoß.

von Uhu U. (uhu)


Lesenswert?

Das ist doch eine Schnapsidee.

Viel einfacher läßt sich das durch ein GUI auf dem PC erledigen, das das 
Webinterface des Servers entsprechend bedient, wenn man auf dem GUI die 
entsprechend Checkbox bedient...

von Malte S. (maltest)


Lesenswert?

Und was wenn du da was schalten willst und der Desktop/Laptop ist gerade 
eben schlafen gelegt worden, nicht da, was auch immer? Ich würde eher 
ein kleines Touchscreen-Interface inkl. Statusanzeige machen, als nur 
ein paar Taster. Aber ne Schnapsidee ist das nicht. Okay, ich sehe nicht 
den Bedarf, die Datenbank runterzufahren, nur weil sie gerade nicht 
gebraucht wird. Geschmackssache. So oder so, ein paar schnell und ohne 
Client zugängliche Bedienelemente am Server sine ne sinnvolle Sache.

von Tom K. (ez81)


Lesenswert?

Am sinnvollsten dürfte es sein, den uC möglichst dumm zu halten, d.h. 
über die serielle Schnittstelle nur senden, dass Taste x gedrückt wurde 
(primitives Textprotokoll).

Den Rest erledigen dann ein paar Zeilen bash/Python/Perl (oder für 
Masochisten C) auf dem Server, die die serielle Schnittstelle lesen und 
passend die Dienste schalten.

von Sam P. (Gast)


Lesenswert?

Das offensichtliche übersiehst du gerade: Die Tastatur.

Schließe eine stinknormale Tastatur an. Wenn dir das zu klobig ist, gibt 
es aus dem Notebookzubehör alleinstehende 10er-Tastenblöcke. Das gibts 
auch mit USB. Meinetwegen bastel die noch etwas um, damit es deinen 
optischen Wünschen entspricht.

Und dann muss auf dem Rechner nur ein Programm laufen, das auf 
Tastendruck die entsprechenden Befehle ausführt. C-Programmierkurs 
Lektion 2 oder so.

Für visuelles Feedback gibts unter Linux diverse LCD/LED-Treiber. Da 
musst du einfach mal gucken was es an Treibern gibt und dir eine 
entsprechende Hardware kaufen/basteln.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Fredolin ... schrieb:
> Dienste die ich zur Zeit nicht benötige auszuschalten

Wieso überhaupt? Klar zu MS-DOS Zeiten hat man mal den Maustreiber 
entladen wenn man ihn nicht brauchte um mehr Speicher frei zu haben aber 
heute kümmert sich das Betriebssystem um sowas.

von Fredolin .. (fredolin92)


Lesenswert?

Läubi .. schrieb:
> Fredolin ... schrieb:
>> Dienste die ich zur Zeit nicht benötige auszuschalten
>
> Wieso überhaupt? Klar zu MS-DOS Zeiten hat man mal den Maustreiber
> entladen wenn man ihn nicht brauchte um mehr Speicher frei zu haben aber
> heute kümmert sich das Betriebssystem um sowas.

Vllt. war das Beispiel MySQL etwas dumm gewählt. Anderes Beispiel: Ich 
habe ein Kameraüberwachungssystem auf dem Linux laufen, das allerdings 
nicht immer laufen soll (Gründe spielen ja keine Rolle). Nun will ich 
außer Haus gehen und den Service-Dienst aktivieren um das 
Überwachungssystem "einzuschalten". Dazu will ich nicht extra an einem 
PC gehen um per SSH oder Webcontrolpanel den Dienst zu starten. 
Einfacher und vor allem schneller wäre eine Taste, die ich drücke 
wodurch das Überwachungssystemtool am Server gestartet wird. Um eine 
Rückmeldung zubekommen wäre ein kleines LCD Display sicher eine super 
Lösung aber eine LED würde mir für den Anfang schon reichen ;)

Vielleicht fehlen noch ein paar Infos!
Ich nutze Ubuntu Server
Es sollen einfach Scripte vom Atmega am Server ausgeführt werden 
Beispiel:
sudo /etc/init.d/beispiel start  <-- Serverdienst starten
sudo /etc/init.d/beispiel stop   <-- Serverdienst anhalten/stoppen

Und vielen Danke für die Antworten bisher!!!

von Fredolin .. (fredolin92)


Lesenswert?

Uhu Uhuhu schrieb:
> Das ist doch eine Schnapsidee.
>
> Viel einfacher läßt sich das durch ein GUI auf dem PC erledigen, das das
> Webinterface des Servers entsprechend bedient, wenn man auf dem GUI die
> entsprechend Checkbox bedient...

Wie gesagt: "Ich habe es nun aber satt immer per Remote Control oder 
Webinterface die Dienste die ich zur Zeit nicht benötige auszuschalten." 
Sich an einem PC zusetzen Passwörter einzugeben um das GUI zuverwenden 
dauert zu lange und nervt irgendwann, wenn man mal nur schnell einen 
Dienst anschalten will wenn man außer Haus geht, Beipspiel aus 
vorherigen Post: Überwachungssystem! Ein Webinterface ist ja auch nichts 
anderes als ein GUI, vllt verstehe ich dich nicht richtig aber das wäre 
meiner Ansicht nach redundant, ein GUI welches ein Webinterface 
bedient!? Das wäre das gleiche...

von (prx) A. K. (prx)


Lesenswert?

Hat der Server eine klassische serielle Schnittstelle?

von (prx) A. K. (prx)


Lesenswert?

Beispiele wenn man es nicht komplett selber bauen will:

- Eine Fernbedienung mit USB-Empfänger, die von Linux (Lirc) akzeptiert 
wird. Die hier hängt beispielsweise an meinem auf Linux basierenden VDR: 
http://www.pollin.de/shop/dt/MzIyODcyOTk-/Computer_und_Zubehoer/Hardware/Maeuse_Unterlagen_Joystick/PC_Funkfernbedienung_mit_USB_Empfaenger_X10.html
http://linuxundich.de/de/ubuntu/pc-funkfernbedienung-x10-unter-ubuntu-mit-lirc/

- IO-Warrior: http://www.codemercs.com/64/?L=0. Wie gut/schlecht es da 
mit dem Treiber aussieht weiss ich aber nicht.

von Malte S. (maltest)


Lesenswert?

Sam P. schrieb:
> Das offensichtliche übersiehst du gerade: Die Tastatur.

Ist vielleicht nicht die Variante mit dem größten Geekness-Faktor, aber 
definitiv die schnellste. USB-Ziffernblock gibt's für nen Zehner im 
Supermarkt oder für nen Fünfer beim Resteschubser um die Ecke.
Kannst ja die Tasten umbeschriften.
Dann muss der Server nur noch auf entsprechende Eingaben reagieren.

Wenn es selbstgebaut sein soll oder die Tasten wirklich sehr anders 
aussehen sollen:

Per UART:
* Irgendein AVR mit UART <=> MAX232 <=> an seriellen Port
* Irgendein AVR mit UART <=> FT232RL <=> an USB

Per VUSB als HID:
* Irgendein AVR <=> an USB

Für die letzte Variante reicht ein Tiny85 mit Charlieplexing bis 12 
Taster, wenn du den RESET-Pin opferst, sonst bis 6 Taster.
Ein eigenes HID hat den Vorteil, dass du das Device durch Verwendung 
anderer Tastencodes sauber von einer evtl. mal angesteckten normalen 
Tastatur abgrenzen kannst. Dafür aber auch ein bisschen mehr Aufwand.

Die UART-Varianten brauchen am Server einen Daemon, der /dev/ttyS* bzw. 
/dev/ttyUSB* beobachtet. Für USB HID reicht irgendwas, was eben auf 
Tastatureingaben reagiert.

von Uhu U. (uhu)


Lesenswert?

Fredolin ... schrieb:
> Sich an einem PC zusetzen Passwörter einzugeben um das GUI zuverwenden
> dauert zu lange und nervt irgendwann, wenn man mal nur schnell einen
> Dienst anschalten will wenn man außer Haus geht,

Laß deine Phantasie schweifen:
Es soll kein GUI sein, zu dessen Aktivierung man erst den Lötkolbean 
anheizen muß, sondern eines, das auf einen Klick reagiert und dann 
macht, was man ihm mit dem Klich befohlen hat:

- Sich beim Server einloggen
- die entsprechende Steuerfunktion im GUI des Servers aufrufen
- den Befehl übertragen
- ausloggen

Und das auf einen Klick im PC-GUI.

War das jetzt so schwer zu verstehen?

Und übrigens sind derlei Geschichten auf einem PC viel einfacher zum 
Laufen zu bringen, als auf einem µC - man hat dort nämlich 1000-mal 
bessere Werkzeuge und kann auch auf Änderungen in der Steueroberfläche 
des Servers viel flexibler reagieren.

von Malte S. (maltest)


Lesenswert?

Uhu Uhuhu schrieb:
> - Sich beim Server einloggen
> - die entsprechende Steuerfunktion im GUI des Servers aufrufen
> - den Befehl übertragen
> - ausloggen

Das setzt voraus, dass der Server ein GUI/WebGUI hat. Der TE will glaub 
ich eher einen unter seiner Kontrolle stehenden Server steuern und nicht 
irgendeine Appliance, wo man nur an das GUI kommt. Klar, es geht auch 
SSH statt Web-Kram, aber warum nicht direkt seriell/USB?

> Und das auf einen Klick im PC-GUI.

Und das setzt einen eingeschalteten PC voraus. Der Reiz an einem kleinen 
Bedienpanel am Server ist doch, dass man dann ein paar schnelle Aktionen 
eben auch ohne zusätzliches Gerät (Fernbedienung, Handy, PC) anstoßen 
kann.

Ohne den PC aufzuwecken
Ohne den Laptop aufzuklappen
Ohne das Handy zu ensperren
Einfach kurz im Rausgehen einen Knopf drücken

Oder willst du, um das Flurlicht auszuschalten, den PC bemühen?

von Sven K. (Gast)


Lesenswert?


von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Fredolin ... schrieb:
> Anderes Beispiel

Na gut, für so was würde ich folgendermaßen Vorgehen:
* Da hängt ein externes Gerät dran (z.B. Kamera) welches du an/aus 
schaltest und dann per udev-rule, Über das Gerät hast du dann auch 
entsprechend Feedback.
* Sowas wie I/O-Warrior hernehmen und Programm im Hintergrund laufen 
lassen + Feedback über LEDs (ich mein die Haben unterstützung für 
TastaturLEDs wenn dir 3 Stück reichen)
+ AVR an der (USB-Wandler-) Seriellen Schnittstelle + deamon Programm, 
je nach Kenntnisstand dann halt ein eigenes oder fertiges Board.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.