Why can't I get the right screen resolution in Ubuntu?

My screen resolution in windows and previous version of ubuntu (9.04) was 1152 x 864.

But in Ubuntu 10.04 it gives me an option of 1024 x 786 and 1360 x 786, how can I change it to 1152 x 864 ?

Is there any way I can change my screen resolution to 1152 x 864 ?

Thanks.

Edit : I am sorry I forgot to mention my graphic card details.
It's Intel(R) 82945G Express Chipset Family.

Edit 1 : This is what I have tried according to Matan Eldan.

searock@searock-desktop:~$ cvt 1152 864

1152x864 59.96 Hz (CVT 1.00M3) hsync: 53.78 kHz; pclk: 81.75 MHz Modeline "1152x864_60.00" 81.75 1152 1216 1336 1520 864 867 871 897 -hsync +vsync

searock@searock-desktop:~$ xrandr --newmode "1152x864_60.00" 81.75 1152 1216 1336 1520 864 867 871 897 -hsync +vsync

searock@searock-desktop:~$ xrandr --addmode S-video 1152x864
xrandr: cannot find output "S-video"

Then I tried executing xrandr command and it displays the resolution but I think I can't add it to the output.

searock@searock-desktop:~$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 4096 x 4096
VGA1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1360x768 59.8
1024x768 60.0*
800x600 60.3 56.2
848x480 60.0
640x480 59.9 59.9
1152x864_60.00 (0x124) 81.0MHz
h: width 1152 start 1216 end 1336 total 1520 skew 0 clock 53.3KHz
v: height 864 start 867 end 871 total 897 clock 59.4Hz

Edit 2 : Thanks to Matan Eldan and Lord.Quackstar, my problem is solved. This is what I have tried.

searock@searock-desktop:~$ cvt 1152 864

1152x864 59.96 Hz (CVT 1.00M3) hsync: 53.78 kHz; pclk: 81.75 MHz Modeline "1152x864_60.00" 81.75 1152 1216 1336 1520 864 867 871 897 -hsync +vsync

searock@searock-desktop:~$ xrandr --newmode "1152x864_60.00" 81.75 1152 1216 1336 1520 864 867 871 897 -hsync +vsync

searock@searock-desktop:~$ xrandr --addmode S-video 1152x864
xrandr: cannot find output "S-video"

searock@searock-desktop:~$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 4096 x 4096
VGA1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1360x768 59.8
1024x768 60.0*
800x600 60.3 56.2
848x480 60.0
640x480 59.9 59.9
1152x864_60.00 (0x124) 81.0MHz
h: width 1152 start 1216 end 1336 total 1520 skew 0 clock 53.3KHz
v: height 864 start 867 end 871 total 897 clock 59.4Hz

searock@searock-desktop:~$ xrandr --addmode VGA1 1152x864_60.00


Solution 1:

Due to buggy hardware or drivers, your monitor's correct resolutions may not always be detected. For example, the EDID data block queried from your monitor may be incorrect.

If the mode already exists, but just isn't associated for the particular output, you can add it like this:

$ xrandr --addmode S-video 800x600

If the mode doesn't yet exist, you'll need to create it first by specifying a modeline:

$ xrandr --newmode

You may create a modeline using the gtf or cvt utility. For example, if you want to add a mode with resolution 800x600, you can enter the following command: (The output is shown following.)

$ cvt 800 600 # 800x600 59.86 Hz (CVT 0.48M3) hsync: 37.35 kHz; pclk: 38.25 MHz Modeline "800x600_60.00" 38.25 800 832 912 1024 600 603 607 624 -hsync +vsync

Then copy the information after the word "Modeline" into the xrandr command:

$ xrandr --newmode "800x600_60.00"
38.25 800 832 912 1024 600 603 607 624 -hsync +vsync

After the mode is entered, it needs to be added to the output using the --addmode command as explained above.

Source: https://wiki.ubuntu.com/X/Config/Resolution

Solution 2:

I just ran into same problem and solved by following steps:

1.. Find configuration for desired resolution and add it to xrandr:

$ gtf 1920 1080 60

  # 1920x1080 @ 60.00 Hz (GTF) hsync: 67.08 kHz; pclk: 172.80 MHz
  Modeline "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync

$ xrandr --newmode "1920x1080" 172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync
$ xrandr --addmode VGA1 1920x1080

2.. then this new mode can be used:

$ xrandr --output VGA1 --mode 1920x1080