I'm on a clean install of Ubuntu 10.04 LTS. My monitor's native resolution is 1280x1024. However, in the Monitor Preferences application, I am only presented with 640x480 and 800x600 as options. My video card is an on board Matrox G200eW. I tried installing the proprietary driver from Matrox's website, but the installer immediately throws four errors. I also tried using xrandr to set my resolution, but it simply pops back saying "Size 1280x1024 not found in available modes." How can I get 1280x1024 added to my available sizes to that I can switch to it?
Installing the proprietary driver might help!
You can also put new screen modes in the configuration file called
/etc/X11/xorg.conf but there is no default since everything is probed every time X starts. So to get a good default you can have Xorg write the probed config to file. This is done by shutting down X and the restarting, telling X on the commandline that it only has to write a config file.
So firstly print or write down these instructions ;)
Then press Ctrl + Alt + F1 to go to a console. There you will have to login. Just login as your normal privileged user.
To stop X use this command:
sudo service gdm stop
and then to have X generate a new configfile
sudo Xorg -configure
The Xorg command will tell you where it have saved the config and you can now choose to return to X if you are more comfortable with a GUI.
Restart X by using this command
sudo service gdm start
Now edit you new xorg.conf and save it as
/etc/X11/xorg.conf find the section that looks like the one below and add the videomodes you want (the
Modes line properly isn't there, but just add it after
Depth like I have done below.
Section "Screen" Identifier "Default Screen" Device "NVIDIA Corporation NV34 [GeForce FX 5200]" Monitor "CM752ET" DefaultDepth 16 SubSection "Display" Depth 24 Modes "1024x768" "800x600" EndSubSection EndSection
If your driver supports xrandr this should work:
Use this command:
cvt width height
I will give an output like this:
1280x1000 59.93 Hz (CVT) hsync: 62.21 kHz; pclk: 105.50 MHz Modeline "1280x1000_60.00" 105.50 1280 1360 1488 1696 1000 1003 1013 1038 -hsync +vsync
Copy the numbers after 105.5
Then use these commands:
xrandr --newmode name 105.50 1280 1360 1488 1696 1000 1003 1013 1038 -hsync +vsync xrandr --addmode name
The first command will create a new mode with name, the second will add that mode to the available list.
Now you should be able to select your desired resolution from the drop-box in the usual menu.
(II) MGA(0): Not using default mode "1280x1024" (hsync out of range)
You need to define a monitor section in xorg.conf with a sufficiently broad hsync range.
Section "Monitor" Identifier "MyMonitor" HorizSync xx-yy EndSection
It would be best if you put the exact hsync range for your monitor.
I believe this is happening because the video driver is unable to get correct EDID information from the monitor. You might also need to experiment with your driver's settings to tell it to ignore the EDID information it's getting from the monitor.
A common cause of this problem is the monitor sending bad (or no) resolution information to the driver. The driver then restricts itself to common defaults (e.g. 640x480 or 800x600, or sometimes 1024x768). Sometimes a bad cable is at fault.
So first verify if your monitor info is getting through properly, and if not react:
sudo get-edidto verify the extended display data. For example I get:
Download Phoenix EDID Designer and run it with
wine Phoenix.exe. In a few clicks you can set the native resolution of your monitor, invent a manufacturer ID and serial number, and be on your way. Save this as a "raw" file. To keep things simple enter only the native resolution of your monitor.
xorg.confand add a
Section "Device" VendorName "NVIDIA Corporation" BoardName "GeForce GT 430" ... Option "CustomEDID" "DFP-0:/home/bnesbitt/XP-17-EDID.raw" EndSection
Restart the X server or (if you're brave) reboot.
For clarity that error message was 'The EDID data should not be trusted as the VBE call failed. EDID claims 255 more blocks left EDID blocks left is wrong. Your EDID is probably invalid.'.
This answer suggests setting the refresh and sync rates for the monitor. Use your monitor's specification to find its values, then put them like this:
Section "Monitor" Identifier "Monitor0" VendorName "Unknown" ModelName "CRT-0" HorizSync 31.0 - 81.0 VertRefresh 56.0 - 76.0 EndSection