Aumentar resolução nativa | FullHD para monitores HD

Iniciado por dnc0, 15 de Novembro de 2016, 18:05

tópico anterior - próximo tópico

dnc0

Bom pessoal meu primeiro tópico neste fórum vai ser uma dica(quem diria!) a respeito de resoluções customizadas, algo que a pouco tempo atrás era considerado uma falácia para o grande público.
Os monitores são vendidos com uma resolução final  que impacta consideravelmente no preço e na categoria do mesmo, de forma que temos monitores  HD,FullHD,2K,4K e mais em diversas faixas de preço, porém poucas pessoas sabem que há uma técnica antiga de aumentar essa resolução, uma técnica da época dos monitores de tubo(CRT) que consistia em diminuir a taxa de atualização(Hz) e assim poder magicamente aumentar a resolução,o contrário também era possível e usado para jogadores de PC que precisam de maior "fluidez" nos Games.
Atualmente a limitação de resolução é em vários casos para "diminuir' o preço do produto(embora não faça muito sentido inicialmente), embora o hardware do monitor suporte resoluções mais altas, o fabricante limita a resolução de alguns modelos de monitores para serem de custo mais baixo que a versão "desbloqueada" que possui mais resolução(embora sejam na parte de hardware idênticas e suportem a mesma resolução) tenha um custo superior.
Mas como o monitor é limitado? Basicamente o computador(ou qualquer outro dispositivo que comunique-se com o monitor) "pergunta" quais são os parâmetros de resolução, taxa de atualização,proporção,etc que o monitor suporta, porém é o sistema operacional(no caso do computador) que determina qual configuração que irá utilizar. Para meios de compatibilidade praticamente sempre um S.O novo é instalado(Linux,Windows,etc) ele utiliza uma resolução baixa para que qualquer monitor funcione.
E como usar uma resolução maior que o fabricante especifica para o monitor? Anteriormente foi explicado que é o sistema operacional que determina qual resolução utilizar, dependendo do sistema operacional o processo muda porém o objetivo é o mesmo: ignorar as informações de parâmetros recebidas do monitor.Isso no Windows por exemplo depende da GPU do sistema, tendo procedimentos diferentes para cada marca(AMD,Nvidia,Intel), no Linux o procedimento é mais abrangente e não importa muito qual a marca ou modelo de GPU você use.
Qual a limitação do procedimento? Devo salientar que não são todos os monitores que suportam esse procedimento, talvez nem sempre consigamos utilizar uma resolução FullHD(ou mais!) em um monitor 720p,  o ganho de resolução pode ser mínimo, mais é importe salientar que em minha experiência NUNCA tive problemas nos monitores.A minha experiencia é resumida em 2 monitores que fiz funcionar: um Philips 166V(originalmente 1366x768) e um Samsung 632(originalmente 1360x768). Os resultados foram opostos, no Philips consegui a resolução máxima de 1920x1080(FullHD) um grande ganho de resolução,já no Samsung consegui um pequeno ganho de 1600x900 . Isso mostra que os resultados dependem unicamente do próprio monitor, saliento isto pois essa resolução foi alcançada no Windows e no Linux e que o sistema operacional não é um agente limitador desses ganhos para este procedimento, se no Linux seu ganho foi X, no Windows o ganho será o mesmo.
Mas como realizar este procedimento? Para descobrimos a resolução máxima suportada pelo monitor iremos realizar testes para cada resolução que queremos checar a compatibilidade, para em  seguida aplicar a mesma de forma definitiva(configurar o sistema para usá-la sempre), digo isso pois o Linux por padrão SEMPRE vai dar prioridade as parâmetros recebidos pelo monitor e depois a configuração do usuário.
1ºEtapa | Checar compatibilidade:
Escolha uma resolução para checar a compatibilidade, por exemplo FullHD, abra o terminal (ctrl + alt +t) e insira os comandos a baixo:
cvt 1920 1080
No meu computador a saida foi:
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync

