Obtendo melhor resolução no modo console (drivers nVidia)

Obtendo melhor resolução no modo console (drivers nVidia)

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 grubnão foi modificada nem um pouco. Então cheira a peixe. Mesmo assim, tentei com relutância. Uma boa variante da grubsoluçã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 vbeinfoon 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 grub2truque não é mais válido. De qualquer forma, a configuração resolution 1680 1050nã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 grubto 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 1680x1050estava 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, nouveautem 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

informação relacionada