On Wed, Oct 29, 2008 at 06:59:13AM +0100, Ed Schouten wrote:
> ...
> > .if ${OSVERSION} < 600000
> > GPSMAN_DEFAULT_PORT?= /dev/cuaa0
> > .elif ${OSVERSION} < 800045
> > GPSMAN_DEFAULT_PORT?= /dev/cuad0
> > .else
> > GPSMAN_DEFAULT_PORT?= /dev/cuau0
> > .endif

> Yes. That seems to be okay. I think you could already remove the cuaa0
> entry, because I'm not sure if we support RELENG_5 anyway?

Not sure; it doesn't hurt to leave it in for now, so I'm not fussed
about it. :-}

> ...
> > I suppose I could try using ktrace(1) to get a better idea what's going
> > on. Any other (better?) ideas?

> I think the best thing to try is to see what the error code is the
> open() call on the TTY returned. EPERM is possible, but it's more likely
> you got an ENXIO or EBUSY. You could add printf's to sys/kern/tty.c's
> ttydev_open() to see where it falls through.

It was EBUSY. And seeing that reminded me that when I run CURRENT on my
laptop, I have it configured to use the serial port (singular) as a
console. And I have getty(8) listening on it so I can login to the
laptop even for those times when the keyboard becomes unresponsive....

Running "conscontrol delete cuau0" addressed the first issue; whacking
/etc/ttys & sending init(8) a SIGHUP addressed the second.

Those done, GPSMan was able to use the serial port as intended.

Sorry for the noise/false alarm/foot-shooting. :-}

> Another life saving tool is pstat(8). It gives you a list of TTY's on
> the system. The `STATE' column should reveal some of the flags that are
> currently set in the TTY, which is useful when looking through
> ttydev_open(). You could also run `show all ttys' in DDB and use `show
> tty ' to dump all state of the TTY in question.

Ah; thanks.

> Please let me know if you discover any new issues/run into any problems.
> Thanks!

All clear! :-)

(And it appears that Tcl isn't at fault, either. :-})

David H. Wolfskill david@catwhisker.org
Depriving a girl or boy of an opportunity for education is evil.

See http://www.catwhisker.org/~david/publickey.gpg for my public key.

Version: GnuPG v1.4.0 (FreeBSD)

iEYEARECAAYFAkkIbEgACgkQmprOCmdXAD2l0ACaAmB14oCe+J tasx+QXjmm4HZy