Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: zsh on serial line?



On May 1, 11:48am, Thomas wrote:
} Subject: zsh on serial line?
}
} I have a digital VT510 which I connected to my PC's second serial port,
} /dev/ttyS1, and on the linux box, I started "mgetty -r /dev/ttyS1".
}[...]
} [snipped lots of syscalls]
} readlink("/proc/self/fd/0", "/dev/ttyS1", 4095) = 10
} open("/dev/ttyS1", O_RDWR|O_NOCTTY|0x8000
} 
} Uhm. It stops when trying to open /dev/ttyS1 - what is it waiting for?

It must be this code in init.c:

    /* Make sure the tty is opened read/write. */
    if (isatty(0)) {
        zsfree(ttystrname);
        if ((ttystrname = ztrdup(ttyname(0)))) {
            SHTTY = movefd(open(ttystrname, O_RDWR | O_NOCTTY));

The kernel probably thinks that ttyS1 is a modem line and is imposing the
"two-device / kernel-locking scheme" mentioned under the -b option in the
mgetty manual page.

} How can I change that?

Try using "setserial ^session_lockout ^pgrp_lockout" on the line, but I've
never actually done that so I don't know if it will make any difference.

If that doesn't help, try commenting out the `SHTTY = ...' line so that
the code falls through to this later bit:

        if (SHTTY == -1 && rdwrtty(0)) {
            SHTTY = movefd(dup(0));
        }

However, I'd be concerned that you're going to have problems with any
program that tries to open /dev/tty or /dev/fd/0 or /proc/self/fd/0, so
you probably want to get this cleared up at the device level rather than
in the zsh code.

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   



Messages sorted by: Reverse Date, Date, Thread, Author