Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Sep 1995 07:43:06 +0200 (MET DST)
From:      J Wunsch <j@uriah.heep.sax.de>
To:        freebsd-chat@freebsd.org
Cc:        wpaul@ctr.columbia.edu, bde@kralizec.zeta.org.au (Bruce Evans), jgreco@brasil.moneng.mei.com (Joe Greco)
Subject:   Re: serial console
Message-ID:  <199509120543.HAA27982@uriah.heep.sax.de>
In-Reply-To: <199509120249.VAA18581@brasil.moneng.mei.com> from "Joe Greco" at Sep 11, 95 09:49:46 pm

next in thread | previous in thread | raw e-mail | index | archive | help
Took this to -chat, maybe somebody is going to write a FreeBSD history
some day...

As Joe Greco wrote:

> Anyways, kudos to Bill Paul(?) for his serial console work.

Credit where credit is due.

The code to use a serial _console_ has been there long since.  I
suspect it's already been in 386BSD 0.0, at least in 386BSD 0.1.  I
have checked both, 386BSD 1.0 and FreeBSD 1.0, it is there.  (This is
also the origin of the name ``COMCONSOLE'': the driver for it was the
"com" driver.)

It's been a compile-time option in all those systems.  (Unfortunately,
FreeBSD 1.0's LINT file does not mention this option.)

Bruce Evans has also maintained similar code in his "sio" driver, so i
think he deserves the credit of keeping the code actually working all
the time.

By the end of 1994, i've got an urgent need of serial _bootblocks_,
too.  I've used to maintain three machines that required it.  (Two
servers that didn't have a graphics screen all the time; one of them
is sax.de's domain backbone.  The third machine is a graphics work-
station with a deluxe graphics card and an attached Sony GDM 1934
fixed-frequency monitor, where you cannot get a picture with the
standard VGA frequencies at boot time.)  I'm probably the first one
who's been using FreeBSD with ``serial bootblocks'' then, and after
posting my patches every now and then, there were so many requests for
it that i eventually decided to put it into the CVS tree.  I've
created a subdirectory named "serialboot" under the sys/i386/boot
directory for it, and if you've got CVS access, you can still checkout
a copy of it by the date of around christmas 1994. :-)


RCS file: /home/cvs/src/sys/i386/boot/serialboot/Attic/Makefile,v
Working file: Makefile
...
----------------------------
revision 1.1
date: 1994/12/18 20:12:06;  author: joerg;  state: Exp;
This became a frequently requested item now.

The files in this directory are modified version of "biosboot".  The
only difference is in that they perform their I/O via a serial port,
so their preferrable usage is to form bootblocks for systems where the
kernel happens to have an "options COMCONSOLE".  Most of the code is
actually shared with "biosboot", and make will not (and should not)
descend into this directory by default.  It is in the responsibility
of the user to build these bootblocks instead of the original ones.
----------------------------

Bill Paul deserves the credit of mucking around with all this, adding
a keyboard probe function to the boot code (which is unfortunately
still not working reliably due to the space constraints in the boot
blocks and therefore disabled), and adding _dynamic_ serial console
configuration support for the "sio" driver, so one can have both
console variants in the same kernel, and decide at boot time which one
to use.  This was in January, 1995:


revision 1.30
date: 1995/01/20 07:48:19;  author: wpaul;  state: Exp;  lines: +37 -26
Submitted by: Bill Paul (wpaul@ctr.columbia.edu)
Obtained from:
bios boot block changed to allow booting from both the attached graphics
display and from a serial port. (A specially compiled serial boot block
is no longer necessary.) The boot block should detect the presence or
absence of a keyboard: if there is no keyboard, COM1 is turned into the
console. This simulates the behavior of the Sun boot PROMs. Unplug your
keyboard, attach a terminal to COM1 and you should be ready to go. :)
----------------------------

I've later attempted to fix the keyboard probe, it's more reliable
now, but Jordan and Poul-Henning have got too many complaints about
hung keyboards at boot time, so they did disable it again before 2.0.5
shipped.  Unfortunately, it's been disabled too badly so even the
"FORCE_COMCONSOLE" option doesn't work right in 2.0.5.  This has been
corrected in -current and -stable, so you have now the options of
either defining "FORCE_COMCONSOLE" for a permanent serial console, or
specifying the boot flag -h to toggle between both.  (There's the
third alternative to compile the bootblocks with "notyet" defined,
which should give you the keyboard probe back. :-)

-- 
cheers, J"org

joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/
Never trust an operating system you don't have sources for. ;-)



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