For most users, RISC OS on the Raspberry Pi will drive the monitor in a satisfactory fashion. Here’s what to do if things go wrong.
Symptoms: The RISC OS desktop is displayed at low resolution. Display Manager does not offer higher resolutions (e.g. 1920×1080) even though the monitor supports them.
Possible causes: (1) The configuration option MonitorType may be set to Auto instead of EDID.
(2) Something (e.g. a KVM) is preventing EDID from working.
Fix: The first thing to check is the setting for MonitorType. At the command line, enter:
*status MonitorType
If that is set to “Auto”, enter the command:
*configure MonitorType EDID
Now reboot to check if the problem has been fixed.
The next thing to check is Configure > Screen. By default, the list of monitor types should contain an entry of the form “Auto (your-monitor-name-here)”, e.g. “Auto(L225W)”. If that is not selected, select it and use the “Try” button to determine if a better screen resolution is now available.
If it says “Auto (Unidentified)” this indicates that EDID has not worked and you will need to select another monitor type. One that may be worth a try is “Other > Generic”. Do not use the plain “Auto” type as that is restricted to low screen resolutions.
If none of these methods work, you will have to force the Pi to choose a specific screen resolution. This is done by adding the necessary hdmi_group and hdmi_mode lines to config.txt. For a FullHD monitor you would use:hdmi_group=2
hdmi_mode=82
If you have a different type of monitor, see config.txt (Raspberry Pi) for possible settings.
There is a possibility that the “hdmi_mode” fix won’t work properly (e.g. you may find that a high resolution desktop appears on boot, but after switching to another screen resolution you cannot change back to the original screen resolution). In these cases you will need to install the AnyMode module: this procedure is explained in the AnyMode section below.
Symptoms: A low resolution boot screen is displayed, but the RISC OS desktop is displayed at the expected resolution (e.g. 1920×1080).
Cause: Some monitors can be slow to detect that the input has gone active. If the monitor doesn’t respond quickly enough, RISC OS will use a low resolution (VGA) display during boot. RISC OS makes a second attempt to determine the monitor capabilities when the desktop starts up: if this succeeds the desktop will be displayed at high resolution.
Note: This is primarily a cosmetic bug. If you wish to fix it, add the necessary hdmi_group and hdmi_mode lines to config.txt, as described in config.txt (Raspberry Pi).
Pi 4
In theory, adding the line hdmi_enable_4kp60=1
to config.txt should allow screen resolutions up to 3840×2160,60Hz on the Pi 4. In practice, a bug in the Raspberry Pi 4 firmware means that RISC OS may not be able to determine that 3840×2160 at 60Hz is possible, so a lower screen resolution will be chosen instead.
Pi 1, Pi 2, Pi 3
The GPU in these older Pi models cannot display a 3840×2160 picture at 50Hz. There are reports of people squeezing 3840×2160 (at 24Hz) from a Pi 3 but many 4K monitors won’t accept that low a refresh rate.
Symptoms: Monitor displays a picture but no sound.
Causes: (1) The Pi may – erroneously – assume that the monitor has no audio output capabilities.
(2) On the Pi 4, HDMI sound is only available on the left-hand HDMI interface (on the Pi 400 this is the one closest to the SD card).
Fix: First check that you are using the correct (i.e. left-hand) HDMI interface on the Pi. If you are still having problems, see the “Optional sound entries” section of config.txt (Raspberry Pi).
There are some RISC OS bugs that can lead to display problems (e.g. screen unexpectedly blanks mid-session). See RISC OS bugs specific to the Raspberry Pi for details.
AnyMode – available from www.pi-star.co.uk – allows RISC OS to use different screen resolutions when the monitor is fixed to a single resolution. It does this by instructing the GPU to scale the display accordingly.
If you wish to use AnyMode, follow these steps:
hdmi_group=2
hdmi_mode=82
disable_mode_changes
to the first line of cmdline.txt