não pode criar um arquivo especial / dev / pts / 0

3

Ao usar o midnight commander no console, não consigo "alternar" a janela (usando CTRL-o

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

no entanto, meu $TERM está definido como linux .

Após algumas pesquisas, descobri que o problema pode estar nos arquivos ausentes em /dev/pts . Eu tenho /dev/pts montado dinamicamente como devpts , mas está vazio. Quando tento copiar /dev/pts/0 de outra máquina, recebo um erro:

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

Em algum lugar, encontrei a sugestão para verificar sysctl -a | grep pty . Isso me dá:

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

Em outra máquina, onde /dev/pts/ funciona, recebo:

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

Eu não sei exatamente o que isso significa, mas parece que o problema é este:

kernel.pty.nr = 0

Alguma sugestão de como corrigir isso?

Observação : não estou usando udev . Meu /dev/ é estático (com arquivos dev estáticos com /dev/pts montados como devpts

CORRECTION : Meu / dev / pts é montado como devpts (não como tmpfs , como declarado na minha pergunta original).

UPDATE:

# 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
    
por Martin Vegter 02.10.2014 / 00:23

1 resposta

2

Verifique se sua versão de mc está compilada com o recurso subshell . Você pode verificar isso executando:

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

Uma rápida pesquisa no Google retorna os 2 resultados a seguir:

No meu laptop, quando eu chego em ctrl+o , posso ver na saída strace que o seguinte comando é invocado:

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

O terminal de onde invoquei mc era /dev/pts/8 . Assim, como o segundo link menciona, certifique-se de que cons.saver tenha acesso ao seu dispositivo de terminal.

    
por 05.10.2014 / 17:58