How to enable more than 256 pty's?

Dag-Erling Smørgrav des at des.no
Tue Oct 2 05:30:08 PDT 2007


"Steven Hartland" <killing at multiplay.co.uk> writes:
> Any one got any pointers on this, the machine we running this app on is over
> 90% idle so I really don't want to have to install a second machine just to
> workaround a limit on the number of pty's, surely there's a way to increase
> this?

You need to change the way ptys are named in pty_create_slave() and
pty_clone() in sys/kern/tty_pty.c.  Just changing names won't help as
the sequence is also hardcoded in pty_clone().

You also need to change grantpt(), openpty() and any other userland code
which has hardcoded knowledge of the naming scheme:

des at ds4 ~% gfs pqrsPQRS
src/sys/kern/tty_pty.c: static char *names = "pqrsPQRS";
src/sys/kern/tty_pty.c:  * pts == /dev/tty[pqrsPQRS][0123456789abcdefghijklmnopqrstuv]
src/sys/kern/tty_pty.c:  * ptc == /dev/pty[pqrsPQRS][0123456789abcdefghijklmnopqrstuv]
src/contrib/telnet/telnetd/sys_term.c:  for (cp = "pqrsPQRS"; *cp; cp++) {
src/usr.sbin/ac/ac.c:                               strchr("pqrsPQRS", usr.ut_line[3]) != 0 ||
src/lib/libutil/pty.c:  for (cp1 = "pqrsPQRS"; *cp1; cp1++) {
src/lib/libc/stdlib/grantpt.c: #define  PT_DEV1         "pqrsPQRS"

Alternatively, set kern.pts.enable to 1, and find and fix the
hang-on-close bug in the pts code (if it hasn't been fixed already)

DES
-- 
Dag-Erling Smørgrav - des at des.no


More information about the freebsd-stable mailing list