Por que meus consoles virtuais estão completamente em branco?

19

Quando vou da minha sessão gráfica para um console virtual por Ctrl+ Alt+ F i(com i em 1 - 7 e 9-12), vejo uma tela completamente preta. Somente no F8 eu vejo a GUI. Nem mesmo um cursor piscando nos outros. Quando digito qualquer coisa, não consigo ver nada.

Qual é o problema e como corrigi-lo?

Meu sistema

$ uname -a
Linux pc09 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:07 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/issue
Linux Mint 17 Qiana \n \l
$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GK110B [GeForce GTX Titan Black] (rev a1)
$ lspci -k | grep -A 2 -i "VGA"
01:00.0 VGA compatible controller: NVIDIA Corporation GK110B [GeForce GTX Titan Black] (rev a1)
Subsystem: NVIDIA Corporation Device 1066
Kernel driver in use: nvidia

edit: Tentei os primeiros passos sugeridos em http://forums.linuxmint.com/viewtopic.php?f=42&t=168108 e o problema parece ser o framebuffer.

Eu fiz isso:

Esse foi um problema que incomodou os drivers proprietários da Nvidia por dois ou três anos e me afastou das distros baseadas no Ubuntu por algum tempo. Finalmente, no fórum da Nvidia, encontrei a solução que procurava. O problema surge com os drivers proprietários da Nvidia (o Nouveau não mostra esse comportamento): quando você pressiona ctrl-alt-F1, obtém apenas uma tela preta ou, na melhor das hipóteses, um cursor piscante que não faz nada. Aparentemente, o problema tem a ver com a maneira como o buffer de quadros é implementado e isso precisa ser desativado. Para ver se esse é o problema, primeiro você precisa fazer algumas pequenas modificações no / etc / default / grub - mas primeiro, faça um backup!

$ sudo cp /etc/default/grub /etc/default/grub.bak

Agora edite o arquivo digitando

$ sudo pluma /etc/default/grub

no editor, remova o comentário das linhas

#GRUB_TERMINAL=console
#GRUB_GFXMODE=640x480

removendo o #. Salve o arquivo e execute o undate-grub para implementar as alterações

sudo update-grub

Agora eu tenho (uma baixa resolução) tty trabalhando novamente :-)

Martin Thoma
fonte
Placa de vídeo e driver? O KMS está ativado e funcionando?
Jasonwryan # 23/14
Eu adicionei a saída de lspci | grep VGA. Como verifico suas perguntas sobre o KMS?
Martin Thoma 23/09
Você está usando o blob ou o nouveau? Com o driver proprietário, você pode precisar de um buffer de quadro uvesafb. As pessoas Mint deveria ter isso documentado em algum lugar ...
jasonwryan

Respostas:

10

Isso ocorre porque você está usando o driver proprietário da NVidia.

Quando eu estava no OpenSUSE com o driver proprietário, meus consoles também estavam pretos; agora que estou usando o Ubuntu novamente, eles têm um efeito ainda mais "legal": (Não se preocupe, a tela está boa!) Outras coisas legais que o driver NVidia pode fazer

A razão para isso parece ser o driver do kernel da NVidia que, uma vez inicializado pelo driver DDX (= X11 dependente de dispositivo), não pode lidar com solicitações de qualquer outro subsistema de vídeo (como fbdev, VESA, console Linux , ...).

O console ainda será ativado ao mudar para ele. Para verificar isso, tente fazer o login às cegas no console e insira algo fácil de notar, como wallou reboot:

<Your username>
<Your password>
echo "Test message" >/tmp/message; wall </tmp/message

Depois de retornar do console, você deverá ver algo assim em qualquer janela do terminal:

Broadcast message from <Your username>@<Hostname>
        (/dev/tty2) at 23:38 ...

Test message

