A @#%$&!! DO DRIVER NVIDIA

Este fim de semana o meu portátil, com o que eu levo a trabalhar desde há uns anos, avariou-se. 

De súpeto (de repente) começou a desligar-se aleatoriamente. Não é cousa da memória, do transformador eléctrico, nem da calor. Simplesmente, um falho e desliga. Fai-no também quando leva pouco tempo acesso. 


Afinal, após intermináveis provas, saquei de dentro os discos HDD e SSD e passei o mais importante ao meu sobremesa. Também é um computador velho. O antigo é um HP com processador Intel Core i5 de 2ª geração. O sobremesa tem um AMD FX, destes barulhentos. 


Pois bem. Provei com um feixe de gráficas que tenho (herdadas, como o resto do meu material informático principal) do meu irmãozinho. As AMD simplesmente não trabalhavam em Linux. O computador nem arranca ou se o fai é com só a resolução 1024x768 no monitor com conexão VGA (tenho dous monitores, um conectado com HDMI, o principal, e outro conectado por VGA com cabo soldado no monitor, de jeito que não se pode trocar). 

Afinal as únicas que são reconhecidas polo Linux Mint 21 são as gráficas nVidia. A actual é uma raríssima GF108, FeForce GT 630. Em Windows 10 vai mui bem, no Linux...

No Linux esta gráfica só funciona com o driver proprietário. O driver livre simplesmente dá um ecrã em negro e é preciso reiniciar em modo de recuperação para podermos instalar o driver nvidia ou usar uma das instâncias CTRL+F... (modos sem interface gráfica). 

O driver Nvidia proprietário tem um problema: nem sempre detecta todas as resoluções. No meu caso os monitores são os dous iguais: 17 polegadas com relação de aspecto de 5:4 a 1280x1024 píxeis de resolução. 

O caso é que levo várias semanas tentando dar-lhe ao segundo monitor (o VGA) a sua verdadeira resolução de 1280x1024_60, exactamente a mesma do outro monitor com HDMI. E não podia. Por riba há um estranho bug com estes drivers, de jeito que o rato e o teclado sem fios chegado certo momento começam a ter comportamentos erráticos, falências esquisitas que consistem em que o rato perde precisão  e o teclado começa a repetir letras e ter um importante lag que por vezes fai impossível escrever. 

Como bem sabe quem tenha lido este blogue, há um método para adicionar resoluções custom em geral no Linux. Usam-se uma série de comandos no terminal, como mostro aqui, começando por xrandr para saber os nomes dos ecrãs no Linux que temos, depois cvt com os números da resolução e finalizando por a obtenção duma "Modeline" com todos os dados para que essa resolução funcione. 

O problema é que com o Driver Nvidia proprietário não é compatível com isto (vou entendedndo o dedo que Torvalds mostrou a Nvidia), nem com o sistema MESA do Linux. De jeito que tem sempre problemas, sem falarmos das placas gráficas que simplesmente não tenhem suporte para o Linux. 

Mas há mui poucos minutos conseguim por fim fazer funcionar o meu monitor bem, e polo momento parece que o teclado também trabalha normalmente. 

Como?

Pois procurando a info em Internet, logicamente. 

Linux Mint tem a vantagem de estar baseada em Ubuntu, que é o principal Linux baseado en Debian. Isto amplia muito as possibilidades. Polo geral é melhor fazer as pesquisas em inglês quando o tema é Linux Mint. E fugir dos foros oficiais, porque polo geral são muito básicos e não há soluções bem filtradas para problemas complicados. Não são foros mui técnicos, na verdade. Sei que pode soar injusto, mas poucas vezes a info no foro de Linux Mint me tem servido para solucionar problemas difíceis. 

Nos foros oficiais, de todos jeitos, falavam -superficialmente- do tema. Davam um procedimento para podermos modificar a resolução desde nvidia-settings (o painel de controlo da Nvidia), em modo gráfico. Mas o problema é que no meu caso dava só uma resolução "ampliada" de 1024x768 a 1280x1024, polo que toda a imagem no segundo monitor via-se embaçada, fora de foco. Mui desagradável. Além do mais, o controlo da Nvidia não deixava guardar as mudanças e provei todos os métodos propostos no foro oficial de Mint e de Ubuntu sem bons resultados. 

Mas fazendo uma pesquisa como "nvidia-settings unable to open x config file for writing" que era a mensagem que o painel dava, conseguim encontrar esta resposta num foro na web da Nvidia:

https://forums.developer.nvidia.com/t/cant-save-to-x-configuration-file-on-nvidia-settings/185069

E ali, o usuário aaerolla respondeu isto:

adding x permission to /usr/share/screen-resolution-extra/nvidia-polkit fixed the issue for me

sudo chmod u+x /usr/share/screen-resolution-extra/nvidia-polkit

E já puidem guardar as mudanças no nvidia-settings, porque finalmente o arquivo /etc/X11/xorg.conf fora criado e ali Nvidia guardava os dados usando a sintaxe típica desse arquivo!

Então eu pensei: deve haver uma maneira de introduzir aqui a resolução boa. 

Então figem de novo a pesquisa para resoluções custom. Desta vez tecleei: "nvidia-settings custom resolution linux" no Google. E voilà! Apareceu uma web:

https://unix.stackexchange.com/questions/387735/how-to-set-a-custom-resolution-with-nvidia-drivers-installed

E ali estava a solução. Após usar o comando 

$ cvt 1280 1024

A saída foi:

# 1280x1024 59.89 Hz (CVT 1.31M4) hsync: 63.67 kHz; pclk: 109.00 MHz

Modeline "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync

E segundo explica o usuário geekformoney, só resta adicionar essa linha "Modeline..." na secção "Monitor" do arquivo /etc/X11/xorg.conf. Este é o meu xorg.conf actual. E agora funciona bem! Foi só entrar de novo no sistema e modificar a posição dos ecrãs e escolher a resolução no painel de Nvidia. 


E finalmente puidem passar de ter isto:



a isto outro:




Comentários

Mensagens populares deste blogue

Foçando no WINE - Animal Jam já funcionou em Linux!

Photopea: um Photoshop para Linux