BBS水木清华站∶精华区
发信人: Hanky@FruitTea1 (骗谁啊?), 信区: Linux
标 题: 接下来是 256 ptys 的讨论
发信站: 果茶小站 (Thu May 30 03:47:38 1996)
好, 接下来谈到 256 ptys。
由於新版的 kernel 已经支援到 256 ptys, 所以我们暂时不必
对 kernel 对修改。 但其他的修改是有必要的。
* /dev/ptyXX、/dev/ttyXX 的增加
因为新的 pty、tty 的 major、minor 已重新做了安排,
我们必需使用 mknod 去增加新的 ptys, 当然旧的要先
砍掉才是。
* pty's new major number: 2
* tty's new major number: 3
* they are character special devices.
* minor number 都是从 0 到 255
这儿有一份 shell script, 可以去达到我们要的目的。
=========[mknewptys]============================================
#!/bin/bash
if [ `echo $0|cut -c1-2` = './' ]; then
progname=`echo $0|cut -c3-`
else
progname=$0
fi
makedev () { # usage: makedev name [bcu] major minor owner:group mode
rm -f $1
mknod $1 $2 $3 $4 &&
chown $5 $1 &&
chmod $6 $1
}
usage () {
echo
echo "Usage : $progname <pty major>"
echo
echo "eg: (please refer to your include/linux/major.h)"
echo
echo " $progname 2 #make ptyXX for pty_master major=2"
echo " $progname 49 #make ptyXX for pty_master major=49"
echo
exit 0
}
if [ -z "$1" ] ; then
usage
fi
if [ $[$1+0] != "$1" ] ; then
usage
else
major=$1
fi
echo Creating ptyp0 / ttyp0 to ptyEf / ttyEf
minor=0
major_slave=`expr $major + 1`
while [ $minor -le 255 ] ; do
p1=`expr $minor / 16 + 1`
p2=`expr $minor % 16 + 1`
newname=`echo pqrstuvwxyzabcde |cut -c$p1``echo 0123456789abcdef| cut -c$p2`
echo -n mknod pty$newname / tty$newname
makedev /dev/pty$newname c $major $minor root:root 666
makedev /dev/tty$newname c $major_slave $minor root:root 666
minor=`expr $minor + 1`
echo
done
echo "done."
exit 0
=======================================================================
这个 script 的执行方式很简单, 就打 mknewptys 2 就可以了。
这个 script 在 procps-0.99a.tar.gz 中也有附一份。
* 把 telnetd 及 rlogind 也换成新的, 支援 256 ptys 的版本。
请到 ftp 站抓取。
* 有些程式可能也要注意一下, 例如 crxvt (xcin) 这类 X terminal
的程式原来也只会开 ptyp0 ~ ptyzf, 而不会去开 ptya0 ~ ptyef,
所以原程式要修改。
--
,sruoY ylerecniS
heihS yrneH
BBS水木清华站∶精华区