web-dev-qa-db-fra.com

Pourquoi les erreurs xrandr "BadMatch", "BadName", "Gamma Failed" se produisent-elles?

Je n'ai pas trouvé de solution unique à de telles erreurs, malgré le nombre assez important d'utilisateurs qui les ont.

Je veux donc essayer de trouver une solution moi-même. Cependant, je ne sais pas pourquoi ils se produisent ...

Y a-t-il quelqu'un qui sait pourquoi? Vous n'avez pas dit pourquoi chaque erreur se produit, une seule serait géniale!

Exemples:

Erreur BadMatch:

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  150 (RANDR)
  Minor opcode of failed request:  18 (RRAddOutputMode)
  Serial number of failed request:  18
  Current serial number in output stream:  19

Erreur BadName:

Error of failed request: BadName (named color or font does not exist)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 11 (RRQueryOutputProperty)
Serial number of failed request: 39
Current serial number in output stream: 39

Erreur gamma:

xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1920 x 1080, current 1920 x 1080, maximum 1920 x 1080
default connected primary 1920x1080+0+0 0mm x 0mm
   1920x1080       0.0*
13
TellMeWhy

Info minimum

Vous allez poser une question puis ajouter le lien généré par cette commande

Sudo apt-get install pastebinit; Sudo sh -c "lsb_release -sd; dmidecode -s system-product-name; echo ==; lshw -c display; echo ==; xrandr --verbose; echo ==; cat /etx/X11/xorg.conf" | tee ~/Desktop/ubuntu-graphic-info.txt | pastebinit


Dépannage

Petite discussion

Bien plus compliqué que je ne le pensais, j'ai essayé de jouer avec mon processeur graphique Intel pendant un certain temps avec xrandrname__. Parfois, je reçois des erreurs inattendues. Ceci est un été pour mon expérience.

Voici une liste de pile complète simplifiée, si je comprends bien.

xrandr
  └─ Xorg (w/ driver specific module)
      └─ kernel
          └─ driver
               │ 
             graphic card
               └─ cables (kvm switch/connection adapter)
                    └─ monitor

C'est vraiment une pile volumineuse à dépanner, plus difficile avec du vieux matériel et des mises à jour de pilotes propriétaires glissantes, même un mauvais contact de broche dans un câble VGA DB-15 (ou un câble bon marché) peut faire la différence. En fait, la majorité des problèmes que j'ai lus ici dans Ask Ubuntu concernent simplement les données EDID manquantes/erronées du moniteur, qui blâment: des câbles (commutateur kvm/adaptateur de connexion). Vous pouvez le constater rapidement à partir de xrandr --verbose.

Dans de nombreux cas, les pilotes restreignent également certains modes en raison de données EDID incomplètes ou partiellement incorrectes provenant du Moniteur (erreur du fabricant). L'utilisateur résout ce problème en écrivant le code personnalisé xorg.conf pour le remplacer: Mode, HSync & VSync, EDID, DPI ... en fonction du pilote ( nvidiapar exemple peut ignorerEDID du moniteur)

Je recommande ceci à lire pour les utilisateurs avancés ou ceux fournissant de l'aide ici:

Remarquer:

Soyez prudent lorsque vous lisez des documentations anciennes et des publications fournissant des solutions. Mieux vaut chercher de la documentation sur le lecteur utilisé.

  • Vérifiez la date de publication, la date de dernière modification ou la version du logiciel.
  • modesetname__, DRIou fbname __ type de pilote (framebuffer). (Sachez simplement que je ne suis pas un expert).
  • Xorg a beaucoup fait pour la configuration automatique, donc xorg.conf n'est pas créé par défaut. Même si l'utilisateur en a créé une, il ne devrait pas créer toutes les sections, mais seulement remplacer ce qui est nécessaire. C'est genre de configuration à la volée.

Ma compréhension factice de ces erreurs xrandr/X

