You are not logged in.

#1 2011-04-23 19:21:32

humilleitor
Member
Registered: 2010-02-22
Posts: 46

Kernel 2.6.38 wrong console size (good resolution) in external display

Since I upgraded to Arch kernel 2.6.38 (from perhaps 2.6.36, but I'm not sure), whenever I boot when an external display plugged in (but no TV), on the console I get the right resolution but the wrong size (display is 1280x1024, but I only get used the upper 1280x768 pixels). My video card is intel, and uses the i915 driver. In graphics mode, everything works well, of course, and Xrandr finds the right resolution and size.

How can I solve this issue? Is there any kernel option to pass onto bootup?

There is already a topic in these forums (https://bbs.archlinux.org/viewtopic.php?id=73850) describing an _identical_ issue, but it's quite old, refers to kernel 2.6.30, and is marked as solved if the user applies a patch to the kernel. Do I really have to apply a patch to the kernel? I'm just a normal user. I mean: if a not experienced, no computing degree, no programming skilled user has to apply a patch to the kernel in order to not experience a bug... ehem!, that doesn't sound very much like a "solved bug"... wink

Please any help appreciated.

Offline

#2 2011-04-23 21:01:53

lula
Member
Registered: 2009-07-16
Posts: 71

Re: Kernel 2.6.38 wrong console size (good resolution) in external display

Have you tried to set a video mode on the kernel line in grub, e.g video=1280x1024? For more info have a look here

Offline

#3 2011-04-26 12:36:55

humilleitor
Member
Registered: 2010-02-22
Posts: 46

Re: Kernel 2.6.38 wrong console size (good resolution) in external display

Thank you. I've tried what you say, but then if I boot without the external display plugged in, it doesn't work, as my laptop resolution is different from the external display. Maybe there is a way of setting the resolution of both screens in the kernel boot line, but I don't know how to find out which are my "DVI" and "VGA" numbers, or whatever. There's nothing about it in my kernel.log, contrary to what the KMS wiki says.

And, in any case, it would be only a workaround. Ideal would be that the framebuffer detect the resolution of both screens, and whether they're plugged in or not, as it used to do before the last kernel updates.

Any other suggestion?

Offline

#4 2011-04-26 19:42:39

lula
Member
Registered: 2009-07-16
Posts: 71

Re: Kernel 2.6.38 wrong console size (good resolution) in external display

Please post the output of xrandr when you're in X. xrandr must be run as user not as root.

Offline

#5 2011-04-26 20:25:43

Gusar
Member
Registered: 2009-08-25
Posts: 3,605

Re: Kernel 2.6.38 wrong console size (good resolution) in external display

Is the laptop's resolution lower than the external display? If so, what you see is the normal way of working - the external display shows as many characters as fit on both displays. Changing that is as lula says, with 'video=', but supply the output name. For those, look into /sys/class/drm. If you see a /sys/class/drm/card0-DVI-0 for example (and your external display is connected via DVI of course), the output name is DVI-0 and your grub config should therefore have video=DVI-0:1280x1024

Offline

#6 2011-04-27 10:00:32

humilleitor
Member
Registered: 2010-02-22
Posts: 46

Re: Kernel 2.6.38 wrong console size (good resolution) in external display

Thank you both.

My external monitor resolution is 1280x1024. My laptop's, 1440x900.

When I boot with the external monitor plugged in, I usually have the laptop lid closed down. In such circumstances -and no matter which of my many installed linux flavours I boot- for the last kernel updates (perhaps since 2.6.32?) I always get the same results:
- In text mode (tty), the console takes only the upper 1280x768 pixels of the monitor, at a 1280x768 resolution: sharp text.
- In graphics mode (X environment), the login screen takes the whole size of the monitor (1280x1024) but at a 1280x768 resoltion: blurred text. Then, after logging in, with the help of xrandr I can resize the screen, and now it shows the proper resolution (1280x1024), but of course only in X; the ttys keep using 1280x768.

Now, the output of xrandr _before_ running xrandr for fixing the resolution is this:

Screen 0: minimum 320 x 200, current 1024 x 768, maximum 4096 x 4096
LVDS1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 303mm x 189mm
   1440x900       60.0 +   50.0 
   1024x768       60.0*
   800x600        60.3     56.2 
   640x480        59.9 
VGA1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
   1280x1024      60.0 +   75.0 
   1024x768       75.1     70.1     60.0*
   832x624        74.6 
   800x600        72.2     75.0     60.3     56.2 
   640x480        72.8     75.0     66.7     60.0 
   720x400        70.1 
TV1 unknown connection (normal left inverted right x axis y axis)
   848x480        30.0 +
   640x480        30.0 +
   1024x768       30.0 
   800x600        30.0

This output is NOT totally right. First, because though the LVDS is "connected" (I don't disassemble the laptop lid), it's actually "switched off", as the lid is down. Second, because I don't have a TV plugged in, therefore it's not an "unknown" connection, but a "not connected" situation.

Now this is the output of xrandr _after_ fixing X:

Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 4096 x 4096
LVDS1 connected (normal left inverted right x axis y axis)
   1440x900       60.0 +   50.0 
   1024x768       60.0 
   800x600        60.3     56.2 
   640x480        59.9 
VGA1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
   1280x1024      60.0*+   75.0 
   1024x768       75.1     70.1     60.0 
   832x624        74.6 
   800x600        72.2     75.0     60.3     56.2 
   640x480        72.8     75.0     66.7     60.0 
   720x400        70.1 
TV1 disconnected (normal left inverted right x axis y axis)

Now a  little impertinent question: Is this _really_ the expected behaviour of the video driver? Why the framebuffer doesn't detect and use the external monitor resolution, as it did _before_ the updates? Is this supposed to be an improvement?

My /sys/class/drm has, among other things, these:
card0-LVDS-1
card0-SVIDEO-1
card0-VGA-1
Which of them is my external display? It's not DVI. Can I still use the kernel 'video=' setting?

Thank you.

[EDIT]
I've tried with "video=VGA-1:1280x1028" in Grub, but it doesn't work. Only "video=1280x1028" works, but of course that's not a solution, because I shouldn't need to change the boot lines every time I work with or without the external monitor. Sure, I can always create two grub entries, but still that would be only a shoddy workaround, not a real fix for the problem.

Last edited by humilleitor (2011-04-27 10:31:54)

Offline

Board footer

Powered by FluxBB