Xorg unnütze Modes loswerden

Kamikaze

Warrior of Sunlight
Teammitglied
Abgesehen von der nativen Auflösung bietet mir Xorg nur 4:3 Auflösungen an:
Code:
# xrandr
Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 8192 x 8192
eDP-1 connected 3840x2160+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   3840x2160     60.00*+
   2048x1536     60.00
   1920x1440     60.00
   1856x1392     60.01
   1792x1344     60.01
   1600x1200     60.00
   1400x1050     59.98
   1280x1024     60.02
   1280x960      60.00
   1024x768      60.04    60.00
   960x720       60.00
   928x696       60.05
   896x672       60.01
   800x600       60.00    60.32    56.25
   700x525       59.98
   640x512       60.02
   640x480       60.00    59.94
   512x384       60.00
   400x300       60.32    56.34
   320x240       60.05
Die fehlenden 16:9 Auflösungen habe ich per ModeLine selbst ergänzt. Die funktionieren auch aber leider werde ich die ganzen nutzlosen Auflösungen nicht los. Option "DefaultModes" "false" in der Monitor Section hat leider keine Wirkung.
 
Klar.

/usr/local/etc/X11/xorg.conf.d/video.conf
Code:
Section "Files"
    ModulePath     "/usr/local/lib/xorg/modules/extensions/.xorg/"
    ModulePath     "/usr/local/lib/xorg/modules"
EndSection

Section "ServerLayout"
    Identifier     "server0"
    Screen         0 "screen0"
EndSection

Section "Screen"
    Identifier     "screen0"
    Device         "intel0"
EndSection

Section "Device"
    Identifier     "intel0"
    Driver         "modesetting"
    BusID          "PCI:0:2:0"
    Option         "PageFlip"        "false"          #modesetting
    Option         "Monitor-eDP-1"   "monitor_eDP1"   #modesetting
EndSection

Section "Monitor"
    Identifier     "monitor_eDP1"
    # Real size
    #isplaySize    344 194         # In mm, according to EDID
    # Fake size for 288 DPI (96 * 3)
    DisplaySize    338.667 190.500
    # Additional 16:9 modes
    #               mode       dotclk horizontal          vertical            flags
    ModeLine       "3200x1800" 345.60 3200 3200 3200 3200 1800 1800 1800 1800
    ModeLine       "2560x1440" 221.18 2560 2560 2560 2560 1440 1440 1440 1440
    ModeLine       "1920x1080" 124.42 1920 1920 1920 1920 1080 1080 1080 1080
    ModeLine       "1600x900"   86.40 1600 1600 1600 1600  900  900  900  900
    ModeLine       "1280x720"   55.30 1280 1280 1280 1280  720  720  720  720
EndSection
 
Ich habe die Option mal wieder in die Monitor Sektion eingepflegt. Der Auszug aus dem Log:

Code:
[   581.722] (II) modeset(0): Output eDP-1 connected
[   581.722] (II) modeset(0): Using exact sizes for initial modes
[   581.723] (II) modeset(0): Output eDP-1 using initial mode 3840x2160 +0+0
[   581.723] (II) modeset(0): Using default gamma of (1.0, 1.0, 1.0) unless otherwise stated.
[   581.723] (**) modeset(0): Display dimensions: (338, 190) mm
[   581.723] (**) modeset(0): DPI set to (288, 288)
[   581.723] (II) Loading sub module "fb"
[   581.723] (II) LoadModule: "fb"
[   581.723] (II) Loading /usr/local/lib/xorg/modules/libfb.so
[   581.724] (II) Module fb: vendor="X.Org Foundation"
[   581.725]     compiled for 1.18.4, module version = 1.0.0
[   581.725]     ABI class: X.Org ANSI C Emulation, version 0.4
[   581.725] (==) Depth 24 pixmap format is 32 bpp
[   581.783] (==) modeset(0): Backing store enabled
[   581.783] (==) modeset(0): Silken mouse enabled
[   581.783] (II) modeset(0): RandR 1.2 enabled, ignore the following RandR disabled message.
[   581.825] (==) modeset(0): DPMS enabled
[   581.825] (WW) modeset(0): Option "DefaultModes" is not used
[   581.826] (II) modeset(0): [DRI2] Setup complete
[   581.826] (II) modeset(0): [DRI2]   DRI driver: i965
[   581.826] (II) modeset(0): [DRI2]   VDPAU driver: i965
[   581.875] (--) RandR disabled

Die Option wird also ignoriert. Warum ist mir nur nicht klar.
 
Die fehlenden ModeLines ergänzen ist kein Problem. Wie werde ich die ganzen 4:3 Auflösungen los, das ist die Frage.

Code:
# xrandr --delmode eDP-1 2048x1536
X Error of failed request:  BadAccess (attempt to access private resource denied)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  19 (RRDeleteOutputMode)
  Serial number of failed request:  26
  Current serial number in output stream:  27

Eigentlich würde ich das ja schon gerne in der .conf erledigen aber nicht mal per xrandr funktioniert es.
 
Ich hatte es so verstanden, dass die Option generell nicht greift. Egal, ob man manuell hinzufügt oder welche entfernen will. Failsafe in beide Richtungen quasi.
 
Die funktionieren auch aber leider werde ich die ganzen nutzlosen Auflösungen nicht los.

Schau mal hier: http://download.nvidia.com/XFree86/Linux-x86_64/1.0-8762/README/appendix-d.html

Ich weiß nicht, ob dieses Manuel für deinen Xserver gültig ist, aber es gibt eine Option "ModeValidation", bei der man definieren kann, ob die VESA-Modi oder die im Xserver hartkodierten Modi mit in den Pool der Modi aufgenommen werden sollen oder nicht (NoVesaModes, NoXServerModes).

Rob
 
Scheint ein failsafe vom KMS zu sein, aber ich habs nur überflogen:

https://gitlab.freedesktop.org/xorg/xserver/issues/26
Nee, das ist es nicht. Das EDID liefert lediglich die native Auflösung. Der Treiber ergänzt dann einen ganzen Batzen 4:3 Auflösungen, die ich alle gar nicht haben will. Und das will ich unterdrücken.

Die fehlenden 16:9 Auflösungen habe ich selbst ergänzt, das geht auch ohne Probleme:
Code:
# xrandr | awk -F'[ x]+' '/^ *[0-9]+x[0-9]/&&($2/$3==16/9)'
   3840x2160     60.00*+  60.00
   3200x1800     60.00  
   2560x1440     60.00  
   1920x1080     60.00  
   1600x900      60.00  
   1280x720      60.00

Die anderen Modi kommen anscheinend vom modesetting Treiber:
Code:
# xrandr | awk -F'[ x]+' '/^ *[0-9]+x[0-9]/&&($2/$3==4/3)'
   2048x1536     60.00  
   1920x1440     60.00  
   1856x1392     60.01  
   1792x1344     60.01  
   1600x1200     60.00  
   1400x1050     59.98  
   1280x960      60.00  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   800x600       60.00    60.32    56.25  
   700x525       59.98  
   640x480       60.00    59.94  
   512x384       60.00  
   400x300       60.32    56.34  
   320x240       60.05
 
Zurück
Oben