nixp.ru v3.0

21 октября 2017,
суббота,
19:05:38 MSK

DevOps с компанией «Флант»
Larin написал 4 июля 2005 года в 11:52 (307 просмотров) Ведет себя неопределенно; открыл 2 темы в форуме, оставил 4 комментария на сайте.

После смены ядра 2.4 на ядро 2.6.7 rxvt выдаёт такую ошибку.

Подскажите плз какую опцию в конфиге надо включить?

Genie

настроить ядро: в .config-файле ядра

CONFIG_DEVPTS_FS=y

примонтировать файловую систему: в файл /etc/fstab

devpts /dev/pts devpts defaults 0 0

rgo

Genie:

У меня тоже такое было… Я проблему решил правкой сорцов rxvt. Сейчас глянул в /etc/fstab:

devpts     /dev/pts     devpts     gid=5,mode=620    0  0

Это, по-моему, ничего кардинально не меняет? Ошибка возникала при попытке открыть файл (если не ошибаюсь) /dev/tty, то есть rxvt хотел дескриптор контролирующего теминала, а 2.6 делает /dev/tty директорией содержащей файлы s0, s1,… Ну и не срабатывает подход rxvt. я заменил /dev/tty на /dev/vc/0 теперь усе работает.

И честно говоря кроме правки сорцов или настройки udev (поможет ли?) других способов не знаю. Но был бы рад узнать :)

metal
rgo
Genie:

И честно говоря кроме правки сорцов или настройки udev (поможет ли?) других способов не знаю. Но был бы рад узнать :)

На мой взгляд правильный способ настроить udev, надо сделать настройку создания символических ссылок в правилах для терминалов

Larin
Genie
настроить ядро: в .config-файле ядра

CONFIG_DEVPTS_FS=y

примонтировать файловую систему: в файл /etc/fstab

devpts /dev/pts devpts defaults 0 0

обидно. но не помогло

rgo
metal
На мой взгляд правильный способ настроить udev, надо сделать настройку создания символических ссылок в правилах для терминалов

Да-да мне тоже кажется что это правильнее. А зачем в ядре такие названия? Я это к чему спрашиваю, если делать симлинк /dev/tty то директория /dev/tty перестанет существовать, и что дальше делать.

А как, кстати, делается в дистрибутивах которые на 2.6 ориентированы?

Genie
обидно. но не помогло

ну..

ещё надо:

$ make menuconfig
.. Device Drivers ---> Character devices --->
[*] Unix98 PTY support
[*] Legacy (BSD) PTY support
Larin
Genie
ну..

ещё надо:

$ make menuconfig
.. Device Drivers ---> Character devices --->
[*] Unix98 PTY support
[*] Legacy (BSD) PTY support

вроде бы все стоит…но не работает

metal
rgo
Да-да мне тоже кажется что это правильнее. А зачем в ядре такие названия? Я это к чему спрашиваю, если делать симлинк /dev/tty то директория /dev/tty перестанет существовать, и что дальше делать.

А как, кстати, делается в дистрибутивах которые на 2.6 ориентированы?

Ну линк должен быть не /dev/tty, а /dev/ttyXX, к сожалению нет сейчас возможности посмотреть — мой ноутбук сдох :(

rgo

линк должен быть именно /dev/tty, ибо после fork, child процесс rxvt пытается открыть /dev/tty как файл устройства, И есессно получает errno: `Is a directory’.

tar -jxf rxvt-2.7.10.tar.bz2
cd rxvt-2.7.10/src
mv ptytty.c ptytty.c.bak
sed 's/"\/dev\/tty"/"\/proc\/self\/fd\/0"/' < ptytty.c.bak > ptytty.c

а дальше configure, make, etc

Насчёт других версий не скажу, а с 2.7.10 работает.

Genie

насколько я понимаю, официальное мнение находится тут:

http://cvs.sourceforge.net/viewcvs.py/rxvt/rxvt/INSTALL?rev=1.11

NB: If you were able to compile OK but running rxvt prints out

«rxvt: could not obtain control of tty»

running «make tests» from this directory (or from src/test)

should give you a breakdown of the failure point which is

useful to the developers in fixing the problem

Larin

ура !!! все получилось. все проблемы решаются обновлением udev-rules из slackware-current