X uses wrong monitor resolution and video driver for Intel chip set

I have been using openSUSE 11.4 on the same hardware since March last year. After upgrading to openSUSE 12.1 earlier this year I have had an intermittent problem with my monitor’s native resolution not being detected and openSUSE booting up into a very low resolution. Now the problem is permanent with the system always booting to a low resolution. I have searched numerous forums, and have not come up with a solution.

My video and monitor hardware is

Acer X223w (native resolution 1680x1050)

/sbin/lspci -nnk |grep VGA -A2

00:02.0 VGA compatible controller [0300]: Intel Corporation 82Q963/Q965 Integrated Graphics Controller [8086:2992] (rev 02)
        Subsystem: Fujitsu Technology Solutions Device [1734:10b5]
00:02.1 Display controller [0380]: Intel Corporation 82Q963/Q965 Integrated Graphics Controller [8086:2993] (rev 02)

glxinfo | grep “OpenGL”

OpenGL vendor string: Mesa Project
OpenGL renderer string: Software Rasterizer
OpenGL version string: 2.1 Mesa 7.11
OpenGL extensions:

My Xorg.0.log file is here

SUSE Paste

I have attempted to configure the 50-monitor.conf and 50-screen.conf files, but to no avail.

gtf 1680 1050 60

1680x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz

Modeline “1680x1050_60.00” 147.14 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync

but this produces something slightly different.

cvt 1680 1050 60

1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz

Modeline “1680x1050_60.00” 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync

I attempted to use the results from gtf with xrandr.

xrandr --newmode “1680x1050_60.00” 147.14 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync
xrandr: Failed to get size of gamma for output default

xrandr --addmode default “1680x1050_60.00”
xrandr: Failed to get size of gamma for output default

xrandr --size “1680x1050_60.00”
Failed to change the screen configuration!

I can see the screen resolution in the options of “System Settings / Display” however it will not apply the resolution.

Here is some further information about my system.

xrandr -q

xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1600 x 1050, current 1600 x 1200, maximum 1680 x 1200
default connected 1600x1200+0+0 0mm x 0mm
1600x1200 77.0*
1680x1050_60.00 60.0

How to fix this?

OK, I have a fix!

This forum post gave me a hint. http://forums.opensuse.org/english/get-technical-help-here/hardware/460904-incorrect-resolution-toshiba-portege-3505-opensuse-11-4-a.html#post2348987

It would seem that the X-server may be having a problem with my monitor’s Extended Display Identification Data (EDID) and falling back to the safe resolution of 1024x768.

Even though I had previously tried modifying the /etc/X11/xorg.conf.d//50-monitor.conf file it did not work. Following the example in the aforementioned post, I realised I had to find the correct HorizSync and VertRefresh values for my monitor.

So after further searches here is the entry in my 50-monitor.conf file for my Acer X223w 1680x1050.

Section “Monitor”
Identifier “Monitor1”
VendorName “Unknown”
ModelName “Acer X223W”
HorizSync 31.0 - 84.0
VertRefresh 56.0 - 77.0
EndSection

I have not had to make any other modifications, ie. Grub command line, ect.

However, what perplexes me, is why all of a sudden after several months of working with out a problem, X-server could no longer identify my monitor.

Had exactly the same problems with nvidia graphic cards. It really seems some really big changes were made to X windows and then pushed down to us in an update. I think those changes haven’t been tested with all HW. I have had to reinstall Linux twice now (just started the first install)… Cannot say much more, I am taking a much more meticulous approach because I want to know exactly what is going wrong. I will let you know.

In the mean time could someone give us some clues why X-Windows has become a lot less reliable these days? I can only speculate… Thanks!!

58.606] Kernel command line: root=/dev/disk/by-id/md-uuid-83988920:3367ba00:7237d5e9:320e6fb4 apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 **nomodeset **x11failsafe vga=0x34a

Try booting without “nomodeset”!

“nomodeset” forces the system to use an older slower more generic graphic driver. I had tried this as one of the first things, and, yes sure enough, it did provide me with the higher resolutions of my Intel graphic chipset, however none of these matched my monitor resolution. Nothing looked sharp and crisp any more. And as mentioned, the driver is slower so many desktop effects were useless.

I think pilotmm is correct. I am interested to know what results pilotmm comes up with.

Can anybody suggest to us how and where to log a but report for this?

I would prefer my openSUSE installation to just work out of the box on my hardware, which is nothing exotic.

I also see you have this “x11failsafe” in your boot line, from Xorg.0.log, are you sure that Grub is set up correctly?

Grub was set up from the openSUSE install DVD. I have made no modifications to it. Even after a fresh install, with NO modifications, my system still booted with a “failsafe” low resolution.

After making the aforementioned change to 50-monitor.conf I boot normally, meaning I accept what ever default Grub command line the system chooses.

It is a real pity the developers messed this up. I had been using 11.4 for over a year which no longer uses the xorg.conf file, just fine on the same hardware. The system would automatically detect everything and boot with the correct resolutions. But ever since the upgrade to 12.1, the problems started appearing. I now have to manually set a 50-monitor.conf file for my system to boot with the correct resolution. This is a very unfortunate regression that cost me a lot of time, including work hours.

