![]() |
Resolución 1680x1050 nuevo driver nvidia no va
Tengo el monitor LG M203WA que funcionaba de maravilla en una suse 10.0 a 1680x1050 y ahora no pasa de 1280x1024. Pego los datos a ver si alguien se le ocurre una idea antes de recompilar el anterior driver nvidia.
Cuando funcionaba en suse 10.0 usaba: NVIDIA-Linux-x86-1.0-8776-pkg1.run En /var/log/Xorg.0.log ponía: Código:
(II) Module nvidia: vendor="NVIDIA Corporation" Código:
Modeline "1680x1050" 181.61 1680 1792 1976 2272 1050 1051 1054 1095 Código:
(II) Setting vga for screen 0. Ahora que no funciona en suse 10.2 usa el paquete compilado: NVIDIA-Linux-x86-1.0-9746-pkg1.run Código:
(II) Module nvidia: vendor="NVIDIA Corporation" Del nuevo xorg.conf generado por sax2 que no funciona: Código:
Modeline "1680x1050" 117.69 1680 1776 1952 2224 1050 1051 1054 1080 Código:
(II) Setting vga for screen 0. Ideas para sacar modelines: de: Código:
xmode -x 1680 -y 1050 -r 60 Código:
gtf 1680 1050 60 -x Modeline "1680x1050" 147.14 1680 1784 1968 2256 1050 1051 1054 1087 Pruebo en: http://xtiming.sourceforge.net/cgi-bin/xtiming.pl poniendo los datos del monitor me da: Modeline "1680x1050@60" 154.20 1680 1712 2296 2328 1050 1071 1081 1103 Horizontal sync frequency: 66.23 kHz Si pongo solo 1680 1050 y pixelclock de 140 MHz, que es a lo que dice el EDID de la pantalla que puede llegar (Max dot clock (video bandwidth) 140 MHz) obtengo: Modeline "1680x1050@55" 140.00 1680 1712 2240 2272 1050 1071 1081 1103 Horizontal sync frequency: 61.61 kHz Y lo mismo poniendo el pixel clock a lo que se supone que detecta que llega( 155.0 MHz maximum pixel clock) que es mas de lo que indica la pantalla en su EDID: Modeline "1680x1050@59" 152.00 1680 1712 2288 2320 1050 1071 1081 1103 Horizontal sync frequency: 65.51 kHz -------------------------------------------------------- De la aplicación cvt para sacar el modeline de monitores lcd: Código:
cvt -v 1680 1050 60 Saco la informaciń EDID del monitor con get-edid Del programa "nvidia X server settings" he guardado un archivo llamado edid.bin ilegible, pero si lo cebo por una tubería a parse-edid me da la información del monitor: Código:
cat sacado_edid.bin | ./parse-edid |
No veo ningun mensaje de error.
Prueba esto: init 3 sax2 -a -r -m 0=nvidia init 5 Si no utiliza sax2 y lo configuras tu mismo pero antes de salvar la configuracion haz el test de prueba y que salga bien. |
Definitivo: versión nvidia 9746 no va
He probado de todo, una jartá de rearrancar las X con todo tipo de opciones y lo que he sacado en claro es que el driver antiguo versión 8776 entra a la primera y el nuevo 9746 no chuta.
Por si le vale a alguien pongo cómo y donde buscar. Aparentemente el nuevo 9746 utiliza la información EDID que obtiene del monitor para generar los modos y la resolución. Al hacer la validación del modo 1680x1050 piensa que se pasa de la resolución nativa (1280x1024) que ha obtenido de la información EDID (pilla la primera resolución listada y pasa de la segunda que es 1680x1050 el muy capullo) y lo descarta. Para ver esto hay que hacer (muchas veces para ver lo que pasa): Pasa a Ctrl+Alt+F2 (consola virtual 2) Logueate como root Mata el servidor X con: init 3 Una vez en modo consola, ya se pueden hacer pruebas una tras otra. Toca /etc/X11/xorg.conf con un editor como vi o pico cambiando opciones. Arranca el servidor X con la opción de escupir mogollón de info al log (/var/log/Xorg.0.log): X -logverbose 6 Espera que acabe de arrancar y verás la trama y el ratón con forma de x. Si te gusta lo que ves has acertado. Si no te gusta mata la X con Ctrl+alt+flechapatras Mira lo ocurrido en /var/log/Xorg.0.log que se refiere a las últimas X arrancadas y ráscate el coco. Si puede extraer informarción EDID del monitor lo veo así: Código:
(--) NVIDIA(0): --- EDID for LG M203WA (DFP-0) --- De ésta manera he observado que en el viejo driver 8776 que sí funciona veo: Código:
(II) NVIDIA(0): Validating Mode "1680x1050": Código:
(II) NVIDIA(0): --- Modes in ModePool for LG M203WA (DFP-0) --- Y en el nuevo driver 9746 donde debiera decir lo mesmo pone que sí: Código:
(II) NVIDIA(0): Validating Mode "1680x1050": Código:
(II) NVIDIA(0): Validating Mode "1680x1050": Código:
(II) NVIDIA(0): --- Modes in ModePool for LG M203WA (DFP-0) --- Código:
3Ddiag Suerte ... Epílogo: En la suse 10.2 las modelines generadas para resolución 1680x1050 con sax2 no sirven de nada, las desecha, las únicas dos que acepta, y solo con el driver antiguo nvidia 8776, son la modeline del EDID a 119.00 MHz y la generada con el modeline.pl de la web poniendo el pixelclock a 140.00 MHz: Código:
#Línea insertada tomado del EDID original de la pantalla: |
Excelentes explicaciones. :aplausos:
|
Cita:
CR_ |
SOLUCIONADO - opción antigua activa no documentada
"There are no bugs, only undocumented features" dicen, pues éste es el caso.
Para resumir, el driver nvidia no reconoce la opción documentada: Option "ModeValidation" "NoEdidDFPMaxSizeCheck" Sino que reconoce para lo mismo una opción no documentada ahora que hubo en antiguas versiones del driver: Option "ModeValidation" "NoDFPNativeResolutionCheck" Esta opción deshabilita el filtro que invalida los modos mayores que la primera "Native Resolution" que viene listada en la información EDID del monitor, permitiendo modos de mayor resolución. NOTA IMPORTANTE: Las opciones para el driver nvidia que se pueden asignar en suse con sax2 en una ventanita gráfica NO ESTÁN ACTUALIZADAS, algunas ya no existen ya y faltan las que vienen mencionadas en el README del driver nvidia (/usr/share/doc/NVIDIA_GLX-1.0/README.txt). Esto significa que aunque lo diga al principio del archivo xorg.conf (# PLEASE DO NOT EDIT THIS FILE!), hay que añadir a mano con un editor las opciones mencionadas en el README del driver nvidia dentro de la sección "device". El driver nvidia construye los modos de resolución al arrancar el servidor X basándose (a no ser que lo deshabilites) en la información EDID del monitor grabada en fábrica. ---------------------------------------------------------------------- Argumentos El problema es que el driver nvidia pasa de los modos que pongas en la sección "modes". Da prioridad a la información EDID que recibe del monitor que viene grabada en éste de fábrica. Puedes verlo después de arrancar Sax2 , que guarda log de lo que autodetecta en /var/log/SaX.log Ese archivo es muy informativo y detallado. Para hacer pruebas, si arrancas el servidor X en modo verboso para ver el contenido de archivo detallado /var/log/Xorg.0.log , ves la información EDID y cómo valida cada modo o resolución de pantalla al arrancar. La rutina para hacer pruebas de los cambios que introduzcas en el archivo configuración de las X en /etc/X11/xorg.conf es la siguiente: 1.- Pulsa Ctrl + alt + F1 para ir a la terminal virtual 1 (recuerda para mas tarde que las X siempre arrancan en la terminal virtual 7, se llega con Ctrl + alt + F7 ) 2.- Logueate como root escribiendo: Código:
root 4.- Una vez eres root, escribe: Código:
init 3 5.- Una vez en runlevel 3, cada vez que cambias a mano (usa un editor de consola como vi o pico) opciones en /etc/X11/xorg.conf , arrancas el servidor, lo matas, y miras los cambios del archivo /var/log/Xorg.0.log hasta que das con las opciones adecuadas. Ahora arrancas el servidor X en modo verboso para generar el archivo /var/log/Xorg.0.log en el que verás todo. Código:
X -logverbose 6 Mira Xorg.0.log con: Código:
less /var/log/Xorg.0.log # (sales con q ) Y ahora me ciño a este caso: En el archivo /var/log/Xorg.0.log veo que en la parte EDID pone: (--) NVIDIA(0): --- EDID for LG M203WA (DFP-0) --- ... (--) NVIDIA(0): Prefer first detailed timing : Yes ... (--) NVIDIA(0): Detailed Timings: (--) NVIDIA(0): 1280 x 1024 @ 60 Hz #primera resolución en el listado que es la que toma como referencia nativa ... (--) NVIDIA(0): 1680 x 1050 @ 60 Hz #segunda resolución en el listado de la cual pasa olímpicamente ... (--) NVIDIA(0): --- End of EDID for LG M203WA (DFP-0) --- Mas abajo cuando comienza a generar la tabla de modos (mode pool), veo que sí valida un modo 1680x1050 en pincipio: (II) NVIDIA(0): --- Building ModePool for LG M203WA (DFP-0) --- ... (II) NVIDIA(0): Validating Mode "1680x1050": (II) NVIDIA(0): 1680 x 1050 @ 60 Hz (II) NVIDIA(0): Mode Source: EDID (II) NVIDIA(0): Pixel Clock : 119.00 MHz (II) NVIDIA(0): HRes, HSyncStart : 1680, 1728 (II) NVIDIA(0): HSyncEnd, HTotal : 1760, 1840 (II) NVIDIA(0): VRes, VSyncStart : 1050, 1053 (II) NVIDIA(0): VSyncEnd, VTotal : 1059, 1080 (II) NVIDIA(0): H/V Polarity : +/- (II) NVIDIA(0): Mode is valid. Pero luego comienza a revalidar modos respecto de las características "nativas" (las que vienen en la información EDID) y se arrepiente: (II) NVIDIA(0): Native backend timings for LG M203WA (DFP-0): ... Y pone que no es válida por ser mayor que el primer "detailed timing" que es 1280 x 1024 (ver arriba que el que quiero es el segundo de 1680x1050 , pero no lo toma, sólo el primero): (II) NVIDIA(0): Validating Mode "1680x1050": (II) NVIDIA(0): 1680 x 1050 @ 60 Hz (II) NVIDIA(0): Mode Source: EDID ... (II) NV(0): Mode "1680x1050" is larger than BIOS programmed panel size of 1280 x 1024. O con otra versión del driver de nvidia pone: (II) NVIDIA(0): Validating Mode "1680x1050": (II) NVIDIA(0): 1680 x 1050 @ 60 Hz (II) NVIDIA(0): Mode Source: EDID ... (WW) NVIDIA(0): Mode is rejected: Mode (1680 x 1050) is too large for DFP (WW) NVIDIA(0): Native Resolution (Max: 1280 x 1024). Luego el problema es que el servidor X sólo valida como máximo tamaño el primer "detailed timing" mencionado en el EDID del monitor y desprecia los demás de la lista. En este caso, si el EDID pusiese primero el de 1680x1050 sería esta la "Native Resolution", mala suerte. Hay que decirle al servidor en /etc/X11/xorg.conf que al arrancar ignore la resolución máxima grabada de fábrica en el EDID. Según el último driver (nvidia-gfxG01-kmp-default-100.14.19_2.6.18.8_0.5-1.1 en mi caso), en el archivo /usr/share/doc/NVIDIA_GLX-1.0/README.txt se documentan las opciones del driver nvidia que uno puede añadir en el archivo /etc/X11/xorg.conf en la sección "Section Device" : "NoEdidDFPMaxSizeCheck": when validating for a DFP, a mode's size is validated against the largest resolution found in the EDID; this argument disables this stage of the mode validation pipeline. Es justo lo que busco, sería escribir en Section "Device": Option "ModeValidation" "NoEdidDFPMaxSizeCheck" Sin embargo, tras arrancar la X , veo en el archivo /var/log/Xorg.0.log que no reconoce la opción. ... **) NVIDIA(0): Option "ModeValidation" "NoEdidDFPMaxSizeCheck" (WW) NVIDIA(0): Unrecognized ModeValidation token "NoEdidDFPMaxSizeCheck"; (WW) NVIDIA(0): ignoring. Mirando en los foros (http://www.nvnews.net/vbulletin/arch...p/t-79737.html) descubro que antes hubo una opción que hacía lo mismo pero con otro nombre, que alguien por casualidad puso en xorg.conf y que ¡FUNCIONA!, sería añadir en la sección "device": Option "ModeValidation" "NoDFPNativeResolutionCheck" Option "UseDisplayDevice" "DFP" #esto lo pongo para forzar la detección del monitor digital flat panel, no hace mal añadirlo. Y funciona, con una opción antigua y no documentada. En http://http.download.nvidia.com/XFre...ppendix-d.html vemos que valía para lo mismo, cito: "NoDFPNativeResolutionCheck": when validating for a DFP, a mode's size is validated against the native resolution of the DFP; this argument disables this stage of the mode validation pipeline. Desde febrero hasta que lo he solucionado. Suerte... |
Me quito el sombrero! :tstress: Explicaciones detalladas y perfectas.
Tengo una cuestión, ¿porque usar el driver *.run en vez del que está en los repositorios de nVidia? :scratchch Creo que este hilo debería ir a FAQ ya que explica paso a paso todo! :) |
El driver en versión ejecutable de extensión *.run y el paquete para suse nvidia*.rpm funcionan indistintamente bien. En el rpm viene creo que añadido soporte para sax2, que es el configurador con ventanas estandar de suse. Como al final siempre hay que acabar leyendose el README y el HOWTO de nvidia, y configurando a mano /etc/X11/xorg.conf , pues tampoco importa.
Muy útil usar el programa mc De todas formas, se puede ver o extraer de un rpm (zip, rar, gz, bz2 o cualquier archivo comprimido) antes de instalarlo lo que se quiera. El programa se llama mc y es para consola. En una consola escribe: mc En la interfaz azul que ves, pulsa F9 , luego sitúate sobre "izquierdo" y dale flecha para abajo hasta listado, pulsa tecla gorda para entrar, elige con barra espaciadora la opción "listado largo". Ahora el lado izquierdo ocupa toda la ventana y es ideal para indagar en rpms. Al lado derecho se accede con TAB y se vuelve al izquierdo igual. Ahora pon el cursor sobre un archivo.rpm y pulsa tecla gorda. Espera (tarda un poco si es un rpm grande) y verás que si te pones sobre "CONTENTS.cpio" y pulsas la tecla gorda, puedes navegar todo el contenido del rpm. Para ver un archivo, te pones encima y pulsas F3. Para salir del visualizador vueve a pulsar F3. Puedes extraer un archivo o directorio completo del rpm (por ejemplo la documentación, etc) copiándolo al directorio del lado derecho poniendote encima y pulsando F5. Si quieres ver dependencias, info o los scripts de instalación/desinstalación del rpm (en los rpm que los tengan, no todos los tienen), nada mas abrir el rpm, en el nivel superior, sitúate sobre INFO y pulsa tecla gorda. Veras PROVIDES , REQUIRES , etc. Los lees con F3. Si hay un directorio SCRIPTS, te metes y lees lo que hace. Tambien puedes ver el paquete nvidia*.run con mc (te pones encima y pulsas F3) y verlo por dentro, hay mucha información. Sales de mc con F10 Suerte... |
hola a todos, voy a retomar este post ya que està encarrilado el ratòn.
yo tengo una tarjeta ATI y no me daba una resolucion mas de 1024X 768. hize lo que comento diablo rojo y ahora me da 1280 x 1024, obviamente con el modulo fglrx. pero no logro tener 1680 x 1050. El driver lo instale de los repositorios de ati, por favor alquien puede ayudarme? ya busque en el log, y no me arroja niun EE gracias Lophophora |
Cita:
|
La franja horaria es GMT +2. Ahora son las 07:53. |
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.