Infelizmente, não conheço nenhuma maneira de corrigir isso, exceto pelo uso do driver OpenSource ("nouveau"). A comutação VT funciona bem usando esse driver, mas esse driver cria outros problemas (falhas espontâneas e geralmente menos desempenho no meu caso). Também não sou desenvolvedor de kernel nem desenvolvedor da NVidia, então não posso fazer muito mais do que analisar os sintomas.

ntninja
fonte
Esse é apenas um problema no console do framebuffer. Se você não usá-lo, os consoles virtuais funcionam bem.
casey
@ alexander255 veja minha edição na pergunta: consegui (parcialmente) funcionar novamente. Eu realmente não entendo o que está acontecendo aqui e o que é uma boa solução, então eu apreciaria se alguém pudesse escrever uma boa resposta.
Martin Thoma
@casey: Você propõe confiar na configuração de vídeo no momento da inicialização? Ou você executou com sucesso o SVGATextMode com uma placa nvidia moderna e seu driver proprietário?
Incnis MRSI
@IncnisMrsi Afaik, o driver proprietário da nvidia é incompatível com o framebuffer. Use noveau se você quiser os dois.
Casey
@casey: Quando foi incompatível? Em 2014, talvez, mas o driver atual me mostrou uma TUI de boa aparência (embora não tenha certeza absoluta de que era fbdev). Ī̲ chutei o nvidiamódulo da minha nova caixa somente depois que ele me desligou . A propósito, estou falando sobre modos de texto de hardware .
Incnis MRSI
1

Não conhece o sistema ubuntu muito bem, mas normalmente ttysé gerado agettydurante o processo de inicialização. Talvez os desenvolvedores do Ubuntu decidiram não fazer isso? De qualquer forma, você pode tentar como root /sbin/agetty 38400 tty2 linuxe ver se algo mudou tty2.

Normalmente esse comando está presente em algum arquivo de configuração na /etcpasta Por exemplo, na minha caixa do gentoo, /etc/inittabeu tenho

# TERMINALS
c1:12345:respawn:/sbin/agetty --noclear 38400 tty1 linux
c2:2345:respawn:/sbin/agetty 38400 tty2 linux
c3:2345:respawn:/sbin/agetty 38400 tty3 linux
c4:2345:respawn:/sbin/agetty 38400 tty4 linux
c5:2345:respawn:/sbin/agetty 38400 tty5 linux
c6:2345:respawn:/sbin/agetty 38400 tty6 linux

Você pode grep getty /etc/*ver se há um arquivo com linhas semelhantes.

jimmij
fonte
Primeiro, se um console virtual não for criado, você não poderá acessá-lo e, se existir, o cursor (normalmente) piscará lá. Segundo, gettynão tem nada a ver com os modos de vídeo, especialmente no tty1que está sempre presente. Voto negativo.
Incnis MRSI
1

Ugh. Portanto, esse problema estava me incomodando há provavelmente 18 meses. Eu consertei hoje finalmente.

Eu tive que configurar uma partição de inicialização UEFI e obter o sistema capaz de inicializar a partir dela. Ativei o efifb, simplefb e o manipulador fb genérico nas opções de pci (muitas outras combinações não funcionaram). Eu tenho uefi inicializando um kernel diretamente, nenhum gerenciador de inicialização intermediário está sendo usado.

Nenhuma combinação de porcaria usando o modo compatível com bios (simplefb, uvesafb, vesafb etc.) poderia recuperar meus VTs depois que o X11 fosse carregado. Agora posso alternar alegremente quando quebro coisas :)

Chris Lack
fonte
1
Como você conseguiu passar os parâmetros do kernel diretamente da UEFI?
sherrellbc
0

Eu também tive esse problema e minha solução alternativa foi mudar para o modo de recuperação e escolher a opção "Continuar". Quando vi a tela de login e pressionei STRG + ALT + F1, pude ver o texto de login e interagir com o sistema (para mim é importante instalar os drivers proprietários da NVIDIA, não é irônico?). Espero que minha solução alternativa também funcione para você :)

Lukas Werner
fonte