But on the positive side, I have learnt a lot more about Linux and how it handles monitors and graphic chips.

But you do have two alternatives at the boot prompt, one failsafe and the other one desktop or something? Open Yast and select System/Boot Loader configuration, select the Desktop entry and click edit. Look at the text box labeled "Optional Kernel Command Line Parameter. If it has “nomodeset” in it delete “nomodeset”, save changes and reboot with the Desktop entry.

Yes, there are two options at boot, and as I have mentioned, after setting 50-monitor.conf I can now use the default desktop option.

I have followed your instructions, however there is NO “nomodeset” in the command line parameter. As I said previously, I am now using the defaults that the system presents. Following is actual “Optional Kernel Command Line Parameter”.

resume=/dev/disk/by-id/md-uuid-620428fc:4f6140d9:676c3dde:f12e1862 splash=silent quiet showopts

It would appear the problem is not the Grub set up, but rather the Kernel / Xorg failure to recognise my monitor’s Extended Display Identification Data (EDID). Therefore I now have to manually set 50-monitor.conf so I can boot to my monitor’s native resolution. Please note again, that other than me creating the 50-monitor.conf file, the rest is the bog standard install from the openSUSE 64bit DVD.

Please stop speculations and just paste output of “dmesg | grep drm” as well as “/var/log/Xorg.0.log” on paste.opensuse.org and provide links here …

Please be specific. Which version of Xorg.0.log ?

The original when I had the problem? If so, that was already included in the initial post above. But, here it is again.

SUSE Paste

The current one, now that I am using the 50-monitor.conf file is here.

SUSE Paste

dmesg | grep drm

    2.917969] [drm] Initialized drm 1.1.0 20060810
    3.000856] [drm] MTRR allocation failed.  Graphics performance may suffer.
    3.001912] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
    3.001914] [drm] Driver supports precise vblank timestamp query.
    3.216665] [drm] initialized overlay support
    3.298979] fb: conflicting fb hw usage inteldrmfb vs VESA VGA - removing generic driver
    3.299523] fbcon: inteldrmfb (fb0) is primary device
    3.794598] fb0: inteldrmfb frame buffer device
    3.794601] drm: registered panic notifier
    3.794696] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0

Please edit /boot/grub/menu.lst that one section looks like this one (without nomodeset and x11failsafe in kernel line)

###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 12.1 - 3.3.1-2
  root (hd0,1)
  kernel /boot/vmlinuz-3.3.1-2-desktop root=/dev/disk/by-id/ata-ST2000DL003-9VT166_5YD3EVZJ-part2 resume=/dev/disk/by-id/ata-ST2000DL003-9VT166_5YD3EVZJ-part1 splash=silent quiet showopts radeon.audio=1 vga=0x314
  initrd /boot/initrd-3.3.1-2-desktop

Then reboot and provide output/file.

What in those lines are you asking me to edit?

###Don’t change this comment - YaST2 identifier: Original name: linux###
title Desktop – openSUSE 12.1 - 3.3.0-16
root (hd0,0)
kernel /vmlinuz-3.3.0-16-desktop root=/dev/disk/by-id/md-uuid-0f3e7d0b:86a24b90:ad1ab406:7d22a2ad resume=/dev/disk/by-id/md-uuid-620428fc:4f6140d9:676c3dde:f12e1862 splash=silent quiet showopts vga=0x314
initrd /initrd-3.3.0-16-desktop

But why does your system boot with nomodeset and x11failsafe then?

It does not at the moment. I had already told you that, back here.

http://forums.opensuse.org/english/get-technical-help-here/hardware/473879-x-uses-wrong-monitor-resolution-video-driver-intel-chip-set.html#post2454955

Here is my current Xorg.0.log

SUSE Paste

Sorry, the other paste did not work for some reason.

Something I just noticed, my Xorg.0.log is filling up with this

(WW) intel(0): I830DRI2GetMSC:1305 get vblank counter failed: Invalid argument
(WW) intel(0): first get vblank counter failed: Invalid argument

Please try xorg-x11-driver-video and later drm-radeon-kmp package from home:jobermayr.
They also contain latest development versions of Intel graphics drivers.

A week ago I posted that I would reinstall the system and report any helpful information. However for whatever reason that reinstall seemed to magically fix everything.

I had a lot of problems. The system was failing to get the correct EDID, then it was failing to load the correct device every-time, it was failing to load the XOrg.config.d files. The biggest feature of all these problems was inconsistent behavior. Sometimes it would do some of those things correctly, sometimes it wouldn’t. Sometimes it would call the device “VGA-0” sometimes it was “VGA0” and other times it was “default”. I expect computers to be consistent otherwise they cannot be used.

However a openSuse reinstall fixed everything. In hindsight the only explanation was either my monitor was legitimately acting buggy for a week or in the first install a file was not copied correctly causing the system not to properly handle graphics. I am leaning towards the former because the first install was prompted by similar problems that suddenly arose in a openSuse 11.4 that worked fine for about a year.

I know this is lame advice… but it is all I can say. I wish I could tell you more.