"cu: Got hangup signal" on sio0 probe

Jeremy Chadwick koitsu at FreeBSD.org
Thu May 10 12:36:15 UTC 2007

On Thu, May 10, 2007 at 09:34:55AM +0200, Jeremie Le Hen wrote:
> On Wed, May 09, 2007 at 04:06:19PM -0700, Jeremy Chadwick wrote:
> > On Thu, May 10, 2007 at 12:19:27AM +0200, Jeremie Le Hen wrote:
> > > % obiwan:root# cat /boot.config 
> > > % -D
> > > % obiwan:root# grep ttyd0 /etc/ttys  
> > > % ttyd0   "/usr/libexec/getty std.9600"   dialup  on secure
> > > 
> > > This works correctly but on startup, when the kernel probes sio0,
> > > I get "Got hangup signal".  Is it expected?
> > 
> > I wonder if that's some sort of reference to carrier detect being
> > wired wrong on whatever device or adapter you have connected to
> > your serial port.
> > 
> > However, I can't find this string referenced anywhere in the kernel
> > source code for RELENG_6.  An (admittedly bad) egrep shows:
> > 
> > $ egrep -r "Got .+ signal" /usr/src
> > /usr/src/contrib/amd/amd/nfs_start.c:    /* Got a signal */
> > /usr/src/usr.bin/make/job.c: *  Got a signal. Set global variables and hope that someone will
> > /usr/src/usr.sbin/bluetooth/bthidd/bthidd.c:    syslog(LOG_NOTICE, "Got signal %d, total number of signals %d",
> > /usr/src/usr.sbin/bluetooth/hcsecd/hcsecd.c:    syslog(LOG_DEBUG, "Got signal %d, total number of signals %d",
> > /usr/src/usr.sbin/bluetooth/sdpd/main.c:        log_notice("Got signal %d. Total number of signals received %d",
> > 
> > What version of FreeBSD are you referring to?
> cu(1) was running on RELENG_4 :-).  But I expected to problem to be on
> the remote side, a RELENG_6 box.

I'm sure you know RELENG_4 has been decomissioned/is no longer
supported.  :-)

RELENG_4 has a couple references to the string, but only in userland
utilities -- I see no evidence of this message coming from the kernel
when sio0 is probed (I read "probed" as "when sio0 is detected and
configured by the kernel during boot-time").

The most likely culprits are these:

/usr/src/gnu/libexec/uucp/common_sources/log.c:           ulog (LOG_ERROR, "Got %s signal", azSignal_names[isig]);
/usr/src/sbin/startslip/startslip.c:            syslog(LOG_INFO, "%s: got hangup signal", username);

As pointed out, I don't find any evidence of these strings in RELENG_6.

The entry for uucp/common_sources/log.c will output "Got hangup signal"
if SIGHUP (kill -HUP) is sent to the program.  The actual string
("hangup") that gets sent is defined in uucp/common_sources/uudefs.h.
The logging is done via syslog(), level LOG_ERROR, which means the
output could end up a console (read: serial console) since the default
syslog.conf on FreeBSD says *.err --> /dev/console.

sbin/startslip/startslip.c will output "got hangup signal" on a SIGHUP
(kill -HUP) when someone is logged in.  It gets logged via syslog(),
level LOG_INFO.  Again, same rules apply to the syslog.conf.

Other than these two examples, I don't see how you're getting the
message you're seeing.  My guess is that you're using uucp.

> > Consider using uart(4) as a possible alternative, but depending upon
> > the answer to the above question, this might not be applicable.
> > 
> > I wrote some directions on how to get uart(4) to work, and one caveat I
> > found when attempting to use it.  Those docs are here:
> > 
> > http://jdc.parodius.com/freebsd_uart.txt
> Do you mean on the client or server side?

The directions apply to whatever machine you want to use uart(4) on as a
replacement for sio(4).  But this doesn't matter because you're using a
RELENG_4 box and not RELENG_6 (uart(4) isn't available in 4.x).

| Jeremy Chadwick                                    jdc at parodius.com |
| Parodius Networking                           http://www.parodius.com/ |
| UNIX Systems Administrator                      Mountain View, CA, USA |
| Making life hard for others since 1977.                  PGP: 4BD6C0CB |

More information about the freebsd-stable mailing list