Há algum tempo, ao tentar atualizar meu sistema desktop do Ubuntu 18.10 para 19.04, algo falhou e terminei com um ambiente gráfico que não funcionava.
Isso me forçou a usar o console (Ctrl+Alt+F3), que estava funcionando bem. Na verdade, estava funcionando muito bem. A tela estava totalmente aproveitada, as fontes eram nítidas e, mesmo sendo pequenas, apenas por se ajustarem perfeitamente à resolução do monitor, eram altamente legíveis. Acabei tendo um espaço de trabalho muito grande. Em associação com tmux
, era um ambiente de desenvolvimento perfeito.
Me senti tão bem nesta nova configuração que negligenciei o reparo do ambiente gráfico por algumas semanas. No entanto, uma coisa que falta no modo de texto é o Firefox, e há um limite para o que eu poderia fazer sem nunca acessá-lo. Então resolvi o problema, que aparentemente estava relacionado aos drivers gráficos da nVidia. Apenas desinstalar e reinstalar resolveu o problema. E agora o ambiente gráfico funciona perfeitamente.
Então, eu não "preciso" mais exatamente do modo console, mas como gostei dele, quis usá-lo novamente e, para minha consternação, a resolução foi definida como padrão 1024x768. As fontes crips desapareceram, o texto agora está superdimensionado e borrado, reduzindo o ambiente de trabalho e apresentando uma experiência de leitura desagradável.
Então, subi em busca de alguma solução. E acontece que esta pergunta é feita com bastante frequência. Encontrei muitas variantes da mesma resposta e todas apontam para grub
.
Agora, isso é estranho, porque no cenário acima, a resolução do console foi alterada, mas grub
não foi modificada nem um pouco. Então cheira a peixe. Mesmo assim, tentei com relutância. Uma boa variante da grub
solução pode serleia aqui. Então apliquei, usando a resolução do meu monitor, mas não funcionou. A resolução ainda é baixa e borrada.
Indo mais fundo, encontro alguns conselhos sobre como selecionar um modo de vídeo, começando por listá-los usando vbeinfo
on grub
. Não funciona. Mais tarde, vejo uma nota para usar videoinfo
. Este funciona, mas lista apenas os modos de "baixa resolução", de 640 a 1280, no formato 4x3.
Finalmente,outra respostasugere usar hwinfo
, que está disponível no modo de usuário. Este lista mais modos, mas ainda não o do meu monitor.
sudo hwinfo --framebuffer
02: None 00.0: 11001 VESA Framebuffer
[Created at bios.459]
Unique ID: xxxx
Hardware Class: framebuffer
Model: "NVIDIA GPU Board"
Vendor: "NVIDIA Corporation"
Device: "GPU Board"
SubVendor: "NVIDIA"
SubDevice:
Revision: "Chip Rev"
Memory Size: 16 MB
Memory Range: 0x01000000-0x01ffffff (rw)
Mode 0x0301: 640x480 (+640), 8 bits
Mode 0x0303: 800x600 (+1024), 8 bits
Mode 0x0305: 1024x768 (+1024), 8 bits
Mode 0x0307: 1280x1024 (+1280), 8 bits
Mode 0x0311: 640x480 (+1280), 16 bits
Mode 0x0312: 640x480 (+2560), 24 bits
Mode 0x0314: 800x600 (+2048), 16 bits
Mode 0x0315: 800x600 (+4096), 24 bits
Mode 0x0317: 1024x768 (+2048), 16 bits
Mode 0x0318: 1024x768 (+4096), 24 bits
Mode 0x031a: 1280x1024 (+2560), 16 bits
Mode 0x031b: 1280x1024 (+5120), 24 bits
Mode 0x0345: 1600x1200 (+1664), 8 bits
Mode 0x0346: 1600x1200 (+3328), 16 bits
Mode 0x034a: 1600x1200 (+6656), 24 bits
Mode 0x0371: 1360x768 (+6144), 24 bits
Mode 0x0377: 1920x1080 (+7680), 24 bits
Config Status: cfg=new, avail=yes, need=no, active=unknown
Meu monitor oferece resolução nativa de 1680x1050, formato 16:10. Não está presente nesta lista. Isso parece sugerir que a placa gráfica não é capaz de lidar com isso.
No entanto, funciona perfeitamente bem no modo gráfico. E o que é ainda mais estranho é que o Modo Console em 1680x1050 costumava funcionar perfeitamente enquanto o driver gráfico estava em mau estado. De alguma forma, consertar o driver gráfico piorou a situação no modo console.
Existe algo que possa ser tentado além das ações descritas anteriormente?
editar: Tentei a sorte com o rEFInd
, que oferece uma experiência de configuração mais sensata por meio do refind.conf
. Acho que também significa que o grub2
truque não é mais válido. De qualquer forma, a configuração resolution 1680 1050
não funciona e o boot reclama imediatamente, restringindo a escolha a 640x480, 800x600, 1024x768, 1280x1024
. Então, acho que rEFInd
é limitado a selecionar um deles, provavelmente devido aos limites do suporte do nVidia VGA Bios.
No entanto, parece-me estranho que o console seja limitado a apenas "herdar" a mesma resolução do carregador de boot. E ainda não explica por que um console em 1680x1050 estava funcionando bem antes de consertar o driver gráfico.
editar 2: modificar a resolução de grub
to 1280x1024
, que é uma das resoluções permitidas por videoinfo
, é bem sucedido em modificar a resolução do Ubuntu tty para o mesmo 1280x1024
. Finalmente, algum impacto. Ele aumenta o espaço de trabalho do padrão 1024x768
, mas as fontes são ainda menos legíveis ... Ainda não há explicação de por que o uso do tty 1680x1050
estava funcionando bem enquanto os drivers da nvidia estavam em ruínas.
editar 3: Agora suspeito que, embora meu ambiente gráfico não estivesse funcionando, o driver gráfico provavelmente foi fornecido por nouveau
. Infelizmente era incompatível com minha placa gráfica porque era muito nova (é uma RTX2080). Mas de alguma forma, nouveau
tem uma implementação de framebuffer funcional que torna possível ter um console de alta resolução, algo que estranhamente está faltando nos drivers oficiais da nVidia ...
editar 4: Conforme solicitado por @Naoyuki Tai, mas executado em uma sessão remota SSH:
sudo fbset -i
mode "1024x768-76"
# D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
geometry 1024 768 1024 768 32
timings 12714 128 32 16 4 128 4
rgba 8/16,8/8,8/0,8/24
endmode
Frame buffer device information:
Name : EFI VGA
Address : 0x53000000
Size : 3145728
Type : PACKED PIXELS
Visual : TRUECOLOR
XPanStep : 0
YPanStep : 0
YWrapStep : 0
LineLength : 4096
Accelerator : No