Monitor LG Flatron 795FT Plus y kernel quejándose a cada rato con "invalid EDID"

4 envíos / 0 nuevos
Último envío
#1 Sáb, 26/12/2020 - 21:07
NerveNet
Imagen de NerveNet
Desconectado/a
colaborador
se unió: 14/03/16

Monitor LG Flatron 795FT Plus y kernel quejándose a cada rato con "invalid EDID"

Estado: 
[SOLUCIONADO]

Acabo de instalar Debian 10 con Xfce como gestor de escritorio en un equipo, todo como siempre de perlas, una instalación limpia y sin problemas.

Durante la instalación he usado un monitor LCD Philips de 1024x768 @ 60Hz con toma VGA.

Hoy he mudado el equipo de mi oficina a mi "despacho", en mi despacho tengo un viejo monitor de tubo LG Flatron 795FT Plus con toma VGA, generalmente lo venía usando a 1280x1024 o 1024x768, pero ha estado parado varios meses sin "destino".

Bueno el caso es que cuando tengo este monitor LG enchufado al PC recién instalado y tan pronto lo arranco, empiezo a ver mensajes cada pocos segundos en la consola:
[drm:radeon_vga_detect [radeon]] *ERROR* VGA-1: probed a monitor but no|invalid EDID

El equipo lo tengo configurado para que no arranque el gestor de inicio de sesión gráfico, es decir, siempre arranca en una consola de texto, pues sólo utilizaré esporádicamente el entorno de escritorio.

Os podéis imaginar que la consola de texto no se puede usar debido a esos mensajes del kernel.
Y si arranco las X con startx me arranca por defecto con una resolución de 1024x768 a 60Hz, lo cual no me molesta, pero no puedo usar resoluciones más altas ni cambiar la frecuencia del monitor.

He buceado un poco por la red y tengo aplicada una solución "temporal":
Como root edité /etc/default/grub
modifcando la siguiente línea:
GRUB_CMDLINE_LINUX_DEFAULT="drm.edid_firmware=edid/1024x768.bin quiet"
Luego hice un: update-grub

Reinicié y adiós al mensajito de amarras, lo cual está bien para usar el monitor en la consola.

Pero es una solución temporal, pues estoy usando un firmware EDID que existe por defecto en el Kernel. Ando buscando algo más "personalizado" y que se ajuste a las capacidades de mi monitor. Decir que esto es la primera vez que me pasa en años, he usado este monitor con versiones anteriores a la 10 de Debian sin más problemas.

Me he instalado el paquete read-edid. Con el fin de leer el EDID del monitor, generar un fichero válido para pasarlo al kernel.
Hago un: get-edid -c >/tmp/my_edid.bin
Y obtengo además de varios errores un fichero my_edid.bin. Si intento leer el fichero generado desde parse_edid también me da errores, vamos que no sirve.

La gráfica es una AMD/ATI RS600 [Radeon Xpress 1250] integrada en la placa, gráfica más que suficiente para una consola de texto pero que supongo que servirá también para un entorno gráfico.

Sospecho que o mi monitor es muy viejo o tengo algún problema de comunicación entre la tarjeta de vídeo y el monitor.

Mientras intento localizar una tarjeta de vídeo distinta para descartar, quizás alguien me pueda poner en el buen camino, lo mismo puedo generar un fichero EDID a manita.

Dom, 27/12/2020 - 10:05
NerveNet
Imagen de NerveNet
Desconectado/a
colaborador
se unió: 14/03/16

Finalmente lo he solucionado de la siguiente manera.

1. He instalado una tarjeta Matrox Millenium PCI que tenía guardada.
2. He configurado la BIOS para que use la tarjeta PCI en lugar de la tarjeta Radeon Xpress 1250 integrada en la placa.
3. He editado la configuración GRUB quitando la línea "drm.edid_firmware=edid/1024x768.bin" de forma que al arrancar no intente cargar el EDID que hay preconfigurado en el Kernel. Una vez hechos los cambios he reconfigurado GRUB y he reiniciado el equipo.
4. Una vez arrancado he iniciado sesión como root y he generado sin problemas un fichero EDID con la configuración del monitor con: get-edid -c >/lib/firmware/flatron_edid.bin
5. Después he probado con éxito el fichero EDID generado con: parse-edid /firmware/flatron_edid.bin
6. Luego he editado el fichero de configuración GRUB: vi /etc/default/grub
Editando la línea siguiente: GRUB_CMDLINE_LINUX_DEFAULT="drm.edid_firmware=flatron_edid.bin quiet"
7. Guardados los cambios he actualizado GRUB: update-grub
8. Apagué el equipo y desinstalé la tarjeta gráfica Matrox. Arranqué el equipo y configuré la BIOS para que utilizara de nuevo la gráfica integrada.
9. Hecho lo anterior arranqué el equipo.

Durante el arranque se queja de que no encuentra el firmware flatron_edid.bin, lo cual es normal por que no he actualizado la imagen, pero como el kernel lo continúa intentando cargar lo consigue una vez que el sistema de ficheros está montado.

A partir de aquí la consola se configura sola en modo texto usando una resolución de 1600x1200 a 75Hz, la máxima soportada por el monitor, lo cual es una barbaridad, pero ha dejado de molestar indicando que no puede cargar el firmware. Esto ya lo miraré de como solucionarlo para usar una resolución más legible de pantalla.

Ahora también puedo configurar la pantalla desde Xfce a la resolución y tasa de refresco que venía utilizando.

