Lost monitor configuration
Richard H (8675) 100 posts |
It was all going so well. Earlier this evening, there was no trouble with recognising the monitor as an Acer S240HL, and defaulting to a very respectable mode of X1920 Y1080 C16M F60. I’ve just restarted the Pi4 (running 5.28). The startup screen was in a 640×480 256-colour mode, which was very odd. It stayed in that mode when the desktop appeared, and the monitor application described it as mode 28. I was only able to upgrade it to X1280 Y1024 C16M F75. Rebooting just takes me back to 640×480. The monitor is now being reported as “unknown”. Anyone have any ideas what has gone wrong and, more importantly, how to fix it? All help gratefully received. |
Stuart Painting (5389) 714 posts |
Have you got a KVM in the way? They have been known to interfere with monitor selection at boot. If “Auto(Acer S240HL)” really isn’t available via Configuration > Screen, EDID monitor detection hasn’t worked. You can try a monitor type of “Other > Generic” but you have to remember not to use any of the resolutions marked “(RPCEmu)” as they may not work. The alternative is to fix the screen mode at startup by using the hdmi_mode and hdmi_group parameters in config.txt but if you go down that route you may have to install AnyMode as well. |
Richard H (8675) 100 posts |
I have got a KVM in the way! But it worked quite happily this evening, across several restarts, so I’m a bit bemused as to why it has suddenly started playing silly buggers. Hmm. Trying to run !Configure→Screen, I get this error: Clicking OK takes me to the configuration screen. Auto has a tick by it, but there is no monitor name next to it. I was going to bed about two hours ago, so I think I’ll do that now, and try AnyMode tomorrow. Thanks for the suggestions! |
Bryan Hogan (339) 592 posts |
Before loading AnyMode, have a look at my replies in this thread – https://www.riscosopen.org/forum/forums/11/topics/16265 You will need the disable_mode_changes option for AnyMode to work. |
Richard H (8675) 100 posts |
Thanks, will give that a try later today. |
David J. Ruck (33) 1635 posts |
Always set the desired default HDMI screen mode in the config.txt file, so if the Pi starts up when the monitor isn’t on or thwe KVM is switched over, it doesn’t default to VGA. This is particular important if disable_mode_changes and AnyMode is used as you wont be able to select a higher resolution from the desktop. |
Richard H (8675) 100 posts |
Thanks, Druck and Stuart, that did it, and AnyMode was not required. For the benefit of anyone else reading this and having the same trouble, this is the magic incantation to get 1920×1080 @ 60Hz: In config.txt, add the lines: All is happy again in monitor-land. |
Stuart Painting (5389) 714 posts |
FWIW, I’ve added a wiki page which details the more common monitor issues and how to solve them. |
Richard H (8675) 100 posts |
Thanks, Stuart. One thing – I had the problem described in 2.1, but the solution for me was to apply the fix in 2.2. AnyMode wasn’t involved. |
Stuart Painting (5389) 714 posts |
Good point. Wiki page updated accordingly. |
Richard H (8675) 100 posts |
Ok, this is weird. And annoying. I put:
in config.txt last week, and everything worked absolutely fine, across several reboots. This morning, I turned the Pi on, with my nice HD monitor working as normal. Loaded a couple of apps. Then I switched to my Windows PC on the KVM for a few minutes, and switched back. Oh dear. I found that !NetSurf had crashed, and this time – the first time it has happened – I had no keyboard or mouse functionality. The only thing I could do at this point was a power-cycle. The reboot immediately came up with the low-res boot screen, leading to the low-res desktop, and I am now unable to get HD no matter how many times I reboot. The thing which makes no sense is that the hdmi_* parameters are still sitting there in config.txt. They are just being ignored.
EDIT: Ok the weirdness continues. I plugged the monitor directly into the Pi, rebooted, and the HD resolution magically reappeared. The HD resolution now persists across restarts. So my revised question is this: can someone explain what is happening in this scenario? A crash, followed by a hard reset, and the Pi (or RISC OS, I don’t know at this point) refuses to recognise the hdmi_* settings until it is connected directly to the monitor again. Once thus connected, it remembers its settings thereafter, with no apparent regression. I’m stumped. |
John WILLIAMS (8368) 493 posts |
Perhaps AnyMode is required after-all! Why not give it a try – nothing to lose (except your sanity, and thats on its own journey already!)? It is a very complicated thing with EDID and all that! |
Richard H (8675) 100 posts |
Yes, possibly, and I’ll give it a try later on. What I’m confused about is why it was fine last week, but is not fine today. I like my areas of doubt and uncertainty to be rigidly defined and documented, thankyouverymuch. |
John WILLIAMS (8368) 493 posts |
If you’ll forgive me dropping into French, “Moi non plus”! |
Rick Murray (539) 13840 posts |
What order did you power up. My Beagle xM either crashes or does something weird if I power it up before the monitor (a 7" LCD panel), but if I power it up after the monitor, all works fine. It’s supposed to provide power on HDMI to read the EDID regardless of whether or not the monitor is powered… but what’s supposed to happen and what actually happens are often different. |
Richard H (8675) 100 posts |
Monitor, then Pi. (I’ve also had similar problems with mainstream operating systems in the past, so I operate a “peripherals first” approach.) But that shouldn’t matter, if I understand the config.txt parameters correctly. The hdmi_* parameters are saying, in essence, “I don’t give a toss what you think about the monitor: this is what I’m telling you it is”. |
Alan Adams (2486) 1149 posts |
Without any knowledge of the internal operations, it sounds as though it works once there’s been a direct connection, and continues to work then with an indirect connection i.e. via KVM. My thought in that case is that with a direct connection, the dialog between system and monitor completes succcessfully, and the result is saved. With the indirect connection the dialog doesn’t complete successfully. That either results in no change (i.e. it keeps working using the saved settings) or a system crash. It makes me wonder how the dialog works with a KVM in the middle. I see two possibilities. A. The KVM relays everything unchanged both ways. B. The KVM conducts a dialog with the monitor and establishes its own view of the settings. Then the computer conducts a dialog with the KVM and gets the KVM’s version of things. I don’t know which is what actually what happens, or if it’s a third option. However B seems to offer much scope for an incorrect dialog to take place. Exactly how incorrect could be variable, which would cause the variable outcome. A similar but simpler situation arises with an HDMI splitter, where the computer driving the splitter has to negotiate settings, and the monitors may all be different. In that case, it probably negotiates with channel 1, so you need your LEAST capable monitor there, in order to get settings that all can use. Whether this helps at all is another great unknown. I’d like to think so, but… |
Richard H (8675) 100 posts |
Mmm. The thing is (as I understand it) the monitor shouldn’t matter because the parameters in config.txt are supposed to instruct the Pi about what hardware is attached to it… aren’t they? Maybe I’m doing something wrong there… I will post my config.txt tomorrow and see if anyone can identify any glaring errors. Vexing. |
Chris Hall (132) 3554 posts |
But that shouldn’t matter, if you have disable_mode_changes in your cmdline/txt. |
John WILLIAMS (8368) 493 posts |
As long as you realise that your cmdline/txt file is all-on-one-line! A bit counter-intuitive, that! I have:
Sorry, the line-lengths got mangled there, and I put a comment line first! |