Le fils (xrandrname__) ne semble pas savoir ce que son père peut ou va accepter de l'acheter (toutes les capacités du conducteur), alors il va simplement chez sa mère (Xorg) et lui demande de demander à son père ce qu'il veut. Donc, l’un des scénarios suivants se produira:

  • ratio élevé: Fils → (accepter :) Maman → (accepter) papa, tout le monde est heureux!
  • faible ratio: Fils → (: | accepter) Mom → Papa, la vie est dure parfois!
  • cas rare: Fils → (X/rejet) Maman -x : neutre) papa, place au plan B!

Nous obtenons donc ces erreurs lorsque Xorg ou Driver sont incapables de traiter ou de refuser une demande xrandr en raison:

Collecte d'informations de débogage pour des graphiques génériques!

Pourquoi? J'ai examiné de nombreuses questions liées à la résolution xrandr& . Il leur manque beaucoup d'informations sur la configuration de la pile complète. L'ensemble considéré ne mentionnait que la dernière commande ayant échoué. Même, je suggérerais de mettre les résultats complets dans la question afin que nous puissions rechercher des similitudes et relier les questions connexes.

Si aucune donnée EDID n'a été trouvée, commencez par:

Voici une liste de quelques commandes utiles

  1. Informations de fond

    Sudo dmidecode -s system-product-name
    lsb_release -sd
    Xorg -version
    xrandr -v
    Sudo lshw -c display
    
  2. Informations de base

    xrandr --verbose
    cat /etx/X11/xorg.conf
    more /var/log/Xorg.0.log
    
  3. Commandes et options de débogage

    Sudo apt-get install edid-read
    ls /sys/class/drm/*/edid | xargs -i{} sh -c "echo {}; parse-edid < {}"
    
    xrandr --verbose ...
    xtrace xrandr --verbose ...
    
    #no need, only to compare between releases for changes, the default driver parameters
    Sudo sh -c "ls /sys/module/<driver-module-from-lshw>/parameters/ | xargs -L1 -i{} sh -c 'echo -n {} \" \" ; cat /sys/module/<driver-module-from-lshw>/parameters/{}'"
    
    # additional desktop environment setting, for general cases, gnome/unity
    cat ~/.config/monitors.xml
    cat /etc/gnome-settings-daemon/xrandr/monitors.xml
    gsettings list-recursively org.gnome.settings-daemon.plugins.xrandr
    
  4. Options de débogage avancées

    Ajoutez Option "ModeDebug" "true" à Section "Device" à xorg.conf. Pour plus de détails, reportez-vous à la section débogage de nvidia ci-dessous.

Informations de débogage supplémentaires pour les graphiques nvidia!


Un cas de test de débogage avec un pilote Intel

Voici un cas où je peux le reproduire et cela ressemble à un bogue dans xrandrname__. Il est clair, à partir de xtrace& Xorg.0.log, que la mémoire tampon de trame n'est pas redimensionnée dans la 1ère combinaison.

#Seems a bug in xrandr
#Xorg error when changing to bigger resolution without changing a previously defined scale.

#-----------
#system info

$ xrandr --version

xrandr program version       1.4.3
Server reports RandR version 1.4

$ Sudo sh -c "lsb_release -dc;echo; uname -a; Xorg -version;echo; lshw -C display"

Description:    Ubuntu 15.10
Codename:   wily

Linux BlueSkies 4.2.0-25-generic #30-Ubuntu SMP Mon Jan 18 12:31:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

X.Org X Server 1.17.2
Release Date: 2015-06-16
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.13.0-68-generic x86_64 Ubuntu
Current Operating System: Linux BlueSkies 4.2.0-25-generic #30-Ubuntu SMP Mon Jan 18 12:31:50 UTC 2016 x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.2.0-25-generic root=UUID=9f0530d5-e0eb-43fa-b99b-000fa742cf10 ro persistent quiet splash vt.handoff=7
Build Date: 12 November 2015  05:33:29PM
xorg-server 2:1.17.2-1ubuntu9.1 (For technical support please see http://www.ubuntu.com/support) 
Current version of pixman: 0.32.6
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.

  *-display               
       description: VGA compatible controller
       product: 3rd Gen Core processor Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 09
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:26 memory:f6400000-f67fffff memory:e0000000-efffffff ioport:f000(size=64)

$ Sudo sh -c "ls /sys/module/i915/parameters/ | xargs -L1 -i{} sh -c 'echo -n {} \" \" ; cat /sys/module/i915/parameters/{}'"

disable_display  N
disable_power_well  1
disable_vtd_wa  N
edp_vswing  0
enable_cmd_parser  1
enable_execlists  0
enable_fbc  -1
enable_hangcheck  Y
enable_ips  1
enable_ppgtt  1
enable_psr  0
enable_rc6  3
fastboot  N
invert_brightness  0
load_detect_test  N
lvds_channel_mode  0
lvds_downclock  0
lvds_use_ssc  -1
mmio_debug  0
modeset  -1
nuclear_pageflip  N
panel_ignore_lid  1
prefault_disable  N
preliminary_hw_support  0
reset  Y
semaphores  -1
use_mmio_flip  0
vbt_sdvo_panel_type  -1
verbose_state_checks  Y

$ modinfo i915 

filename:       /lib/modules/4.2.0-25-generic/kernel/drivers/gpu/drm/i915/i915.ko
license:        GPL and additional rights
description:    Intel Graphics
author:         Intel Corporation
author:         Tungsten Graphics, Inc.
firmware:       i915/skl_dmc_ver1.bin
srcversion:     BB05D6968744E69AEA30DC2
...
depends:        drm_kms_helper,drm,video,i2c-algo-bit
intree:         Y
vermagic:       4.2.0-25-generic SMP mod_unload modversions

$ xrandr

Screen 0: minimum 8 x 8, current 1726 x 768, maximum 32767 x 32767
LVDS1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 309mm x 173mm
   1366x768      60.07*+  40.02  
   1360x768      59.80    59.96  
   1280x720      60.00  
   1024x768      60.00  
   1024x576      60.00  
   960x540       60.00  
   800x600       60.32    56.25  
   864x486       60.00  
   640x480       59.94  
   720x405       60.00  
   680x384       60.00  
   640x360       60.00  
DP1 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
VGA1 connected 360x200+1366+0 (normal left inverted right x axis y axis) 410mm x 230mm
   1366x768      59.79 +
   1280x1024     60.02  
   1280x720      60.00  
   1024x768      60.00  
   800x600       60.32  
   640x480       60.00  
   720x400       70.08* 
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

Other info not collected 

$ grep intel /var/log/Xorg.0.log

#-------------------------
#case reproducing & debug

## 1st combination different mode & same scale
$ xrandr --output VGA1 --mode 720x400 --right-of LVDS1 --scale 0.5x0.5
$ xtrace xrandr --verbose --output VGA1 --mode 1366x768 --right-of LVDS1 --scale 0.5x0.5

000:<:0030: 28: RANDR-Request(140,21): SetCrtcConfig crtc=0x00000040 timestamp=0x00000000 config timestamp=0x00010a4d x=0 y=0 mode=0x00000000 rr=Rotate_0 outputs=;
000:>:0030:32: Reply to SetCrtcConfig: status=Success(0x00)
screen 0: 1726x768 453x202 mm  96.57dpi
crtc 1:      720x400  70.08 +1366+0 "VGA1"
000:<:0031: 20: RANDR-Request(140,7): SetScreenSize window=0x000000d9 width=1726 height=768 width[mm]=453 height[mm]=202
000:<:0032: 32: RANDR-Request(140,21): SetCrtcConfig crtc=0x00000040 timestamp=0x00000000 config timestamp=0x00010a4d x=1366 y=0 mode=0x000000fc rr=Rotate_0 outputs=0x0000004a;
000:>:0032:32: Reply to SetCrtcConfig: status=Success(0x00)

screen 0: 2049x768 538x202 mm  96.57dpi
crtc 1:     1366x768  59.79 +1366+0 "VGA1"
000:<:002f:  4: Request(36): GrabServer 
000:<:0030: 20: RANDR-Request(140,7): SetScreenSize window=0x000000d9 width=2049 height=768 width[mm]=538 height[mm]=202
000:<:0031: 32: RANDR-Request(140,21): SetCrtcConfig crtc=0x00000040 timestamp=0x00000000 config timestamp=0x00010a4d x=1366 y=0 mode=0x000000f8 rr=Rotate_0 outputs=0x0000004a;
000:>:0030:Error 8=Match: major=140, minor=7, bad=217
000:>:0031:32: Reply to SetCrtcConfig: status=Success(0x00)
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  7 (RRSetScreenSize)
  Serial number of failed request:  48
  Current serial number in output stream:  49

## 2nd combination same mode & different scale
$ xtrace xrandr --verbose --output VGA1 --mode 1366x768 --right-of LVDS1 --scale 1x1
$ xtrace xrandr --verbose --output VGA1 --mode 1366x768 --right-of LVDS1 --scale 0.5x0.5

screen 0: 2732x768 718x202 mm  96.57dpi
crtc 1:     1366x768  59.79 +1366+0 "VGA1"
000:<:002f:  4: Request(36): GrabServer 
000:<:0030: 20: RANDR-Request(140,7): SetScreenSize window=0x000000d9 width=2732 height=768 width[mm]=718 height[mm]=202
000:<:0031: 56: RANDR-Request(140,26): SetCrtcTransform crtc=0x00000040 transform={matrix=1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.000000;}; filter name='nearest' filter params=;
000:<:0032: 32: RANDR-Request(140,21): SetCrtcConfig crtc=0x00000040 timestamp=0x00000000 config timestamp=0x00010a4d x=1366 y=0 mode=0x000000f8 rr=Rotate_0 outputs=0x0000004a;
000:>:0032:32: Reply to SetCrtcConfig: status=Success(0x00)

000:<:0030: 28: RANDR-Request(140,21): SetCrtcConfig crtc=0x00000040 timestamp=0x00000000 config timestamp=0x00010a4d x=0 y=0 mode=0x00000000 rr=Rotate_0 outputs=;
000:>:0030:32: Reply to SetCrtcConfig: status=Success(0x00)
screen 0: 2049x768 538x202 mm  96.57dpi
crtc 1:     1366x768  59.79 +1366+0 "VGA1"
000:<:0031: 20: RANDR-Request(140,7): SetScreenSize window=0x000000d9 width=2049 height=768 width[mm]=538 height[mm]=202
000:<:0032: 56: RANDR-Request(140,26): SetCrtcTransform crtc=0x00000040 transform={matrix=0.500000,0.000000,0.000000,0.000000,0.500000,0.000000,0.000000,0.000000,1.000000;}; filter name='bilinear' filter params=;
000:<:0033: 32: RANDR-Request(140,21): SetCrtcConfig crtc=0x00000040 timestamp=0x00000000 config timestamp=0x00010a4d x=1366 y=0 mode=0x000000f8 rr=Rotate_0 outputs=0x0000004a;
000:>:0033:32: Reply to SetCrtcConfig: status=Success(0x00)

$ tail /var/log/Xorg.0.log

##1st 
[  6644.557] (II) intel(0): resizing framebuffer to 1726x768
[  6644.560] (II) intel(0): switch to mode [email protected] on VGA1 using pipe 1, position (1366, 0), rotation normal, reflection none
[  6660.882] (II) intel(0): switch to mode [email protected] on VGA1 using pipe 1, position (1366, 0), rotation normal, reflection none

##2nd
[  6804.638] (II) intel(0): resizing framebuffer to 2732x768
[  6804.647] (II) intel(0): switch to mode [email protected] on VGA1 using pipe 1, position (1366, 0), rotation normal, reflection none
[  6817.753] (II) intel(0): resizing framebuffer to 2049x768
[  6817.757] (II) intel(0): switch to mode [email protected] on VGA1 using pipe 1, position (1366, 0), rotation normal, reflection none

Cas remarquables d'autres questions

  • xrandr: Failed to get size of gamma for output default

    Prise en charge du pilote ou problème Aucun lecteur chargé, il est célèbre avec nomodesetet les anciens graphiques. xrandrne fonctionne pas bien sans KMS. Indicateurs:

    1. Sudo lshw -c display pourrait être *-display UNCLAIMED également driver= vide.
    2. La taille de la mémoire tampon maximum 1920 x 1080 correspond exactement à la taille minimale de l'écran. La plupart des graphiques sont maintenant maximum 8192 x 8192, maximum 16384 x 16384 ou même 32Kx32K.
    3. Pas de nom de connexion régulier defaultname__!
    4. Un moteur de rendu logiciel OpenGL est utilisé, cochez glxinfoname__, exemple: Gallium3D/llvmpipe.

    Pour reproduire un problème similaire

    Créez une boîte virtuelle Ubuntu sans installer les additions/modules invités (qui incluent le pilote graphique vbox). Ce sera très lent et pareil avec la vraie machine.

  • X Error of failed request: BadMatch (invalid parameter attributes) (RRQueryOutputProperty)

    Un nom de propriété incorrect utilisé avec xrandr --output .. --set <name> <value>, l'utilisateur doit d'abord vérifier les propriétés disponibles à l'aide de xrandr --prop. Même cas résolu ici:

    --- (Impossible de changer la luminosité de l'ordinateur portable

    Les propriétés disponibles dépendent du pilote et de l'adaptateur utilisés. Par conséquent, cela pourrait être le résultat d'un problème précédent lié au pilote, car aucune propriété n'a été déclarée à xrandr.

    Pour reproduire un problème similaire

    xrandr --output <connection-name> --set whatever 0
    
  • X Error of failed request: BadMatch (invalid parameter attributes) (RRAddOutputMode)

    Ma théorie actuelle, prévoyant de tester plus tard, lorsque j'en aurai le temps. documenté ici. donc je n’oublie pas et les autres peuvent donner des commentaires.

    Erreur générée avec xrandr .. --addmode lorsque le pilote le refuse, en raison de la validation de l'EDID. J'ai remarqué que nvidia supprime certains modes après avoir activé le "ModeDebug". Non plus:

    1. Les données EDID du moniteur ne sont pas parfaites
    2. Pilotes non robustes dans le traitement de l'EDID
    3. L'entrée de mode généré n'est pas dans la plage de surveillance déclarée dans l'EDID

    (1 & 2) est une substitution personnalisée de Hsync/Vsync/PixelClock ou un fichier EDID local complet, certains pilotes peuvent ignorer l’EDID.

    (3) La solution consiste à essayer différents modes de saisie. Remarquez la différence

    $ cvt 1280 800 60
    # 1280x800 59.81 Hz (CVT 1.02MA) hsync: 49.70 kHz; pclk: 83.50 MHz
    Modeline "1280x800_60.00"   83.50  1280 1352 1480 1680  800 803 809 831 -hsync +vsync
    
    $ gtf 1280 800 60
    
      # 1280x800 @ 60.00 Hz (GTF) hsync: 49.68 kHz; pclk: 83.46 MHz
      Modeline "1280x800_60.00"  83.46  1280 1344 1480 1680  800 801 804 828  -HSync +Vsync
    
     # reduce mode only for flat monitors
     $ cvt -r 1280 800 60
    # 1280x800 59.91 Hz (CVT 1.02MA-R) hsync: 49.31 kHz; pclk: 71.00 MHz
    Modeline "1280x800R"   71.00  1280 1328 1360 1440  800 803 809 823 +hsync -vsync
    

    Certains cas ont été résolus en modifiant simplement le vsync un peu plus bas, par exemple 1280 800 59.80.

11
user.dz