O próximo comando utilizará algumas informações da saída do comando anterior. depois de "xrandr --newmode "1920x1080_58.00"  coloque a saída do comando anterior apartir de "Modeline "Resolução"
xrandr --newmode "1920x1080_58.00" SAÍDA DO COMANDO ANTERIOR!
Em meu computador o comando ficou assim:
xrandr --newmode "1920x1080_58.00" 173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
Por ultimo vamos adicionar essa resolução, onde o conteúdo entre as aspas deve ser o nome da resolução que você colocou no comando xrandr--newmode
xrandr --addmode DVI-1 "1920x1080_58.00"
Apartir desse momento, a resolução de 1920x1080 foi adicionada na lista de resoluções suportadas, porém ainda temos que testá-la para saber se funcionou.O procedimento é igual ao procedimento normal de mudar a resolução graficamente:Configurações do sistema>Monitores. A resolução "criada" anteriormente estará na lista de resoluções suportadas, escolha ela e aplique, neste momento a tela vai piscar e se o monitor suportar a resolução o monitor ficará com esta  nova resolução, caso a tela fica preta,desligada ou surja um aviso do monitor e não tenha a imagem de seu sistema então a resolução não é suportada, espere 15 segundos ou pressione 'esc' para voltar a resolução que estava usando.
Caso não funcione a nova resolução, tente diminuir um pouco a taxa de atualização do monitor(geralmente é de 60 Hz), por exemplo usei 58 Hz para a minha configuração atual.Caso mesmo assim a resolução não funcione, tente outra resolução.
Uma dica  é que alguns monitores funcionam com a nova resolução porém exibem um aviso na tela informando que a resolução é incorreta(aconteceu comigo com meus 2 monitores), porém você pode desabilitar essa mensagem entrando no menu de configuração do monitor e desabilitar algo como "aviso de resolução" (no caso do me Philips)ou esperar cerca de 30 segundos ou mais  dependendo do monitor e o aviso simplesmente desaparece(no caso do meu Samsung).
2ºEtapa | Aplicar a resolução ao iniciar o sistema
Como dito anteriormente o Linux prioriza as configurações que o monitor informa ao sistema, então cada vez que seu sistema for iniciando você terá que adicionar a resolução e aplicá-la, mais certamente isso se feito de forma manual não será nada prático,por isso iremos criar um Script que é executado sempre que o sistema for iniciado.
Um Script nada mais é que um arquivo(geralmente com a extensão .sh) que executa os comandos de terminal na ordem especificada, então basicamente é um arquivo que executa todos os comandos para adicionar a resolução e um comando extra para aplicá-la.
O Script para minha máquina é o seguinte:
#!/bin/bash
#Script para usar a resolução FULL HD
cvt 1920 1080
xrandr --newmode "1920x1080_58.00" 173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
xrandr -addmode DVI-1 "1920x1080_58.00"
xrandr --output DVI-1 --mode "1920x1080_58.00"
#-FIM-DO-ARQUIVO-#
Obs: para sua máquina utilize os comandos que VOCÊ DIGITOU NO TERMINAL! Os comandos que eu digitei funcionam na minha máquina e na minha instalação do Ubuntu, não funcionam em outro hardware e nem mesmo em uma outra distro que seja instalada na minha máquina.Isso ocorre porque o comando da segunda linha variam de computador pra computador e de distro pra distro, experiência própria porque este Script foi originalmente  escrito para meu computador para o Linux Fedora não funcionou no Ubuntu na mesma máquina.
O comando extra xrandr --output DVI-1 --mode "1920x1080_57.00" aplica a resolução que foi criada pelos comandos anteriores para a saída DVI(se você usar o HDMI, substituía o DVI por HDMi), é semelhante à abrir o menu de configurações e aplicar a nova resolução na etapa de testes.
Para sempre executar este script na inicialização do sistema, salve-o no diretório /etc/profile.d e dê permissão de execução para ele.
Passo a passo:
1º: Criar o arquivo : sudo nano /etc/profile.d/resolucao.sh
2º: Escrever no arquivo os comandos para a resolução
3º: Salvar o arquivo (ctrl + o para o editor nano)
4º:Dar a permissão de execução : sudo chmod +x resolucao.sh
Apartir daqui sempre que a maquina iniciar o script será executado configurando o monitor para a nova resolução.

A medida do possível atualizarei o artigo e talvez faça um passo a passo com fotos.
Obrigado e boa sorte! :)

creto

A vida, é feito andar de bicicleta, se parar, você cai! (Gabriel Contino)
Blog do Paulo Corrêa Creto