
Estoy intentando ejecutar una pantalla Samsung SyncMaster 226 NW con un adaptador HDMI a VGA en Debian 10. La GPU es una RTX 2060 Super, con los controladores propietarios de Nvidia de la versión 440.64.
En Linux, las únicas resoluciones que se detectan como utilizables son 1280×720, 1024×768, 800×600 y 640x480.
Sin embargo, la resolución nativa real es 1680×1050, y cuando Windows arranca dualmente, esta resolución se puede configurar y utilizar.
Intenté usarlo xrandr
para agregar una resolución personalizada, primero usándolo cvt
para generar la línea de modelo. El comando utilizado para crear un nuevo modo para xrandr fue
xrandr --newmode "1680×1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync
Después de hacer esto, xrandr
volvió a correr.
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
Sin embargo, al intentar utilizar
xrandr --addmode HDMI-0 "1680×1050_60.00"`
el error
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
fue devuelto. Usando
xrandr --output HDMI-0 --mode "1680×1050_60.00"
regresó
xrandr: no se puede encontrar el modo 1680x1050_60.00` como error.
¿Cómo configuro correctamente la resolución de salida en 1680x1050?
Respuesta1
Acabo de pasar 2 o 3 horas exactamente con el mismo problema. Muy molesto, xrandr parece no funcionar en absoluto con los nuevos controladores nvidia. Ahora, después de volverme loco y enojado, finalmente se me ocurrió una solución, esperando que funcione para ti también.
Inicie en la terminal "nvidia-settings", cambie a "Configuración de pantalla del servidor X", haga clic en el botón en la parte inferior "Guardar en el archivo de configuración X", luego "Mostrar vista previa". Ahora en esta vista previa vaya al bloque 'Sección "Monitor"..... EndSection' y guárdelo para más tarde. Así es como descubrí la configuración de mi monitor para xorg.conf. Tenga en cuenta que hay otras formas, pero esta debería ser bastante segura y conveniente para los usuarios de nvidia.
Luego obtenga el "Modeline" para su resolución, escriba en la terminal:
cvt 1680x1050
y guarde el resultado para más tarde.
Ok, ahora sólo tienes que agregar todo esto en un archivo xorg.conf, llámalo, por ejemplo, /etc/X11/xorg.conf.d/10-monitor.conf (esa es al menos la ruta para mi distribución). Como no tengo tu sección de monitor ni tu línea de modelo, te daré un ejemplo con mi sección de monitor y mi línea de modelo (mi resolución deseada/no 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
Entonces, en la sección Monitor, simplemente conserva la primera línea (Identificador) y reemplaza el resto con lo que guardó desde la configuración de nvidia y la última línea es la salida de su comando cvt. La sección del dispositivo debería estar bien para usted. La sección de pantalla solo necesita cambiar la línea "Modos" por el nombre de su modo, por lo que probablemente algo como Modos "1680x1050_60.00"
En mi sección de dispositivos también hay una línea 'BusID "PCI:39:0:0"', pero creo que no la necesitas. Sin embargo, obtuve esa línea al ejecutar "X -configure" (xorg no debe estar ejecutándose). BusID debe estar en el xorg.conf.new generado. Curiosamente, en mi caso era diferente del BusID de lspci.
Además, si desea ejecutar varios monitores (como yo), simplemente agregue nuevas secciones de monitor con el identificador "Monitor2" y así sucesivamente, luego en la sección de dispositivo agregue, por ejemplo, 'Opción "HDMI-1" "Monitor2"' en consecuencia, y finalmente agregue el Monitor en la Sección de Pantalla como 'Monitor "Monitor2"'.
Lo extraño en mi caso fue que tengo 3 monitores exactamente idénticos y nvidia-modeset nunca reconoció uno de ellos. Tiene algo que ver con EDID y el error se puede encontrar con:
dmesg | grep EDID