[LinuxPPS] pps stops when ntpd starts?

Rodolfo Giometti giometti at enneenne.com
Tue Jun 9 17:36:48 CEST 2009


On Tue, Jun 09, 2009 at 10:13:26AM -0500, William S. Brasher wrote:
> 
> Strace of ppsldisc:
> 
> execve("/usr/sbin/ppsldisc", ["/usr/sbin/ppsldisc", "/dev/ttyS0"], [/* 27 
> vars */]) = 0
> [snip]
> open("/dev/ttyS0", O_RDWR)              = 3
> ioctl(3, TIOCSETD, [18])                = 0
> pause( <unfinished ...>
> 
> And then, strace of ldattach:
> 
> execve("/usr/sbin/ldattach", ["ldattach", "-d", "18", "/dev/ttyS0"], [/* 
> 27 vars */]) = 0
> [snip]
> open("/dev/ttyS0", O_RDWR|O_NOCTTY|O_LARGEFILE) = 3
> ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B4800 -opost -isig -icanon -echo 
> ...}) = 0
> write(2, "ldattach:opened /dev/ttyS0\n"..., 27ldattach:opened /dev/ttyS0
> ) = 27
> ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B4800 -opost -isig -icanon -echo 
> ...}) = 0
> ioctl(3, SNDCTL_TMR_CONTINUE or TCSETSF, {B4800 -opost -isig -icanon -echo 
> ...}) = 0
> write(2, "ldattach:set to raw 0 ---: cflag="..., 39ldattach:set to raw 0 
> ---: cflag=0x8bc
> ) = 39
> ioctl(3, TIOCSETD, [18])                = 0
> write(2, "ldattach:line discipline set to 1"..., 35ldattach:line 
> discipline set to 18
> ) = 35
> pause( <unfinished ...>

As you can see ldattach calls ioctl() while pps does not.

The problem can be in serial8250_set_termios() if CTS flow control is
disabled...

Can you please add a printk() into serial8250_set_ldisc() and into
serial8250_enable_ms() in drivers/serial/8250.c in order to see if the
functions are called or not and with which parameters' value?

Ciao,

Rodolfo

-- 

GNU/Linux Solutions                  e-mail: giometti at enneenne.com
Linux Device Driver                          giometti at linux.it
Embedded Systems                     phone:  +39 349 2432127
UNIX programming                     skype:  rodolfo.giometti



More information about the LinuxPPS mailing list