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水木清华站∶精华区