No Video On Boot Up

There are other posts on this subject, but nothing that has a definitive answer. Despite the threads being a year or more older, i did post to request further clarification, but have not received a response. So, in hopes that a new post gains more traction, here it goes...

I'm using a Raspberry Pi 2 model B. I've downloaded Ubuntu MATE 18.04.2 beta 1 and burned it to a micro SD card via Win32DiskImager. I have a USB wifi dongle, which means at first boot up, i'm not connected to the network. The monitor is an Acer S200HQL and I'm using an HDMI-to-DVI cable (with the DVI input on the monitor of course). Upon boot, i see the LEDs come on and then the green starts to toggle which usually means there is life--but no video. The monitor says "no signal" and then the blue light goes off (standby mode).

So i hook the RPi up to my TV via an HDMI-to-HDMI connection. When i apply power to the RPi, i see the "rainbow" square (which should be a RPi hardware/firmware thing, not Ubuntu MATE OS). Then I see Ubuntu MATE start to come up and eventually i get to the desktop. I then ran through the configuration steps (connecting to my network, selecting the language, etc.). Lastly, I modify the /boot/config.txt file and uncomment the "hdmi_safe=1" line, save and close the file, view the file with the more command to ensure it was changed, then power the RPi down.

I then once again connect the RPi to the Acer monitor, and boot up. Same LED activity but still no video AND, maybe more importantly, no rainbow square (which is interesting since that should be a hardware/firmware thing). At least now the monitor does NOT say "no signal" and the blue light stays on. But no desktop, just a black screen.

My assumption is that the rest of the settings are incorrect for that monitor. So although the hdmi_safe=1 forces things "on", they are not the right values and the monitor cannot display what is being sent to it.

Using Raspbian, i booted the RPi up on the Acer monitor (it works just fine with Raspbian), and wrote the edid file using the tvservice command. So i have an edid file for that monitor. Also, using the tvservice command, i was able to get the following info for that monitor:
state 0x6 [DVI DMT (83) RGB full 16:9], 1600x900 @ 60.00Hz, progressive

One final thing (not that i think it has any bearing on the solution to this problem)--I do have both the VC1 and MPEG license keys for this RPi.

So my question is, what should i do next to try and get this workstation up and going with Ubuntu MATE? There are probably a few different options, like forcing the use of the edid (though i'm not sure of what to change/add in the config.txt file to do that), or to ssh into the RPi now that i have it connected to my network and change/check things that way. Any suggestions would be helpful.

Cheers,
Mike

The safe mode uses a very restricted set of options - I suggest you not use it.
Try:
sdtv_mode=2
sdtv_aspect=3
hdmi_force_hotplug=1
hdmi_drive=1
hdmi_group=2
hdmi_mode=83

Copy all and thanks for the response. I had an uSD card failure yesterday so I'm waiting on a new one to show up. Will advise once I get the Pi back up and going.

Ok, got the new uSD card and burned a fresh image of Ubuntu MATE. I updated the config.txt file according to your suggestion.

Good news is, the monitor now displays the desktop.

Bad news is, the image is skewed. I go to the display settings and cannot make any changes. The reported resolution is 1920x900. Not sure what's going on, but it's not right.

I did use the tvservice command to get the status, which was reported as
state 0x120006 [DVI DMT (83) RGB full 16:9], 1600x900 @ 60.00Hz, progressive
so there is a difference between Ubuntu and Raspbian, even after making the changes in the config.txt based on what Raspbian was reporting for the same monitor.

I think my next step is to use the edid file.

Well... using the edid file didn't work. That's assuming i did it correctly. I named it edid.dat and put it directly in the /boot directory. Not sure if it picked it up or not because the monitor acted exactly like it did with the original problem (no signal and goes into low power mode).

Also, just to make sure i give all salient information--I grep'd the original config.txt file for any line that did not contain a # character, and redirected that to a new config.txt file. I then edited that config.txt file to remove hdmi_drive=2 and to add hdmi_edid_file=1. Three other commands remained in the file that seem to have nothing to do with the video output. I then rebooted and no display.

Lastly, here is a parsed version of the edid file (used parsed-edid command):

Checksum Correct

Section "Monitor"
Identifier "S200HQL "
ModelName "S200HQL "
VendorName "ACR"
# Monitor Manufactured week 51 of 2015
# EDID version 1.3
# Digital Display
DisplaySize 430 240
Gamma 2.20
Option "DPMS" "true"
Horizsync 31-80
VertRefresh 56-76
# Maximum pixel clock is 140MHz
#Not giving standard mode: 1152x864, 75Hz
#Not giving standard mode: 1280x720, 60Hz
#Not giving standard mode: 1280x800, 60Hz
Modeline "Mode 0" 108.00 1600 1624 1704 1800 900 901 904 1000 +hsync +vsync
EndSection

Please let me know if you see anything "weird" in that file, or have any other ideas.

I had a further thought - where exacctly are you putting the config.txt and edid file.
The stuff which used to be in the /boot directory (in the VFAT partition) is now mounted in /boot/firmware.
I've forgotten all I knew about parsing edid files, but did mess around with mode lines etc on some earlier linux installs - using something I found following a search:
//askubuntu.com/questions/377937/how-to-set-a-custom-resolution

HTH
derek

Yes, as a matter of fact, i saw that the config.txt was linked with a file in in the /boot/firmware directory. It seems that the file in /boot is a symbolic link, which means when i created config.txt.new in /boot, then used 'cp config.txt.new config.txt' that the link remained and the contents of the file in /boot/firmware was updated. I just confirmed that is the case.

It took me a minute to remember how to use ln (and the man page isn't all that helpful with the ambiguous terminology), but i moved my edid.dat file to /boot/firmware and created a symbolic link in /boot (not absolutely necessary, but helpful in a year when i go back and try to figure out what i did).

The result... The desktop looks great! So, in conclusion, using the edid file (properly) works the best. There is something amiss with the hard settings based on the query from tvservice and the edid file corrected that.

Consequently, when i use tvservice to query the status now, i get
state 0x120006 [DVI DMT (83) RGB full 16:9], 1600x900 @ 60.00Hz, progressive
which is EXACTLY THE SAME as using the hard settings suggested above--very frustrating and perplexing. It goes to show that using a properly extracted edid file is probably the safest bet. But not everyone will want to load a different OS to be able to extract (remember, i had to configure the wifi to be able to connect to even ssh in and query the monitor's edid), OR be able to use a different monitor to configure Ubuntu then connect to the "bad" monitor and ssh in and query that monitor. But i guess if you REALLY want Ubuntu (as did I), you'll figure it out.

Also, not sure why/how Raspbian has this figured out and Ubuntu doesn't. Seems one could make Ubuntu behave like Raspbian in this regard and it would only be more user freindly and just as capable.