[How to] Tackling Screen Resolution Problems in Linux

Many of us may feel screen resolution as the biggest pest in any OS. If we don’t get the screen resolution we want we get real fed up with the UI (dont we?). Personally, I very much hate if screen resolution gets screwed up and also have faced a lot of problems on that.

So I thought I would make a post on the common problems I faced in ubuntu and I hope it would be useful for other distros too.

Sync. Out of Range

This happened for me with Gusty install. Just press Ctrl +alt+f2 and you should get it all right.

NVIDIA DRIVERS

NVIDIA Proprietary Drivers when installed through repositories, can cause problems with the screen resolution. This really test the patience of an individual. So for people who don’t know please install “nvidia-settings” first from the repositories(mostly, should be available there). There in the ‘Display Configuration’ you should be having the screen resolution you need. Set it and if you want this resolution everytime you login then, click “Save to XConfiguration File” button. You SHOULD be root/ use ‘gksu’ to do this.

Secondly, the problem could be that you may not be having the desired resolution in the drop-down menu. In that case, click on the “Advanced” button and add your desired but compatible resolution there. If it asks that it is unaviable and whether it should do what is possible say “Apply what is possible”. I think that should the trick.

Thirdly, sometimes a bug is there where the set resolution may not become permanent even after saving it to the Xconfig file i.e. /etc/X11/xorg.conf . There is a way to fix this, however. Only by editing ‘edid.bin’ using hex editor. Thats the best that could be done.

(viii) Open edid.bin in ghex and also open scientific caluculator ready at hand

(ix) Click decimal and enter ‘979’, change to hexadecimal and see the value to be ‘3C9’

(x) You will have to split it as ‘C9’ and ‘3’. And, in your hex editor it should be something like this

“01 01 01 64 19 C9 77 31 00 26 30 4F 88 36 00 42 FF ”

notice the positions of C9 and 3.

(xi) Again in your gnome caluculator input 1024 in dec mode and see in hex mode. The value should be ‘400’. Again split it as ’00’ and ‘4’ and enter them in places of ‘C9’ and ‘3’ respectively. 01 01 01 64 19 00 77 41 00 26 30 4F 88 36 00 42 FF ”

(xii) If you want to change the Y resolution also i.e. ‘768’ then follow the same procedure as that of above.

(xiv) Make yourself root or using sudo/gksu copy edid.bin to /etc/X11.

(xv) Restart the computer and see if problem is solved. If not, Go on reading this.

(xvi) Open /etc/X11/xorg.conf as root, in gedit/vim.

(xvii) Then in the “Screen” section add the following: Option "CustomEDID" "DFP-0:/etc/X11/edid.bin"

replace the display device name (DFP-0) with your own that would be mentioned in nvidia-settings

(xviii) Save and restart PC and it should work

LINUX KERNEL UPDATE

After each kernel update, you will have to reinstall Nvidia’s proprietary drivers. This should change with the DKMS (Dynamic Kernel Module Support) present in Linux Kernel 2.6.27 and Ubuntu Intrepid Ibex 8.10

CONCLUSION

The above three are the common problems I faced with Ubuntu.Feel free to mention problems you faced by posting a comment

A lot of thanks to this post by Fresh New Page Blog, for the post on editing EDID data

13 Comments

Man! This is complicated business. Luckily I haven’t had such problems with Ubuntu Hardy on my laptop yet. But then, I don’t have an NVIDIA graphics card. I have however faced several problems with openSuSE and Fedora on my desktop. I have a 26 inch screen and I keep getting an 800×600 resolution with the on-board graphics card, while I need a resolution of 1360×768. I haven’t managed to fix these issues yet- although I have killed X several times trying. In fact, even XP won’t give anything better than 1024×768. Any insights?

I tried your solution. I wan’t able to interpret the HEX for the bin file. I wasn’t able to find the 77 codes. I also tried to search for the resolution HEX codes. It seams as if Nvidia encodes the file differently now. It doesn’t seem as simple as HEX DEC resolution conversion. :( Am I correct ? NVIDIA Sucks, they should provide a way in their GUI for custom resolution. It sucks cause I am stuck with windows for now.
Is there another way to edit EDID files ?

I have a new Acer widescreen monitor with a 1366 X 768 screen resolution. I have not been able to get an acceptable looking setup with either Windows XP or Linux. I have tried Ubuntu, Xubuntu, Mandriva, Mepis, Mint, Debian, Vector, ect, ect. The only one that has worked is Puppy Linux. I am using it right now.

My graphics card is ATI Technologies Inc. 3D Rage Pro 100. By “acceptable” screen resolution, I mean just having a screen that doesn’t look stretched out with font I can read. With Ubuntu, there were no proprietary drivers available for this card that I could find. Now I have a friend who has an Nvidia card and his screen looks great. The monitor I am using is an Acer X183H, resolution 1366 X 768.

i was able to get a edid.bin file created with the resolution i was after. I havent tried it yet, but i was wondering if i could use this same method to change the offset, by that i mean correct the overscan on my lcd monitor. Could i just plug in the h2, h3 and v2, v3 values like i just did for h1 and v1 and edit the file? Ill go ahead and try soon.
thanks for the lesson
sam

Thank you for the excellent post. I install Ubuntu on older P-IVs and P-IIIs and am very disappointed in the new Ubuntu release. It’s not unusual to have to tinker with video to get Ubuntu working on these older machines. Now with Ubuntu 10.04 it’s become significantly harder to achieve success. At least your post gives me the information I need. Thanks.

i use a geforce 7950gt card ubuntu 10.04 and a 32″ lcd TV (noname) DVI cenction, I tryet thes solution but all i get is a reseluton of 640×480 and it rifuses to go any higer, if i just put in a modline (not useing thes solution) im abel to get ubuntu to run at 1280×720, in windows 7 i run at 1366×768 (native reselution of my 32″ tv) whet just a modified monitor.inf no problem at all

I changed 1360×768 to 1920×1080, it also changed the vfreq from 60 to 32! ( calculated from pixel freq i think) I doubt this wil work, need to change vfreq also back to 60 for this work. How to do that?. Thanks for your post though.