
Estou tentando executar um monitor Samsung SyncMaster 226 NW com um adaptador HDMI para VGA no Debian 10. A GPU é uma RTX 2060 Super, com drivers proprietários da Nvidia da versão 440.64.
No Linux, as únicas resoluções detectadas como utilizáveis são 1280x720, 1024x768, 800x600 e 640x480.
No entanto, a resolução nativa real é 1680×1050 e, durante a inicialização dupla do Windows, essa resolução pode ser definida e usada.
Tentei usar xrandr
para adicionar uma resolução personalizada, primeiro usando cvt
para gerar o modeline. O comando usado para criar um novo modo para o xrandr foi
xrandr --newmode "1680×1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync
Depois de fazer isso, a execução xrandr
retornou
Screen 0: minimum 8 x 8, current 1024 x 768, maximum 32767 x 32767
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 304mm x 228mm
1024x768 60.00*+ 60.00
1280x720 60.00
800x600 60.32
640x480 59.94
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 disconnected (normal left inverted right x axis y axis)
DP-5 disconnected (normal left inverted right x axis y axis)
USB-C-0 disconnected (normal left inverted right x axis y axis)
1680x1050_60.00 (0x1e4) 146.250MHz -HSync +VSync
h: width 1680 start 1784 end 1960 total 2240 skew 0 clock 65.29KHz
v: height 1050 start 1053 end 1059 total 1089 clock 59.95Hz
Porém, ao tentar usar
xrandr --addmode HDMI-0 "1680×1050_60.00"`
o erro
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 18 (RRAddOutputMode)
Serial number of failed request: 43
Current serial number in output stream: 44
foi devolvido. Usando
xrandr --output HDMI-0 --mode "1680×1050_60.00"
devolvida
xrandr: não é possível encontrar o modo 1680x1050_60.00` como um erro.
Como defino corretamente a resolução de saída para 1680x1050?
Responder1
Acabei de passar de 2 a 3 horas exatamente no mesmo problema. Tão irritante que o xrandr parece não funcionar com os novos drivers da nvidia. Agora, depois de ficar louco e furioso, finalmente encontrei uma solução, esperando que funcione para você também.
Inicie no terminal "nvidia-settings", mude para "X Server Display Configuration", clique no botão na parte inferior "Salvar no arquivo de configuração X" e depois em "Mostrar visualização". Agora nesta prévia vá até o bloco 'Seção "Monitor"..... EndSection' e salve-o para mais tarde. Foi assim que descobri as configurações do meu monitor para o xorg.conf. Observe que existem outras maneiras, mas esta deve ser bastante segura e conveniente para usuários da nvidia.
Então pegue o “Modeline” para sua resolução, digite no terminal:
cvt 1680x1050
e salve a saída para mais tarde.
Ok, agora você só precisa adicionar tudo isso em um arquivo xorg.conf, chame-o, por exemplo, /etc/X11/xorg.conf.d/10-monitor.conf (esse é pelo menos o caminho para minha distro). Como não tenho sua Monitor-Section nem sua Modeline vou dar um exemplo com minha monitor-section e minha modeline (minha resolução desejada/não detectada era 1920x1080):
Section "Monitor"
Identifier "Monitor1"
VendorName "Unknown"
ModelName "Acer B246HL"
HorizSync 30.0 - 80.0
VertRefresh 55.0 - 76.0
Option "DPMS"
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
EndSection
Section "Device"
Identifier "Card0"
Driver "nvidia"
Option "HDMI-0" "Monitor1"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor1"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1920x1080_60.00"
EndSubSection
EndSection
Portanto, na seção Monitor, você apenas mantém a primeira linha (Identificador) e substitui o restante pelo salvamento das configurações da nvidia, além da última linha ser a saída do seu comando cvt. A seção de dispositivos deve servir para você. A seção da tela só precisa da linha "Modos" alterada para o nome do seu modo, então provavelmente algo como Modos "1680x1050_60.00"
Na minha seção de dispositivos também há uma linha 'BusID "PCI:39:0:0"', mas acho que você não precisa disso. No entanto, recebi essa linha ao executar "X -configure" (o xorg não deve estar em execução). O BusID deve estar no xorg.conf.new gerado. Estranhamente, no meu caso era diferente do BusID do lspci.
Além disso, se você quiser executar vários monitores (como eu), basta adicionar novas seções de monitor com o identificador "Monitor2" e assim por diante, em seguida, na seção de dispositivo, adicione, por exemplo, 'Opção "HDMI-1" "Monitor2"' de acordo, e finalmente adicione o Monitor na seção de tela como 'Monitor "Monitor2"'.
A parte estranha no meu caso é que tenho 3 monitores exatamente idênticos e um deles nem sempre foi reconhecido pelo nvidia-modeset. Tem algo a ver com EDID e o erro pode ser encontrado em:
dmesg | grep EDID