Anyone who has turned off a terminal used as a console for a Sun
system will know what happens and why this is a problem. Sun hardware
recognises a serial BREAK
as a command to halt the
OS and return to the ROM monitor prompt. A serial BREAK
is an out-of-band signal on an RS-232 serial port that involves making
the TX DATA line active (i.e. pulled down to less than -5V) for more than
two whole character times (or about 2ms on a 9600bps line).
Alas, this BREAK
signal is all to
easily generated by serial hardware during power-on or power-off. And
the Stallion card does, in fact, generate breaks when the power to the
PC fails. Unless fixed, this problem would mean that every Sun box
connected to the console server would be halted whenever the power
failed (due to dead power supplies, or fat-fingered operators unplugging
it, or whatever). This is clearly not an acceptable situation.
Fortunately, Sun have come up with a set of fixes for this. For
Solaris™ 2.6 and later, the kbd(1)
command can be used
to disable the ROM-on-BREAK
behaviour. This is a good start,
but leaves you out of luck in the situation where a break is needed to get into a
broken machine.
Starting with Solaris™ 8, the kbd
command can also
be used to enable an alternate break sequence using the
kbd -a alternate
command.
When this is set, the key sequence
ReturnTildeCtrl+B
(within 5 seconds) will drop to the ROM. You can enable this
permanently by editing the /etc/default/kbd
file;
see the kbd(1)
man page. Note that this alternate
break sequence is only active once the kernel has started running
multiuser and processed the default file. While the ROM is active
(during power-on and during the boot process) and while running
single-user, you still need to use a BREAK
to get to the ROM prompt.
The console client can cause the server to send a BREAK
using the escape
sequence
Esccl1.
If you have a Sun software support contract, there are patches available for Solaris™ 2.6 and 2.7 that add the “alternate break” capability integrated into Solaris™ 2.8. Solaris™ 2.6 requires patch 105924-10 or higher. Solaris™ 2.7 requires patch 107589-02 or higher.
We have added this patch to all our Solaris™ 2.6 servers, and added it (and the entry in the /etc/default/kbd file) to our jumpstart configuration so it will automatically be added to every new install.
We have confirmed by direct testing that neither the Cisco 16xx,
26xx, or Catalyst® hardware suffers from the BREAK
sent
when the Stallion card loses power. Contemporary Cisco software listens
for BREAK
signal only for first 30 seconds after
power-on or reboot.
This, and other documents, can be downloaded from http://ftp.FreeBSD.org/pub/FreeBSD/doc/
For questions about FreeBSD, read the
documentation before
contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.