svn commit: r285217 - head/usr.sbin/bhyve
John-Mark Gurney
jmg at funkthat.com
Mon Jul 6 21:52:27 UTC 2015
Ian Lepore wrote this message on Mon, Jul 06, 2015 at 14:11 -0600:
> On Mon, 2015-07-06 at 19:33 +0000, Neel Natu wrote:
> > Author: neel
> > Date: Mon Jul 6 19:33:29 2015
> > New Revision: 285217
> > URL: https://svnweb.freebsd.org/changeset/base/285217
> >
> > Log:
> > Always assert DCD and DSR in bhyve's uart emulation.
> >
> > The /etc/ttys entry for a serial console in FreeBSD/x86 is as follows:
> > ttyu0 "/usr/libexec/getty 3wire" vt100 onifconsole secure
> >
> > The initial terminal type passed to getty(8) is "3wire" which sets the
> > CLOCAL flag. However reset(1) clears this flag and any programs that try
> > to open the terminal will hang waiting for DCD to be asserted.
> >
> > Fix this by always asserting DCD and DSR in the emulated uart.
> >
> > The following discussion on virtualization@ has more details:
> > https://lists.freebsd.org/pipermail/freebsd-virtualization/2015-June/003666.html
> >
> > Reported by: jmg
> > Discussed with: grehan
>
> This seems like a wrong fix. A real 3-wire serial console doesn't have
> DCD and DSR wired on. Why isn't the right fix here having the user with
> this problem to do "stty -f /dev/ttyu0.lock clocal", maybe in rc.local?
>
> Hmmm, or maybe it would be right for getty to do the equivelent when it
> sees a 3wire type?
This seems more sane to me...
Ok, so I just tested on real hardware, and something is wrong w/
FreeBSD's behavior... Could this be a change between 10 and HEAD?
One a real machine (I manually added 3wire from HEAD so /etc/ttys is
exactly the same between the two):
# uname -a
FreeBSD 10.1-STABLE FreeBSD 10.1-STABLE #102: Mon Jun 22 18:28:28 PDT 2015 jmg at carbon.funkthat.com:/a/home/jmg/consulting/netflix/new_sys/amd64/compile/bhgdb amd64
# echo $TERM
vt100
# stty -a | grep clocal
cflags: cread cs8 -parenb -parodd -hupcl clocal -cstopb -crtscts -dsrflow
# reset
Erase is backspace.
# stty -a | grep clocal
cflags: cread cs8 -parenb -parodd -hupcl clocal -cstopb -crtscts -dsrflow
and under bhyve:
# uname -a
FreeBSD 11.0-CURRENT FreeBSD 11.0-CURRENT #11 r284880M: Fri Jul 3 14:14:49 PDT 2015 jmg at carbon.funkthat.com:/a/obj/a/home/jmg/FreeBSD.svn/HEAD/sys/IPSEC amd64
# echo $TERM
vt100
# stty -a | grep clocal
cflags: cread cs8 -parenb -parodd hupcl clocal -cstopb -crtscts -dsrflow
# reset
<screen clears here, unlike real hardware>
# stty -a | grep clocal
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
I check and both .init and .lock have the same settings... reset -S
both return the same termcap entry...
--
John-Mark Gurney Voice: +1 415 225 5579
"All that I will do, has been done, All that I have, has not."
More information about the svn-src-head
mailing list