Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Apr 1995 13:28:26 -0500 (CDT)
From:      Joe Greco <jgreco@brasil.moneng.mei.com>
To:        bakul@netcom.com (Bakul Shah)
Cc:        bde@zeta.org.au, wilko@yedi.iaf.nl, hackers@freefall.cdrom.com, pritc003@maroon.tc.umn.edu, rgrimes@gndrsh.aac.dev.com, terry@cs.weber.edu
Subject:   Re: [DEVFS] your opinions sought!
Message-ID:  <9504211828.AA12999@brasil.moneng.mei.com>
In-Reply-To: <199504211742.KAA11862@netcom7.netcom.com> from "Bakul Shah" at Apr 21, 95 10:42:23 am

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

> Aren't there gizmos that hookup to the reset button on one
> side and have an RS232 connection on the other side?  You
> have to type some magic sequence to make them do the reset.
> You hook up the serial connection to another machine that
> you can access over the net (with appropriate security
> measures).

Yes.  This, by the way, is a trivialization of another hack I currently have
underway.  I come from a land where I was used to 120-day uptimes and a
small set (2, 3) of machines to maintain.  A crash or lock was very unusual.
A lock was almost unheard of, in fact.

With the advent of 2.0R, and my transition of a few key production systems
(news server, primarily) to 2.0R, locks became a more-than-weekly occurence.
In addition, the legacy Suns are showing signs of age and are themselves
beginning to lock (hard) at strange intervals.  So, I evaluated my needs,
and am currently working on the solution.

Needs:

1) To be able to access the console of various machines, either locally or
   remotely.  Currently there are 6 machines to worry about.  More soon.
2) To be able to knock reset on arbitrary boxes.
3) To be able to power up/down arbitrary pieces of equipment - some because
   they lack accessible reset lines (Suns), some because I want them to go
   down quick and not drain the UPS's during power failures, to allow key
   systems to live longer..

I decided that I could do 1) easily enough with a FreeBSD box
("gaia.sol.net" - an absolutely perfect name :-)  ), by putting a multiport
serial card in.  I was fortunate enough not to limit myself to 8 ports - I
bought a BocaBoard 2016 from a friend.

The hard part is the resets.  It is a strict design requirement that power
cycles of gaia (etc) would not affect systems that gaia in turn controlled.  
This means that I am not able to use a PC parallel port, for example.
While I come from a hardware hack background, it's no longer an area I am
really active.  I am working with a local hardware hack to build me a little
"black box" microcontroller.  It will have a serial port on it, and talk to
one of the BB2016 ports.  It in turn will have the ability to drive an
arbitrarily high number of output ports (latches), which will control either
power or reset lines.  It will have minimal intelligence (an AT-command-set
type thing to toggle bits, etc) and will generally just act as an output
interface for the FreeBSD box.  I can beef up the power supply and audit the
code such that very-near-100% reliability and uptime can be possible.

Now, if I build a few more neurons of intelligence into it:
	a) it needs to verify that gaia is still functional.  It can do this
	   by continuing to chat with gaia over the serial line at intervals.
	   If gaia fails, reset gaia (plus other "backoff" checks).
	b) in power failure recovery situations, perhaps run some special 
	   code to bring up gaia first, and then allow gaia to orchestrate
	   a network restart.
	c) code all sorts of watchdog stuff into gaia such that gaia can
	   watch the other machines, and reset them via this controller.

A cool solution for somebody who does not have ready access to equipment.

> I have used this with SGI systems but don't know if this was
> a custom built device or not.

It's _easy_ to do with a cheap UART and a little logic.  As outlined, it's
not much more difficult (hardware-wise) to generalize it out a little more.

> Sorry, I don't have any ready references to give you but
> this'd be a piece of cake with a miniboard (a really nifty
> 6811 based controller that is very popular with the robotics
> crowd).  Another possibility is to use a BSD X-10 CP290,
> which sends X-10 commands over power lines to a module that
> will turn on / off anything connected to it.  You probably
> don't want to power cycle your computer so you'd have to
> hookup a 110V relay to the reset button.

That works, too.

... Joe

-------------------------------------------------------------------------------
Joe Greco - Systems Administrator			      jgreco@ns.sol.net
Solaria Public Access UNIX - Milwaukee, WI			   414/342-4847



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9504211828.AA12999>