[i945] [Xubuntu] wrong screen resolution after upgrade to Jaunty
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
xserver-xorg-video-intel (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: xorg
After upgrade to Jaunty, Xubuntu starts with a wrong resolution on a laptop with external monitor.
hardware: HP Compaq nc2400, with i945 graphics card + Dell 1680x1050 screen, connected via docking station (so the laptop lid is closed all the time)
software: Xubuntu 9.04, i386; vanilla (untouched) xorg.conf
behaviour with intrepid: gdm uses 1024x768, but after login the screen switches to 1680x1050
behaviour with jaunty: screen stays in 1024x768 even after login
other observations:
- Settings->Display shows only one screen (Screen 1), but Settings->Desktop sometimes shows settings for both VGA and LVDS screens.
- I can choose the 1680x1050 resolution in Settings->Display and it works without problems.
- In Settings->Desktop, I have selected a different background pictures for VGA and LVDS. Then I see that after login the desktop starts with a background of the LVDS screen, not the VGA background. This is even more obvious if I add "xrandr --output VGA --auto" to gdm/Default - then I get the correct resolution (1680x1050), but I get the LVDS desktop drawn over the VGA one, i.e. there is the correct VGA 1680x1050 background picture, but over it there is drawn the smaller LVDS background picture (placed in the top-left corner of the screen). Looks xorg or xrand draws both screen on top of each other? .. could be a xrandr bug?
- I could not report this as a xrand bug using 'ubuntu-bug -p xrandr', as this results in a message that the package does not exist - which is wrong, as I can ran 'xrandr' command.
- Using the internal screen only (taking the laptop out of the docking station) works fine, using the correct resolution (1280x800).
- Probably not important, but under intrepid I had problem with the intel driver, with the system crash with a message about underrun on pipeB .. about once a day, with no reason I could see. I haven't yet seen it on Jaunty, but I have had it only a couple of hours..
- I installed grandr and in the Layout screen, both VGA and LVDS are in the middle box and neither can be moved anywhere. Also the "clone / extend" choice is grayed out - but that is probably correct, as the laptop lid is closed?
ProblemType: Bug
Architecture: i386
DistroRelease: Ubuntu 9.04
Package: xorg 1:7.4~5ubuntu18
ProcEnviron:
LANG=en_GB.UTF-8
SHELL=/bin/bash
ProcVersion: Linux version 2.6.28-11-generic (buildd@palmer) (gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) ) #42-Ubuntu SMP Fri Apr 17 01:57:59 UTC 2009
SourcePackage: xorg
Uname: Linux 2.6.28-11-generic i686
[lspci]
00:00.0 Host bridge [0600]: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub [8086:27a0] (rev 03)
Subsystem: Hewlett-Packard Company Device [103c:30a1]
00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a2] (rev 03)
Subsystem: Hewlett-Packard Company Device [103c:30a1]
affects: | xorg (Ubuntu) → xserver-xorg-video-intel (Ubuntu) |
summary: |
- [Xubuntu, i945] wrong screen resolution after upgrade to Jaunty + [i945] [Xubuntu, i945] wrong screen resolution after upgrade to Jaunty |
Changed in xserver-xorg-video-intel (Ubuntu): | |
status: | New → Confirmed |
tags: | added: resolution |
description: | updated |
tags: | added: 945gm |
tags: | added: xubuntu |
Quick fix, in case someone has the same problem: add the following to /etc/gdm/ Init/Default:
if xrandr -q | grep -q "VGA connected"; then
xrandr --output LVDS --off --output VGA --auto
fi
What it does: if an external monitor is detected, it will switch off the internal one and sets the monitor to its optimal resolution. An even better solution would be to set-up an extended desktop in the case the laptop lid is opened, but I do not know how to detect this...
--------
More info about why this patch works
It looks like the original bug is a combination of two issues:
1. The system does not detect that the laptop lid is closed and starts with LVDS output on
2. When both LVDS and VGA outputs are on (and the lid is closed), they get both drawn on the main monitor, the LVDS being drawn over the VGA screen..
This can be illustrated by the following three versions of /etc/gdm/ Init/Default. (Note that I am now running with an 1280x1024 external monitor, while the original post was done with 1680x1050 - but is should not make any difference):
I. no changes
- system (gdm) starts in 1024x768 resolution
- after login, I see the LVDS wallpaper
- xrandr -q gives:
----
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 1280 x 1280
VGA connected 1024x768+0+0 (normal left inverted right x axis y axis) 338mm x 270mm
1280x1024 60.0 + 75.0 60.0
1152x864 75.0
1024x768 75.0* 70.1 60.0
832x624 74.6
800x600 72.2 75.0 60.3
640x480 75.0 72.8 59.9
720x400 70.1
LVDS connected 1024x768+0+0 (normal left inverted right x axis y axis) 261mm x 163mm
1280x800 60.0 +
1024x768 85.0 75.0* 70.1 60.0
832x624 74.6
800x600 85.1 72.2 75.0 60.3 56.2
640x480 85.0 72.8 75.0 59.9
720x400 85.0
640x400 85.1
640x350 85.1
TV disconnected (normal left inverted right x axis y axis)
----
Note that LVDS is connected (even if the lid is closed) and that both LVDS and VGA have wrong resolution (which happens to be the biggest common resolution - is this a coincidence?)
II. /etc/gdm/ Init/Default with added "xrandr --output VGA --auto"
- system starts with the correct resolution (1280x1024)
- I get the LVDS wallpaper drawn over the VGA one
- xrandr -q gives (deleted the lower resolutions lines for brevity):
----
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 1280 x 1280
VGA connected 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm
1280x1024 60.0*+ 75.0 60.0*
1152x864 75.0
1024x768 75.0 70.1 60.0
LVDS connected 1024x768+0+0 (normal left inverted right x axis y axis) 261mm x 163mm
1280x800 60.0 +
1024x768 85.0 75.0* 70.1 60.0
TV disconnected (normal left inverted right x axis y axis)
----
III. The fix from the start of this post
- everything works OK, assuming one has a closed lid
- xrandr -q output:
----
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 1280 x 1280
VGA connected 1280x1024+0+0 (normal left inverted right x axis y axis) 33...