The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"ограничение 256 tty в 6.1"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"ограничение 256 tty в 6.1"  
Сообщение от login1 email on 08-Ноя-06, 12:50 
Для того чтобы снять ограничение во FreeBSD 6.1 256 консолей (authpf орет когда достигнут предел 256 коннектов псевдотерминалов - error: openpty: No such file or directory error: session_pty_req: session 0 alloc failed) была предпринята  неудачная попытка пропатчить /sys/kern/tty_pty.с по этой ссылке. (http://www.freebsd.org/cgi/query-pr.cgi?pr=90896).
После патча можно создать уже только 10 псевдотерминалов (ttyp0 - ttyp9)
после чего authpf опять орет - - error: openpty: No such file or directory error.
В программировании я полный ноль, помогите , Где ошибка в патче ?
Помогите кто сталкивался с подобной проблемой ? Какие пути решения нашли ? (увеличения 256 консолей) правкой /sys/kern/tty_pty.с
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "ограничение 256 tty в 6.1"  
Сообщение от lavr email on 08-Ноя-06, 18:05 
>Для того чтобы снять ограничение во FreeBSD 6.1 256 консолей (authpf орет
>когда достигнут предел 256 коннектов псевдотерминалов - error: openpty: No such
>file or directory error: session_pty_req: session 0 alloc failed) была предпринята
> неудачная попытка пропатчить /sys/kern/tty_pty.с по этой ссылке. (http://www.freebsd.org/cgi/query-pr.cgi?pr=90896).
>После патча можно создать уже только 10 псевдотерминалов (ttyp0 - ttyp9)
>после чего authpf опять орет - - error: openpty: No such file
>or directory error.
>В программировании я полный ноль, помогите , Где ошибка в патче ?
>
>Помогите кто сталкивался с подобной проблемой ? Какие пути решения нашли ?
>(увеличения 256 консолей) правкой /sys/kern/tty_pty.с

sorry, но вы смысл не понимаете, консоли и pty - несколько разные вещи, патч
НЕ ПРОВЕРЯЛ, но мельком глянул - должен работать.

1) либо воспользоваться патчем, либо внимательно посмотреть tty_pty.c:

static char *names = "pqrsPQRS";
/*
* This function creates and initializes a pts/ptc pair
*
* pts == /dev/tty[pqrsPQRS][0123456789abcdefghijklmnopqrstuv]
* ptc == /dev/pty[pqrsPQRS][0123456789abcdefghijklmnopqrstuv]
*
* XXX: define and add mapping of upper minor bits to allow more
*      than 256 ptys.
*/

выше: XXX: определите и добавьте верхние биты чтобы было более 256 ptys, а это:
*names = "pqrsPQRS" - см выше, вот *names и предлагают расширить.

верхние: "pqrsPQRS", нижние 32 = "0123456789abcdefghijklmnopqrstuv"

ниже по коду:

        pt->devs = devs = make_dev_cred(&pts_cdevsw, n, td->td_ucred,
            UID_ROOT, GID_WHEEL, 0666, "tty%c%r", names[n / 32], n % 32);

если нужно, я конечно проверю патч, но в вашей ссылке - Роберт Watson дает полный
комментарий на предмет изменения и создания нового кода ptys:

http://www.watson.org/~robert/freebsd/pts/

Правда он пока только в 7'ке (Current), но возможно используя верхнее можно в 6'ку
имплементировать.
Sorry, не смотрел будет это в 6'ке или нет...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "ограничение 256 tty в 6.1"  
Сообщение от login1 email on 09-Ноя-06, 10:58 

>НЕ ПРОВЕРЯЛ, но мельком глянул - должен работать.

Должен но не работает !
>
>1) либо воспользоваться патчем, либо внимательно посмотреть tty_pty.c:
>
>static char *names = "pqrsPQRS";
>/*
> * This function creates and initializes a pts/ptc pair
> *
> * pts == /dev/tty[pqrsPQRS][0123456789abcdefghijklmnopqrstuv]
> * ptc == /dev/pty[pqrsPQRS][0123456789abcdefghijklmnopqrstuv]
> *
> * XXX: define and add mapping of upper minor bits to
>allow more
> *      than 256 ptys.
> */
>
>выше: XXX: определите и добавьте верхние биты чтобы было более 256 ptys,
>а это:
>*names = "pqrsPQRS" - см выше, вот *names и предлагают расширить.

руками тоже правили tty_pty.c:  - не выходит.
>
>верхние: "pqrsPQRS", нижние 32 = "0123456789abcdefghijklmnopqrstuv"
и верхние правили и нижние,

пробовали так -
static char *names = "pqrstuvwPQRSTUVW";

соотв-но добавляли еще дополнительно
  case 't': u = 240; break;
  case 'u': u = 300; break;
и т.д.
испробовали все варианты - не получили ни одного дополнительного pty.
Хоть подскажите кто понял логику работы tty_pty.с

>
>ниже по коду:
>
>        pt->devs = devs = make_dev_cred(&pts_cdevsw, n, td->td_ucred,
>            
>UID_ROOT, GID_WHEEL, 0666, "tty%c%r", names[n / 32], n % 32);
>
>если нужно, я конечно проверю патч, но в вашей ссылке - Роберт
проверьте плиз на 6.1

>имплементировать.
> Sorry, не смотрел будет это в 6'ке или нет...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру