[LinuxPPS] the ttyctrl program.

clemens at dwf.com clemens at dwf.com
Mon Jun 23 09:33:34 CEST 2008


> On Mon, Jun 23, 2008 at 6:00 AM,  <clemens at dwf.com> wrote:
> > The important point here is that the line discipline change only stay
> > effective as long as /dev/ttyS0 (or whatever) stays open.
> >
> > You can't just do ttyctrl (without -X) as the line discipline gets set, then
> > goes away.  But I consider it ugly having ttyctrl hanging forever (with -X),
> > and it would be worse to add code to ntpd to do this 'more elegantly'.
> >
> > What I would suggest would be a third option for ttyctrl, in addition to
> > (nothing) and (-X).  Perhaps even -X <number> but thats really not necessary,
> > just an option so that the program hangs for say 60seconds and then drops
> > away.  Thats more than enough time for ntpd to start and open the device
> > /dev/ttyS0, and it would get rid of this 'thing' that people are going to
> > notice and ask about.  ttyctrl could then be part of the startup script for
> > ntpd, rather than a once only thing.
> >
> > I could do that, but it would be nice if we were all playing with the same
> > set of subroutines.
> >
> 
> As ugly as it may be, I think the ntpd start script will have to
> change the ldisc on 'start' and switch it back to N_TTY on 'stop'.   I
> can't recall if the NTPD code itself ever checks what the ldisc is.
> 
> Another possible option is to have a PPS-ldisc related callback for
> pps_core to call when a pps device is opened; the callback can be used
> to set N_PPS on the first open and N_TTY when the last reference is
> closed.  If the device does not need ldisc support, it simply uses a
> 'NULL' for the callback pointer.  This would be the most transparent
> method and the best if it can be implemented cleanly.  The pppd code
> does something similar (except of course that is a userspace program,
> while the PPS thing would be in kernel space).
> 
No need for the complications.
The tty driver does this all for you.
Like I said, on the final close, the line discipline goes back to N_TTY.
So, if ttyctrl sets it, ntpd comes along and holds the N_PPS in place until 
ntpd
dies, then the device goes back to N_TTY automagically.
Its just a matter of having ttyctrl drop out of sight when no longer needed.


-- 
                                        Reg.Clemens
                                        reg at dwf.com





More information about the LinuxPPS mailing list