VOGONS


First post, by 386SX

User metadata
Rank l33t
Rank
l33t

Hello,

about old pc monitors I've got this Acer AL1512 15" LCD XGA model that it's not the first one I've seen in linux having problems once the o.s./vga try to read the EDID from the VGA port and results as invalid, both with nvidia or radeon cards. Even if sometimes it still works with default resolutions and frequencies, I'd prefer to use its EDID internally so all values would be correct. I've seen that with an HDMI to VGA active adapter having probably its own converter IC, it works and read a usable EDID but not when connected to VGA directly to the monitor.
I've used the read_edid app on linux and even with the classic option I still extract an invalid EDID bin file. Without forcing a manual xorg.conf file with the values, are there any other possible app or command to use with the VGA only connection instead of using the HDMI converter to save it, cause I suspect once I'll use it I'll have problems later with HDMI audio vs the internal analog Realtek priority sound outputs list as already happened before.

Thanks

Last edited by 386SX on 2021-11-24, 18:16. Edited 1 time in total.

Reply 2 of 8, by 386SX

User metadata
Rank l33t
Rank
l33t
retardware wrote on 2021-11-24, 15:44:

read_edid does not work well even with the LCD monitors I tested it with.
Use xrandr --prop instead.

Thanks but it seems that command end up reading the VGA connected monitor and resolutions but still not entirely. For example it only list for 1024x768 the 60Hz option while the monitor should support also 70Hz and 75Hz at the same resolution.
I was thinking to try a SBC hdmi computer to just read and save the bin file with the HDMI-VGA converter and than copying it into the other system. Cause the last time I used that converter on the main system it probably changed the sound cards choices and the analog outputs/inputs didn't work anymore, probably confusing the pulseaudio/alsa configurations and I couldn't find a way to go back to the usual sound card config even disabling the HDMI audio.

Reply 3 of 8, by retardware

User metadata
Rank Oldbie
Rank
Oldbie

I feel a bit confused now.
1. Did you connect the VGA monitor directly to a VGA output or did you use a HDMI-VGA converter?
2. Have you tried to manually set up the monitor using one (or more) modeline(s) for higher refresh rates?

Reply 4 of 8, by 386SX

User metadata
Rank l33t
Rank
l33t
retardware wrote on 2021-11-24, 16:34:

I feel a bit confused now.
1. Did you connect the VGA monitor directly to a VGA output or did you use a HDMI-VGA converter?
2. Have you tried to manually set up the monitor using one (or more) modeline(s) for higher refresh rates?

If the monitor is connected directly with a full pin VGA cable to the VGA output of the video card (without the adapter just like is now) the radeon driver try to read the EDID and see it as invalid while it still boot at a good 1024x768@60hz mode. The logs get filled with EDID invalid error messages. IF I try an HDMI to VGA active adapter connected to the HDMI video card output and then to the VGA monitor input, it would get an acceptable EDID cause I suppose the apdater itself can read it better than the video driver itself and I can use the read_edid app to save it. It will still be not perfect cause the last time I tried it before reinstalling linux after forcing the extracted .bin file into the grub loading it worked with all the expected resolutions/values even serial number, monitor model etc, even if the video driver sort of expected a different EDID anyway, not logging red warnings anymore about invalid EDID but just some EDID still "invalid" few lines anyway but the monitor was seen from the app as expected from the user manual specifications.

But I didn't save the .bin file so I've to read the EDID file again and I was hoping some faster alternative way would have been possible even through the VGA cable only and without using the adapter.

Reply 6 of 8, by 386SX

User metadata
Rank l33t
Rank
l33t

For the VGA part:

VGA-0 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
TearFree: auto
supported: off, on, auto
scaling mode: None
supported: None, Full, Center, Full aspect
load detection: 1
range: (0, 1)
link-status: Good
supported: Good, Bad
CONNECTOR_ID: 48
supported: 48
non-desktop: 0
range: (0, 1)
1024x768 60.00*
800x600 60.32 56.25
848x480 60.00
640x480 59.94

Only VGA cable connected to the VGA only monitor single input. But clearly it lack others modes and I don't know about horizontal freqs for example if they are read correctly or what. 😉

Reply 7 of 8, by retardware

User metadata
Rank Oldbie
Rank
Oldbie

Definitely the EDID is not (read) completely.
It might be because of the cards' BIOS limitations which, on Radeon, freedesktop calls iirc.
So, maybe it could be worth to check whether your card has the latest BIOS on it.

But as you didn't tell which kind of "radeon" video card, I have no idea which xorg driver gets used. (can be seen in xorg.0.log)
The more modern ones (I think from R600 on, but definitely with amdgpu) use the GPU I2C bus directly iirc, entirely skipping the BIOS.

Anyway, if you use xrandr --props --verbose it should output some additional timing data which you can use for making your custom modeline.

Reply 8 of 8, by 386SX

User metadata
Rank l33t
Rank
l33t

I think I've solved in the old way, with the adapter on live. Then installed the read-edid and extracted the EDID both in the new and old method with the -c option and then copied one of the .bin file in the main installation and specifying it into the grub file. The video card (sorry I forgot to specify it) is a RV730 PRO (HD4650 oem 1024MB) open radeon drivers and proprietary microcode, still it's not perfect but now monitor app see the 70Hz and 75Hz vertical refresh and the logs reports the monitor model and list of modes supported with details. Unfortunately as said it's not entirely correct the EDID file loading cause in the logs I still see few initial warning:

platform VGA-1: Direct firmware load for classic_edid.bin failed with error -2
[drm:edid_load [drm]] *ERROR* Requesting EDID firmware "classic_edid.bin" failed (err=-2)

even if I have copied the last extracted EDID into the /lib/firmware folder but anyway later it seems to load it at last and the logs report this:

[drm] Got external EDID base block and 1 extension from "classic_edid.bin" for connector "VGA-1"

Maybe I had to load it with the xorg.conf file and not with the grub drm_kms_helper.edid_firmware function? Thanks anyway for the help! 😀 The supported mode from the now more complete reading are:

RADEON(0): 720x400@70Hz
RADEON(0): 640x480@60Hz
RADEON(0): 640x480@67Hz
RADEON(0): 640x480@72Hz
RADEON(0): 640x480@75Hz
RADEON(0): 800x600@56Hz
RADEON(0): 800x600@60Hz
RADEON(0): 800x600@72Hz
RADEON(0): 800x600@75Hz
RADEON(0): 832x624@75Hz
RADEON(0): 1024x768@60Hz
RADEON(0): 1024x768@70Hz
RADEON(0): 1024x768@75Hz

with all the precise freqs vertical/horizontal for each mode.

RADEON(0): Monitor name: Acer AL1512
RADEON(0): Ranges: V min: 55 V max: 78 Hz, H min: 28 H max: 63 kHz, PixClock max 135 MHz

😉