Setting the refresh rate and detecting unknown monitor (18.04)

Hello all,

I just put a fresh install of Ubuntu Mate 18.04 on this machine. GFX Card is ATI Radeon RX 580. Monitor is Acer XF270HU. I have one montior connected to the RX 580 via a display port cable.

This is the output of inxi -G:

Graphics:  Card: Advanced Micro Devices [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
           Display Server: x11 (X.Org 1.19.6 )
           drivers: fbdev,ati (unloaded: modesetting,vesa,radeon,amdgpu)
           Resolution: [email protected]
           OpenGL: renderer: llvmpipe (LLVM 7.0, 128 bits)
           version: 3.3 Mesa 19.0.0-devel (git-0cc01f4 2019-01-07 bionic-oibaf-ppa)

And here’s the output of xrandr:

xrandr: Failed to get size of gamma for output default
Screen 0: minimum 2560 x 1440, current 2560 x 1440, maximum 2560 x 1440
default connected primary 2560x1440+0+0 0mm x 0mm
   2560x1440     93.00*

I am not able to pick any other resolutions or refresh rates. I tried modifying “monitors.xml” but the changes didn’t appear to make a difference.

I tried to connect via HDMI to see if I could populate EDID info. No luck, it still shows as an unknown monitor. However, I do have the output of reading my edid, edited to show relevant sections:

sudo get-edid|parse-edid
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 1
No EDID on bus 2
No EDID on bus 3
Looks like no busses have an EDID. Sorry!
Attempting to use the classical VBE interface

	Performing real mode VBE call
	Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0
	Function supported
	Call successful

	VBE version 300
	VBE string at 0xc0268 "AMD ATOMBIOS"

VBE/DDC service about to be called
	Report DDC capabilities

	Performing real mode VBE call
	Interrupt 0x10 ax=0x4f15 bx=0x0 cx=0x0
	Function supported
	Call successful

	Monitor and video card combination does not support DDC1 transfers
	Monitor and video card combination supports DDC2 transfers
	0 seconds per 128 byte EDID block transfer
	Screen is not blanked during DDC transfer

Reading next EDID block

VBE/DDC service about to be called
	Read EDID

	Performing real mode VBE call
	Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
	Function supported
	Call successful

EDID claims 1 more blocks left


- snip-




Reading next EDID block

    VBE/DDC service about to be called
    	Read EDID

    	Performing real mode VBE call
    	Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
    	Function supported
    	Call successful
        EDID claims 1 more blocks left
        EDID blocks left is wrong.
        Your EDID is probably invalid.
        Looks like VBE was successful. Have a good day.
        Checksum Correct
        Section "Monitor"
    	Identifier "XF270HU"
    	ModelName "XF270HU"
    	VendorName "ACR"
    	# Monitor Manufactured week 51 of 2016
    	# EDID version 1.4
    	# Digital Display
    	DisplaySize 600 340
    	Gamma 2.20
    	Option "DPMS" "true"
    	Horizsync 222-222
    	VertRefresh 40-144
    	# Maximum pixel clock is 600MHz
    	#Not giving standard mode: 1152x864, 75Hz
    	#Not giving standard mode: 1280x960, 60Hz
    	#Not giving standard mode: 1280x1024, 60Hz
    	#Not giving standard mode: 1280x720, 60Hz
    	#Not giving standard mode: 1280x800, 60Hz
    	#Not giving standard mode: 1440x900, 60Hz
    	#Not giving standard mode: 1680x1050, 60Hz
    	#Not giving standard mode: 1920x1080, 60Hz

Can you help me to get my monitor correctly identified in the displays app so I can pick the right refresh rate? From the google searching I’ve done, I know the gamma error on xrandr is part of why the detection fails. By the VBE method, it clearly detects an Acer with a capability of 144 hz! How can I get Mate to understand this as well?!

Thanks so much for your help or advice. I am at a loss of how to proceed.

Screenshot%20at%202019-01-09%2006-56-07|597x398

OK… Let’s start with your graphic drivers -

Your inxi -G output shows “drivers: fbdev,ati (unloaded: modesetting,vesa,radeon,amdgpu)”.
I would expect the line to be something like “drivers: ati,radeon” or “drivers: ati,amdgpu”.
You are using the “fbdev” driver which does not support DDC.

Have you blacklisted the radeon or amdgpu drivers? Does log file /var/log/Xorg.0.log show any errors or reason to unload the radeon or amdgpu driver?

djb

Hi Dave, thank you for your response. To answer your first question, I downloaded the Ubuntu Mate 18.04 image, and followed this guide to ensure I was running the latest AMD drivers (open source Mesa) with DRI3, and added the PPA.

https://linuxconfig.org/how-to-install-the-latest-amd-radeon-drivers-on-ubuntu-18-04-bionic-beaver-linux

The Xorg log file is extremely long, so I tried to take an educated guess on the relevant section:

[    24.722] (II) LoadModule: "amdgpu"
[    24.723] (II) Loading /usr/lib/xorg/modules/drivers/amdgpu_drv.so
[    24.724] (II) Module amdgpu: vendor="X.Org Foundation"
[    24.724] 	compiled for 1.19.6, module version = 18.1.99
[    24.724] 	Module class: X.Org Video Driver
[    24.724] 	ABI class: X.Org Video Driver, version 23.0
[    24.724] (II) AMDGPU: Driver for AMD Radeon:
	All GPUs supported by the amdgpu kernel driver
[    24.750] (II) AMDGPU(0): [KMS] drm report modesetting isn't supported.
[    24.750] (EE) Screen 0 deleted because of no matching config section.
[    24.750] (II) UnloadModule: "amdgpu"
[    24.750] (EE) Device(s) detected, but none match those in the config file.
[    24.750] (==) Matched ati as autoconfigured driver 0
[    24.750] (==) Matched modesetting as autoconfigured driver 1
[    24.750] (==) Matched fbdev as autoconfigured driver 2
[    24.750] (==) Matched vesa as autoconfigured driver 3
[    24.750] (==) Assigned the driver to the xf86ConfigLayout
[    24.750] (II) LoadModule: "ati"
[    24.750] (II) Loading /usr/lib/xorg/modules/drivers/ati_drv.so
[    24.750] (II) Module ati: vendor="X.Org Foundation"
[    24.750] 	compiled for 1.19.6, module version = 18.1.99
[    24.750] 	Module class: X.Org Video Driver
[    24.750] 	ABI class: X.Org Video Driver, version 23.0
[    24.813] (II) LoadModule: "radeon"
[    24.813] (II) Loading /usr/lib/xorg/modules/drivers/radeon_drv.so
[    24.817] (II) Module radeon: vendor="X.Org Foundation"
[    24.817] 	compiled for 1.19.6, module version = 18.1.99
[    24.817] 	Module class: X.Org Video Driver
[    24.817] 	ABI class: X.Org Video Driver, version 23.0
[    24.817] (II) LoadModule: "modesetting"
[    24.817] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[    24.817] (II) Module modesetting: vendor="X.Org Foundation"
[    24.817] 	compiled for 1.19.6, module version = 1.19.6
[    24.817] 	Module class: X.Org Video Driver
[    24.817] 	ABI class: X.Org Video Driver, version 23.0
[    24.817] (II) LoadModule: "fbdev"
[    24.817] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[    24.817] (II) Module fbdev: vendor="X.Org Foundation"
[    24.817] 	compiled for 1.19.3, module version = 0.4.4
[    24.817] 	Module class: X.Org Video Driver
[    24.817] 	ABI class: X.Org Video Driver, version 23.0
[    24.817] (II) LoadModule: "vesa"
[    24.817] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so
[    24.817] (II) Module vesa: vendor="X.Org Foundation"
[    24.817] 	compiled for 1.19.3, module version = 2.3.4
[    24.817] 	Module class: X.Org Video Driver
[    24.817] 	ABI class: X.Org Video Driver, version 23.0
[    24.817] (II) AMDGPU: Driver for AMD Radeon:
	All GPUs supported by the amdgpu kernel driver

[section removed]

[    24.819] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[    24.819] (II) FBDEV: driver for framebuffer: fbdev
[    24.819] (II) VESA: driver for VESA chipsets: vesa
[    24.819] (WW) xf86OpenConsole: setpgid failed: Operation not permitted
[    24.819] (WW) xf86OpenConsole: setsid failed: Operation not permitted
[    24.819] (EE) open /dev/dri/card0: No such file or directory
[    24.819] (WW) Falling back to old probe method for modesetting
[    24.819] (EE) open /dev/dri/card0: No such file or directory
[    24.819] (II) Loading sub module "fbdevhw"
[    24.819] (II) LoadModule: "fbdevhw"
[    24.819] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[    24.819] (II) Module fbdevhw: vendor="X.Org Foundation"
[    24.819] 	compiled for 1.19.6, module version = 0.0.2
[    24.819] 	ABI class: X.Org Video Driver, version 23.0
[    24.819] (**) FBDEV(1): claimed PCI slot 14@0:0:0
[    24.819] (II) FBDEV(1): using default device
[    24.819] (WW) Falling back to old probe method for vesa
[    24.819] (EE) Screen 0 deleted because of no matching config section.
[    24.819] (II) UnloadModule: "modesetting"
[    24.819] (II) FBDEV(0): Creating default Display subsection in Screen section
	"Default Screen Section" for depth/fbbpp 24/32
[    24.819] (==) FBDEV(0): Depth 24, (==) framebuffer bpp 32
[    24.819] (==) FBDEV(0): RGB weight 888
[    24.819] (==) FBDEV(0): Default visual is TrueColor
[    24.819] (==) FBDEV(0): Using gamma correction (1.0, 1.0, 1.0)
[    24.819] (II) FBDEV(0): hardware: EFI VGA (video memory: 14400kB)
[    24.819] (II) FBDEV(0): checking modes against framebuffer device...
[    24.819] (II) FBDEV(0): checking modes against monitor...
[    24.819] (--) FBDEV(0): Virtual size is 2560x1440 (pitch 2560)
[    24.819] (**) FBDEV(0):  Built-in mode "current": 368.7 MHz, 135.6 kHz, 92.6 Hz
[    24.819] (II) FBDEV(0): Modeline "current"x0.0  368.73  2560 2592 2656 2720  1440 1444 1448 1464 -hsync -vsync -csync (135.6 kHz b)
[    24.819] (==) FBDEV(0): DPI set to (96, 96)
[    24.819] (II) Loading sub module "fb"
[    24.819] (II) LoadModule: "fb"
[    24.819] (II) Loading /usr/lib/xorg/modules/libfb.so
[    24.820] (II) Module fb: vendor="X.Org Foundation"
[    24.820] 	compiled for 1.19.6, module version = 1.0.0
[    24.820] 	ABI class: X.Org ANSI C Emulation, version 0.4
[    24.820] (**) FBDEV(0): using shadow framebuffer
[    24.820] (II) Loading sub module "shadow"
[    24.820] (II) LoadModule: "shadow"
[    24.820] (II) Loading /usr/lib/xorg/modules/libshadow.so
[    24.820] (II) Module shadow: vendor="X.Org Foundation"
[    24.820] 	compiled for 1.19.6, module version = 1.1.0
[    24.820] 	ABI class: X.Org ANSI C Emulation, version 0.4
[    24.820] (II) UnloadModule: "radeon"
[    24.820] (II) Unloading radeon
[    24.820] (II) UnloadModule: "vesa"
[    24.820] (II) Unloading vesa
[    24.820] (==) Depth 24 pixmap format is 32 bpp
[    24.820] (II) FBDEV(0): FBIOBLANK: Invalid argument (Screen blanking not supported by kernel - disabling)
[    24.823] (==) FBDEV(0): Backing store enabled
[    24.823] (==) FBDEV(0): DPMS enabled
[    24.824] (==) RandR enabled
[    24.827] (II) SELinux: Disabled on system
[    24.828] (II) AIGLX: Screen 0 is not DRI2 capable
[    24.828] (EE) AIGLX: reverting to software rendering
[    24.916] (II) IGLX: enabled GLX_MESA_copy_sub_buffer
[    24.917] (II) IGLX: Loaded and initialized swrast
[    24.917] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[    24.962] (II) config/udev: Adding input device Power Button (/dev/input/event1)
[    24.962] (**) Power Button: Applying InputClass "libinput keyboard catchall"
[    24.962] (II) LoadModule: "libinput"
[    24.963] (II) Loading /usr/lib/xorg/modules/input/libinput_drv.so
[    24.966] (II) Module libinput: vendor="X.Org Foundation"
[    24.966] 	compiled for 1.19.6, module version = 0.27.1
[    24.966] 	Module class: X.Org XInput Driver
[    24.966] 	ABI class: X.Org XInput driver, version 24.1

When I read this log file, it almost seems like the system is trying out different drivers, but for one reason or another, it fails. So it unloads that driver and tries another one. The successful attempts were fbdev and ati, but all the others failed. I don’t know if I blacklisted anything by following the linked guide, but I have no issues using any drivers as long as they work.

If there are more sections of the log file you wish to see, I can provide the entire thing. Thank you again for your help, I really appreciate it.

EDIT: I checked out /etc/modprobe.d/blacklist.conf and saw nothing related to graphics cards being blacklisted. It appears to have some network and pc speaker drivers disabled as a default.

Check /etc/X11 for xorg.conf or xorg.conf.d - there should not be anything there.
The AMDGPU driver should create a “Default Screen Section” for depth/fbbpp 24/32" all by itself.

What concerns me is the preceeding line:

Do you have a kernel option disabling modesetting? Look in /etc/default/grub.

djb

Dave, you are absolutely right.

I did have an Xorg.conf file, which I went ahead and deleted, but the bigger problem is my grub file:

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"
GRUB_CMDLINE_LINUX=""

The reason I have to do this is because without it, my monitor simply shows a black screen, and I’m not able to reach the “enter password to decrypt” screen. My understanding is that by adding that flag, the video card is initialized at a different part of the boot sequence allowing me to see the screen output.

For a test, I removed “nomodeset” from my grub file, and surely enough, it went back to a black screen. I then have to reboot with the shift key to edit my grub file, add “nomodeset” back in, and I’m on the desktop. I completely forgot that I had done this, it was the first day I installed the distro. I’ve seen a few guides that suggest this as the fix for a boot to black screen error.

How do I boot up my machine in a way that doesn’t use “nomodeset”? Or is there a way to “modeset” after I’ve gotten to my desktop?

Thank you again for your help. I feel like the solution is very close by.

Black screen can be caused by the boot splash program Plymouth. Do this -
(1) Take out the “quiet splash nomodeset” entries.
(2) Instead use “loglevel=4”
Loglevel = 4 will let you see each step as the system boots up.
(3) Below the GRUB_GFXMODE line add “GRUB_GFXPAYLOAD_LINUX=text”

All of these changes cause the system to go through a different path to do mode setting and has fixed many black screen for me.

=====

I set GRUB to always display a menu, you never know what can go wrong.
Here are the lines I use to make it so:

GRUB_DEFAULT=0         
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=Ubuntu

djb

EDIT: SOLVED.

Well Dave, I’ve got a strange update to report. Here’s what I did for my /etc/default/grub:

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=4"
GRUB_CMDLINE_LINUX=""
GRUB_GFXMODE=2560x1440,1024x768,auto
GRUB_GFXPAYLOAD_LINUX=text

The rest of the file is just default comments.

I rebooted it, and got a shell prompt to enter my decryption password. Since we set the payload to text, this seemed logical. I was able to log into my computer, and my monitor was properly detected with refresh rates and resolutions available, even vendor names. I set my resolution to 2560x1440 @ 144 hz, and everything looked amazing, I chose to apply settings system wide and all seemed well there too.

I went to fire up my browser to mark the thread as solved, and machine froze. No problem, I had heard a basic fix for that might be resetting to 120hz. So I performed a hard reset, and now I only get black screens again at bootup. I don’t understand how that could happen, because I haven’t changed any config files.

Right now, I’m typing on the machine because I’ve reactivated “nomodeset” for this session to boot. We know for sure that as long as I can boot into my machine without disabling mode set, the proper drivers will pull and my issue will be resolved.

Can you make a recommendation on how to modify my grub file to help force a terminal session for decryption?

EDIT: SOLVED.

This is how my grub is now configured:

GRUB_DEFAULT=0
#GRUB_TIMEOUT_STYLE=hidden
#GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=4"
GRUB_CMDLINE_LINUX=""
GRUB_TERMINAL=console
GRUB_GFXMODE=2560x1440,1024x768,auto
GRUB_GFXPAYLOAD_LINUX=text

It seems like commenting out the timeout style and timeout args force the booting to go right to a shell script. I won’t pretend to understand the details, but after a few reboots it seems to consistently load properly with the correct driver. Here’s the new inxi -g

Graphics:  Card: Advanced Micro Devices [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
           Display Server: x11 (X.Org 1.19.6 ) drivers: ati,amdgpu (unloaded: modesetting,fbdev,vesa,radeon)
           Resolution: [email protected]
           OpenGL: renderer: Radeon RX 580 Series (POLARIS10, DRM 3.23.0, 4.15.0-43-generic, LLVM 7.0.1)
           version: 4.5 Mesa 19.0.0-devel (git-0cc01f4 2019-01-07 bionic-oibaf-ppa)

So basically I’ve learned the “nomodeset” option might allow you to boot, but it will prevent the loading of these more modern ATI drivers and will need to be bypassed for correct display parameters.

Huge thanks to you Dave.