Wrong framebuffer resolution in 2.6.30

The i915 driver for the Intel GM965 is broken in kernel 2.6.30 – instead of getting 1280×800 framebuffer console you end up getting up getting 1024×768. Please note that the (overall) resolution is perfectly fine – only the text will appear to remain constrained in an imaginary 1024×768 box. This happens at least in Acer 4720z and probably in other boxes too which use the GM965 and have a TV out. What really happens is that the kernel mistakenly detects a projector connected to the TV-OUT even though there is none and sets the framebuffer resolution to 1024×768. This is evident from the output of dmesg

...
[drm] TV-12: set mode 1024x768 18
...

This is especially annoying for people like me who

  1. Like to use the console for things that do not require starting up X.org

  2. Have painstakingly created a boot-logo which the wrong resolution is ruining.

  3. Want every aspect of their computers to be flawless.

All the while I was trying to google with terms like “wrong resolution” and “changing the framebuffer resolution” only to find the forums invariably advising me to add vga=773 to the kernel boot line – something I knew would not work.

Anyways after googling with the above dmesg line I finally came across a patch which supposedly fixes the problem. When I tried to patch my kernel, however I got two failed hunks. So I tried to use my own hunking abilities and fired up my trusted vim.

To cut a long story short, the culprit is drivers/gpu/drm/i915/intel_display.c and you can download an edited version here. Just replace the file, re-compile and you are ready to go.

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>