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?
6 Answers
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
-
Thanks. Your instructions for getting an xorg.conf file worked great. I had multiple SubSection "Display" sections (each with a different depth, and all with the additional element Viewport 0 0). I added Modes "1024x768" "800x600" "1280x1024" to all of them. Unfortunately, this doesn't seem to have done anything. I know it's reading this config file, as adding garbage to the top of it causes X to not load. However, I still only have 640x480 and 800x600, and xrandr still won't let me set 1280x1024 as my resolution. Aug 10, 2010 at 22:29
-
Then it is properly your graphics driver that tells X that it does not support any higher than 800x600 :( Take a look at /var/log/Xorg.0.log (Xorg logfile) you can put it up at pastebin.com and link to it here if you have trouble deciphering it. Aug 10, 2010 at 22:38
-
Thanks. I found two suspicious lines in Xorg.0.log. (II) MGA(0): Not using default mode "1280x1024" (hsync out of range) (II) MGA(0): Not using mode "1280x1024" (no mode of this name) I don't see hsync being defined anywhere in my xorg.conf file. Should I be defining that somewhere? Aug 10, 2010 at 23:36
-
Have a look at Li Lo's anwser ubuntu.stackexchange.com/questions/1861/… Aug 11, 2010 at 6:26
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.
Something like:
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.
I would recommend, correctly installing your drivers. Then i am sure if your graphic card is capable of displaying the resolution 1280x1024 it will.
:)
-
I tried to install the driver from Matrox's website, but it's over four years old and immediately starts throwing errors when I run the installer. Is there any other place I should be looking for the installer? Aug 10, 2010 at 18:53
-
Update: I hadn't though to check in Synaptic to see if the driver was already installed. According to Synaptic, the driver is installed already. Aug 10, 2010 at 23:42
-
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
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:
- Run
sudo get-edid
to 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.Back up
xorg.conf
and add aCustomEDID
option: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.'.