Así que descartado que sea el monitor, la fuente de problemas procede de la gráfica Radeon Xpress 1250.

Por si alguien tiene curiosidad de la salida del comando "parse-edid /firmware/flatron_edid.bin" la pongo a continuación:
Checksum Correct

Section "Monitor"
Identifier "Flatron795FT"
ModelName "Flatron795FT"
VendorName "GSM"
# Monitor Manufactured week 0 of 2000
# EDID version 1.1
# Analog Display
Option "SyncOnGreen" "true"
DisplaySize 330 250
Gamma 2.90
Option "DPMS" "true"
Horizsync 30-96
VertRefresh 50-160
# Maximum pixel clock is 200MHz
#Not giving standard mode: 640x480, 60Hz
#Not giving standard mode: 720x540, 70Hz
#Not giving standard mode: 800x600, 85Hz
#Not giving standard mode: 1024x768, 85Hz
#Not giving standard mode: 1152x864, 75Hz
#Not giving standard mode: 1280x1024, 75Hz
#Not giving standard mode: 1280x1024, 85Hz
#Not giving standard mode: 1600x1200, 75Hz
Modeline "Mode 0" +hsync +vsync
Modeline "Mode 1" +hsync +vsync
EndSection

A un clic de distancia de ti...

Dom, 03/01/2021 - 17:49
Percontator
Imagen de Percontator
Desconectado/a
colaborador
se unió: 20/03/16

Un problema un tanto desconcertante realmente, aunque no se exáctamente cual de las 2 tarjetas es
la más reciente.

Sobre el porqué, solo se me ocurren 2 cosas a investigar.
Una sería sobre algo que leí una vez en una reseña, que decía que estas gráficas integradas en la base,
generalmente son para equipos de oficina, que no requieren grandes prestaciones gráficas, ( hoy dia
no se si se puede seguir considerando válida esta información), y que por contra el equipo resulta más
barato que uno que vaya con tarjeta independiente y cambiable.
-Puedo testificar que una placa base que tuve, de este tipo, tenía unas prestaciones gráficas bastante pobres-.

En tu caso simplemente podría ser por una "base de datos interna" demasiado reducida, en la cual no está
registrado tu monitor, tal vez porque el fabricante consideró que pertenecía a otro segmento de uso,
o porqué salió poco después de haber cerrado la lista.
O, aunque no creo, porque con la matrox si fué bien, porque por alguna razón, al debian se le hubiera
escapado la ficha de esta referencia de monitor. (?).

El segundo punto sería mirar si radeon tiene algún hardware update para este chip, o si hay algún
reporte de problemas de cuando lo sacaron al mercado.

O como tercera opción, una vez descartados los despistes, las faltas en las referencias y los bugs
de fábrica, cabría pensar ya en algún daño o defecto en el hardware de la tarjeta, que le impida
interrogar debidamente al monitor y obtener una edid coherente para ese tipo o serie.

Un saludo.

Lun, 04/01/2021 - 05:03 (Responder a #3)
NerveNet
Imagen de NerveNet
Desconectado/a
colaborador
se unió: 14/03/16

Gracias por pasarte y comentar.

Los monitores "modernos" soportan DDC (Display Data Chanel), es un protocolo que permite que las tarjetas gráficas obtengan del monitor sus capacidades en el formato binario EDID (Extended Display Data Identification). Según la Wikipedia, la primera versión de DDC y EDID se publicaron en Agosto de 1994, han pasado por varias revisiones.

Mi monitor LG Flatron 795FT Plus fue fabricado en el año 2000, soporta tanto DDC1 y DDC2B, devuelve un EDID de 128 bytes.

La placa madre as una ASRock 4Core1333-FullHD se comenzó a comercializar en 2007. Es una placa madre de bajo coste con placa de vídeo integrada. No he podido averiguar que versiones de DDC soporta la placa integrada.

La tarjeta que he usado para obtener el EDID del monitor es una Matrox Millenium G200 PCI fabricada en 1999. Este hardware está soportado por Buster, aunque está pobremente y confusamente documentado. Las Millenium G200 se continúan usando en el segmento de los servidores.

Me inclino a pensar que la tarjeta integrada de la placa madre no soporta del todo bien DDC1 y/o DDC2B, dado que con un monitor plano Philips no me dio problema alguno sólo se queja con el monitor LG.

He actualizado el firmware BIOS de la placa madre para subirlo al nivel más reciente, como la tarjeta de vídeo es integrada estoy suponiendo que el firmware de la BIOS incluye el de la tarjeta gráfica integrada. El problema persiste con la versión más reciente.

Fue poner la tarjeta PCI Matrox Millenium G200 y ver la luz a la primera. De hecho en los días siguientes estuve usando el equipo con la solución que he publicado sin más problemas. Eso sí a cada rato se ve que el sistema intenta leer el EDID del monitor según observo en los logs.

Este pasado fin de semana me he entretenido a configurar la gráfica Matrox Millenium G200 PCI de 8MB VRAM, para mi sorpresa la documentación que hay en la red es confusa y el rendimiento del controlador "mga" existente para las X es francamente mejorable. Finalmente he podido poner en marcha la tarjeta con un rendimiento aceptable instalando el módulo matroxfb_base y el controlador fbdev de las X.

El tema de la gráfica integrada y su incapacidad para leer el EDID de mi monitor no le doy más vueltas. Habiendo conseguido el EDID con otra tarjeta de vídeo me conformo. De paso he aprendido un par de cosas que desconocía.

A un clic de distancia de ti...