I had this problem a few days back and it took me sometime to figure out what to do.
I have a
NVIDIA GTX460 Graphics card on my current machine and a
Acer 22" Monitor. After installing
NVIDIA driver, my display was stuck at
640x480 and no matter what I do, nothing fixed it. This is an unusual problem with NVIDIA driver. I am assuming
ATI driver might have similar issues.
Fix Linux display issue
So if you are having problem with your display or if your display is stuck at
640x480 then try the following:
root@kali:~# vi /etc/X11/xorg.conf
You will see something like this
Section "Monitor" # HorizSync source: edid, VertRefresh source: edid Identifier "Monitor0" VendorName "Unknown" ModelName "Acer X223W" HorizSync 28.0 - 33.0 VertRefresh 43.0 - 72.0 Option "DPMS" EndSection
Now the lines that control display in monitor is the following two:
HorizSync 28.0 - 33.0 VertRefresh 43.0 - 72.0
Depending on your monitor size, you have to find the correct HorizSync VertRefresh rates.
Find supported HorizSync VertRefresh rates in Linux
This took me quite some time to determine exactly what I am looking for. I obviously tried
xrandr command like anyone would do..
root@kali:~# xrandr --query
This gave me an output like the following
root@kali:~# xrandr --query Screen 0: minimum 8 x 8, current 1680 x 1050, maximum 16384 x 16384 DVI-I-0 disconnected (normal left inverted right x axis y axis) DVI-I-1 disconnected (normal left inverted right x axis y axis) DVI-I-2 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 474mm x 296mm 1680x1050 60.0*+ 1600x1200 60.0 1440x900 75.0 59.9 1400x1050 60.0 1360x765 60.0 1280x1024 75.0 1280x960 60.0 1152x864 75.0 1024x768 75.0 70.1 60.0 800x600 75.0 72.2 60.3 56.2 640x480 75.0 72.8 59.9 HDMI-0 disconnected (normal left inverted right x axis y axis) DVI-I-3 disconnected (normal left inverted right x axis y axis)
Bugger all, this doesn’t help me to find supported HorizSync VertRefresh rates. I went around looking for options and found this tool that will do exactly what you need to find.
Find monitor HorizSync VertRefresh rates with ddcprobe
First we need to install
xresprobe which contains
root@kali:~# apt-get install xresprobe
Once xresprobe is installed, then we can run the following command to find all supported monitor HorizSync VertRefresh rates including supported Display Resolution … well the whole lot .. some even I wasn’t aware.
root@kali:~# ddcprobe vbe: VESA 3.0 detected. oem: NVIDIA vendor: NVIDIA Corporation product: GF104 Board - 10410001 Chip Rev memory: 14336kb mode: 640x400x256 mode: 640x480x256 mode: 800x600x16 mode: 800x600x256 mode: 1024x768x16 mode: 1024x768x256 mode: 1280x1024x16 mode: 1280x1024x256 mode: 320x200x64k mode: 320x200x16m mode: 640x480x64k mode: 640x480x16m mode: 800x600x64k mode: 800x600x16m mode: 1024x768x64k mode: 1024x768x16m mode: 1280x1024x64k mode: 1280x1024x16m edid: edid: 1 3 id: 000d eisa: ACR000d serial: 7430d0b5 manufacture: 43 2007 input: analog signal. screensize: 47 30 gamma: 2.200000 dpms: RGB, active off, suspend, standby timing: 720x400@70 Hz (VGA 640x400, IBM) timing: 720x400@88 Hz (XGA2) timing: 640x480@60 Hz (VGA) timing: 640x480@67 Hz (Mac II, Apple) timing: 640x480@72 Hz (VESA) timing: 640x480@75 Hz (VESA) timing: 800x600@60 Hz (VESA) timing: 800x600@72 Hz (VESA) timing: 800x600@75 Hz (VESA) timing: 832x624@75 Hz (Mac II) timing: 1024x768@87 Hz Interlaced (8514A) timing: 1024x768@70 Hz (VESA) timing: 1024x768@75 Hz (VESA) timing: 1280x1024@75 (VESA) ctiming: 1600x1200@60 ctiming: 1152x864@75 ctiming: 1280x960@60 ctiming: 1360x850@60 ctiming: 1440x1440@60 ctiming: 1440x1440@75 ctiming: 1400x1050@60 dtiming: 1680x1050@77 monitorrange: 31-84, 56-77 monitorserial: LAV0C0484010 monitorname: X223W root@kali:~#
Now the line I am interested is this:
monitorrange: 31-84, 56-77
That’s the highest supported HorizSync VertRefresh rates for my monitor.
ddcprobe also gave me few more useful info, like
monitorserial: LAV0C0484010 monitorname: X223W
Now time to put it all together.
Edit xorg.conf file to with correct HorizSync VertRefresh rates
So now we know the exact values we need to know. We can now edit our
/etc/X11/xorg.conf file with the values we want. So I’ve edited my
xorg.conf file to look like the following:
root@kali:~# vi /etc/X11/xorg.conf
Section "Monitor" # HorizSync source: edid, VertRefresh source: edid Identifier "Monitor0" VendorName "Unknown" ModelName "Acer X223W" HorizSync 31.0 - 84.0 VertRefresh 56.0 - 77.0 Option "DPMS" EndSection
Save and exit
xorg.conf file, restart and I am now enjoying
1680x1050 display on my Monitor. Here’s the
xorg.conf file I have right now:
# nvidia-xconfig: X configuration file generated by nvidia-xconfig # nvidia-xconfig: version 304.48 (pbuilder@cake) Wed Sep 12 10:54:51 UTC 2012 # nvidia-settings: X configuration file generated by nvidia-settings # nvidia-settings: version 304.88 (pbuilder@cake) Wed Apr 3 08:58:25 UTC 2013 Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" 0 0 InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" Option "Xinerama" "0" EndSection Section "Files" EndSection Section "InputDevice" # generated from default Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/psaux" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" # generated from default Identifier "Keyboard0" Driver "kbd" EndSection Section "Monitor" # HorizSync source: edid, VertRefresh source: edid Identifier "Monitor0" VendorName "Unknown" ModelName "Acer X223W" HorizSync 31.0 - 84.0 VertRefresh 56.0 - 77.0 Option "DPMS" EndSection Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce GTX 460" EndSection Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "Stereo" "0" Option "metamodes" "nvidia-auto-select +0+0" SubSection "Display" Depth 24 EndSubSection EndSection
This fixed my problem quite well. It might be useful to someone else out there.
Reference Websites and posts
The biggest help is always
X.org website for any display related issues.
I also later realized the that
Eddy posted a similar problem in one of my posts where he fixed this problem too in exactly similar way.
doh! I should’ve just searched my own posts and readers comments. Eddy’s post doesn’t outline how to find the HorizSync VertRefresh rates though. Either way, Eddy’s post was the most accurate I found related with my problem.
Here’s Eddy’s post and my comments for references: