How to configure a desired screen resolution

Jin Guojun jguojun at sbcglobal.net
Fri Oct 17 21:28:16 UTC 2014


Did a quite amount of research and believe that the EDID probe for monitor resolution during X start up somehow wants to be smart but causing this trouble. The key problem is that X server does not keep all possible modes after it probed a monitor characteristics. However Nvidia driver seem to be better than ATI and VESA. It keeps a lot of modes (see xrandr case 112 an the end).


Another issue is that Screen resolution is based on the first resolution reported in xrandr query (not clear how the first resolution is made). For example, 


Screen 0: minimum 640 x 480, current 1920 x 1080, maximum 1920 x 1080
default connected 1920x1080+0+0 0mm x 0mm
   1280x1024       0.0
   1920x1080       0.0*
   1024x768        0.0
   800x600         0.0
   640x480         0.0

In this case, even xrandr reported current resolution is 1920x1080, but actual screen size is 1280x1024. This is consistent in the rest of researches.

In using VESA driver, newmode will not take effective due to crtc 0 Configuration error [see xrandr output 53-56 below]. A few cases posted on Internet due
 to video card resolution is less than monitor, which is not the case here -- video card has higher resolution than monitors.

When attaching two monitors to the system, X generates correct screen ratio/size (case [106] below).

Also tried an add-on Nvidia card, and it gets a little shrunk screen size (1440x900) although it has 1600x900 mode, but it still looks good (where1280x1024 is a pretty flatten screen on 16:9 ratio monitor).

SUMMARY:
Neither Option  "PreferredMode" "1600x900" nor xrandr --newmode works on this problem, which indicates when X doing smart resolution detection, it should not phase out available resolution for video output: too smart to be good. X server should be smart enough to detect monitor feature but not throw away good resolution modes (at least resolutions lower than video card) because EDID
 (Extended display identification data) does not always provide enough monitor characteristics and X should not make wrong decision to diminish correct screen sizes. Hope this can be fix in future X release.

The new ATI driver I tried in 10.0 release had some fatal issue reported at that time to cause new Radeon card malfunctioning, and hopefully it is fixed in current driver. I will try to build latest ATI driver to see if it works.

Working around:
1) using Nvidia video card which seems always being better than ATIs for X.
2) attach another monitor just for starting X to get better screen ratio. It can be removed after X started. 


--------------------- xrandr output
 ---------------

[52] : xrandr 
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 640 x 480, current 1920 x 1080, maximum 1920 x 1080
default connected 1920x1080+0+0 0mm x 0mm
   1280x1024       0.0 
   1920x1080       0.0*
   1024x768        0.0 
   800x600         0.0 
   640x480         0.0 

[53] : xrandr --newmode "1600x900"     60.0    1600 1616 2040 2056     900 908
 926 952

[54] : xrandr 
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 640 x 480, current 1920 x 1080, maximum 1920 x 1080
default connected 1920x1080+0+0 0mm x 0mm
   1280x1024       0.0
   1920x1080       0.0* 
   1024x768        0.0 
   800x600         0.0 
   640x480         0.0 
  1600x900 (0x10d)   60.0MHz
        h: width  1600 start 1616 end 2040 total 2056 skew    0
 clock   29.2KHz
        v: height  900 start  908 end  926 total  952           clock   30.7Hz
[55] : xrandr --addmode default 1600x900
xrandr: Failed to get size of gamma for output default

[56] : xrandr --output default --mode 1600x900
xrandr: Failed to get size of gamma for output default
xrandr: Configure crtc 0 failed

[57] : xrandr 
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 640 x 480, current 1920 x 1080, maximum 1920 x 1080
default connected 1920x1080+0+0 0mm x 0mm
   1280x1024      
 0.0  
   1920x1080       0.0* 
   1024x768        0.0  
   800x600         0.0  
   640x480         0.0  
   1600x900       30.7  



---- attaching two monitors and start X, the screen size is 1600x900
[106] : xrandr 
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 640 x 480, current 1600 x 1024, maximum 1600 x 1024
default connected 1600x1024+0+0 0mm x 0mm
  
 1600x900        0.0  
   1280x1024       0.0  
   1024x768        0.0  
   800x600         0.0  
   640x480         0.0  
   1600x1024       0.0* 


-------- using add on NVidia PCI card and screen size is 1440x900 although 1600x900 will work

[112] : xrandr 
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 320 x 240, current 1920 x 1080, maximum 1920 x 1080
default connected
 1920x1080+0+0 0mm x 0mm
   1440x900       75.0     60.0  
   1920x1080      60.0     75.0* 
   1280x800       60.0  
   1280x1024      60.0     75.0  
   1400x1050      75.0     60.0  
   1280x960       60.0  
   1152x864       75.0  
   1024x768       70.0     60.0     75.0  
  
 896x672        60.0  
   832x624        75.0  
   800x600        60.0     56.0     75.0     72.0     65.0  
   700x525        75.0     60.0  
   640x512        75.0     60.0  
   640x480        67.0     60.0     75.0     73.0  
   720x400        70.0  
  
 576x432        75.0  
   512x384        75.0     70.0     60.0  
   416x312        75.0  
   400x300        75.0     72.0     60.0     56.0  
   320x240        75.0     73.0     60.0  
   1600x900       66.0  





On Thursday, October 16, 2014 11:49 AM, Arto Pekkanen <isoa at kapsi.fi> wrote:
 


Maybe there is a workaround .... have you tried 10.1-RC kernel and userland with the new X.org stack?

http://www.asus.com/Motherboards/A88XMA/ <-- this gives me the idea that the integrated GPU/APU might be Radeon 6xxx compatible ...

https://wiki.freebsd.org/Graphics <-- here it says that Radeon 6xxx series should work if you can cope without suspend/resume

Just a moment ago the old 1.7 X.org graphics stack was obsoleted in favor of the new 1.12 X.org and KMS drivers.

If vesa is problematic then maybe the new gfx stack might work better. If you install X.org with pkg from official repository, you get the new X.org.


On 16.10.2014 2:11, Jin Guojun wrote:
> The
 latest xorg 1.7.7 seems too smart to configure. It always uses what it thinks and ignores what xorg.conf file tells to do.
> 
> 
> I am using Vesa driver on 8.4-R / 10.1-RC amd kernel on the same hardware (ASUS A88XM-A motherboard) and experienced this difficulty.
> 
> Two monitors: one has 1600x900 resolution and the other has 1920x1080 res.
> When attaching 1600x900 monitor to the system, xorg-1.7.7 X server configures the screen as 1600x900, which is nice and it is what I wanted.
> When connecting 1920x1080 monitor to the system, X server configures screen as
 1920x1080, which is correct, but is will not give 1600x900 resolution regardless if the Modes "1600x900" is in Screen section in xorg.conf file.
> 
> If attaching both monitors to the system, then both monitors will be configured as 1600x900, thus both monitors are capable to work in 1600x900 resolution.
> 
> Now, how to tell (force) X server to use 1600x900 resolution for the 1920x1080 monitor?
> 
> -Jin 
> _______________________________________________
> freebsd-x11 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-x11
> To unsubscribe, send any mail to "freebsd-x11-unsubscribe at freebsd.org
"
> 


More information about the freebsd-x11 mailing list