не может создать специальный файл / dev / pts / 0

При использовании midnight commander в консоли я не могу «переключать» окно (используя CTRL-o

Not an xterm or Linux console; the panels cannot be toggled 

однако мой $TERM установлен в linux .

После некоторых поисковых запросов я нашел предложения о том, что проблема может отсутствовать в файлах /dev/pts . У меня /dev/pts установлен динамически, как devpts но он пуст. Когда я пытаюсь скопировать /dev/pts/0 с другого компьютера, я получаю сообщение об ошибке:

 cannot create special file /dev/pts/0 Operation not permitted 

Где-то я нашел предложение проверить sysctl -a | grep pty sysctl -a | grep pty . Это дает мне:

 # sysctl -a | grep pty kernel.pty.max = 4096 kernel.pty.nr = 0 kernel.pty.reserve = 1024 

На другой машине, где /dev/pts/ works, я получаю:

 # sysctl -a | grep pty kernel.pty.max = 4096 kernel.pty.nr = 8 kernel.pty.reserve = 1024 

Я не знаю точно, что это значит, но похоже, что проблема такова:

 kernel.pty.nr = 0 

Любые предложения, как это исправить?

Примечание . Я не использую udev . Мой /dev/ статичен (со статическими файлами dev с /dev/pts установленными как devpts

КОРРЕКЦИЯ : My / dev / pts монтируется как devpts (не как tmpfs , как указано в моем первоначальном вопросе).

ОБНОВИТЬ:

 # ls -ld /dev/pt* /dev/pts/* ls: cannot access /dev/pts/*: No such file or directory crw-rw-rwT 1 root root 5, 2 Oct 2 00:57 /dev/ptmx drwxr-xr-x 2 root root 0 Sep 30 17:31 /dev/pts # grep /dev /proc/mounts /dev/root / ext2 rw,relatime 0 0 devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620 0 0 

Проверьте, скомпилирована ли ваша версия mc с помощью функции subshell . Вы можете проверить это, выполнив:

 $ mc -V ... With subshell support as default ... 

Быстрый поиск Google возвращает следующие 2 результата:

  • Re: Не подошва в mc с экраном
  • MC не дает подоболочку для обычных пользователей

На моем ноутбуке, когда я нажимаю ctrl+o , я вижу на выходе strace следующую команду:

execve("/usr/lib/mc/cons.saver", ["cons.saver", "/dev/pts/8"], [/* 136 vars */]) = 0

Терминал, из которого я вызвал mc был /dev/pts/8 . Так как вторая ссылка упоминает, убедитесь, что cons.saver имеет доступ к вашему терминальному устройству.