Impossible d'ajouter un nouveau mode dans xrandr pour un moniteur externe

16

Aujourd'hui, j'essayais de connecter mon deuxième moniteur à mon ordinateur portable. J'ai:

  • carte graphique nvidia
  • 304.43 pilotes [support xrandr 1.2]
  • archlinux [à jour]
  • génial wm
  • xrandr 1.3

Mon problème est avec une résolution plus grande que 640x480 pour mon moniteur externe (VGA). xrandr -q:

Screen 0: minimum 8 x 8, current 1920 x 800, maximum 8192 x 8192
VGA-0 connected 640x480+1280+0 (normal left inverted right x axis y axis) 0mm
   640x480        59.9*+
   320x240       120.1  
LVDS-0 connected 1280x800+0+0 (normal left inverted right x axis y axis) 331m
   1280x800       59.9*+
HDMI-0 disconnected (normal left inverted right x axis y axis)

Comme nous pouvons le voir, il n'y a pas de résolution supérieure pour VGA, alors j'ajoute un nouveau mode:

xrandr --newmode $(gtf 1280 1024 70.4 | grep Modeline | sed s/Modeline\ // | tr -d '"')

J'ai vérifié la résolution et le taux de rafraîchissement disponibles sous Windows: l'un d'eux était 1024x768x70 (l'OSD de mon moniteur a dit qu'il était de 70,4 Hz). Après avoir créé un nouveau mode, j'ai voulu l'ajouter:

xrandr --addmode VGA-0 1280x1024_70.40

Et ... ça a échoué:

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

De Google, j'ai appris que dans les anciens pilotes xrandr / nvidia, il y avait un problème avec la liste des modes disponibles, mais maintenant avec le support de xrandr 1.2 par les pilotes nvidia, cela devrait être mieux. J'essaie également avec une résolution et un taux de rafraîchissement inférieurs (par exemple 1024x768x50), mais j'ai la même erreur. Je ne sais plus quoi faire avec ce problème ...

Borgo
la source

Réponses:

11

Je ne sais pas si vous avez créé la chaîne suivante xrandr --newmodepar vous-même ou si vous l'avez copiée ailleurs, mais cela ne fonctionnera pas dans sa forme actuelle.

Je recommande de le faire étape par étape.

Tout d'abord, vous devez générer le nouveau mode. Je recommande d'utiliser 60 Hz avec LCD ou 85 Hz avec moniteur CRT

gtf 1280 1024 60

Vous obtiendrez quelque chose comme:

 # 1280x1024 @ 60.00 Hz (GTF) hsync: 63.60 kHz; pclk: 108.88 MHz 
 Modeline "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync Vsync

Présentez ensuite ce mode à l' xrandrutilisation --newmode(copiez-collez la ligne commençant par 'Modeline'.

 xrandr --newmode "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync Vsync

Ajoutez ensuite ce mode à VGA-0:

xrandr --addmode VGA-0 "1280x1024_60.00"

Et enfin, vous pouvez utiliser ce nouveau mode:

 xrandr --output VGA-0 --mode 1280x1024_60.00
Paweł Rumian
la source
Vous avez raison, je ne crée pas cela: xrandr --newmode $(gtf 1280 1024 70.4 | grep Modeline | sed s/Modeline\ // | tr -d '"')par moi-même, mais je le mets d'abord en petits morceaux pour voir comment cela fonctionne, d'abord gtf 1280 1024 70.4, puis avec grep et enfin avec sed et tr. Il donne la même sortie que vous avez dans votre xrandr --newmodeavec un diff - vous avez "1280x1024_60.00", I have 1280x1024_60.00` - à la fin, j'utilise tr -d '"'pour supprimer "" '. Malheureusement, j'ai toujours la même erreur.
Borgo
Pourquoi un taux de rafraîchissement si étrange? 70,4? Utilisez 60Hz s'il s'agit d'un LCD ou 85Hz en cas de CRT. Et faites-le étape par étape, exactement comme je l'ai écrit.
Paweł Rumian
Maintenant, j'ai essayé de le faire étape par étape, en utilisant 60Hz, et j'ai toujours la même erreur.
Borgo
1
Ma résolution est 1280x1024, et j'essaye de faire (newmode) / ajouter (addmode) ce mode:"1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
Borgo
1
Toujours la même erreur: X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 153 (RANDR) Minor opcode of failed request: 18 (RRAddOutputMode) Serial number of failed request: 29 Current serial number in output stream: 30 seuls les deux derniers chiffres ont changé.
Borgo
4

J'ai eu ce problème d'erreur BadMatch jusqu'à ce que je supprime un "1280x1024_60.00" précédemment ajouté, car il ne pourra jamais utiliser le mode guillemet double avec succès. Finalement, réalisé un meilleur nom pour le mode aidé.

J'ai donc supprimé "1280x1024_60.00" en exécutant ce qui suit en tant qu'utilisateur normal:

$ xrandr --version 
reports 1.4.0 and 1.4
$ xrandr | grep 1280 #Do you see any 1280x1024 anywhere?  Does it have double quotes?
$ xrandr --verbose --delmode VGA1 '"1280x1024_60.00"'
$ xrandr --verbose --rmmode '"1280x1024_60.00"' 

La suppression et la suppression des fichiers indésirables dans le système ne fonctionnaient souvent pas ou revenaient même si je les supprimais de mon compte et de ma racine. Il reviendrait généralement sous la sortie nommée VIRTUAL1 au lieu de VGA1.

J'ai trouvé beaucoup plus facile de quitter la jonque et d'ajouter une lettre à la fin de mon mode nouvellement créé et j'ai même laissé tomber le .00, donc 1280x1024_60B . Notez attentivement ci-dessous qu'il y a des guillemets autour du paramètre --newmode, mais PAS --addmode ni --mode

$ xrandr --verbose --newmode "1280x1024_60B" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
$ xrandr --verbose --addmode VGA1 1280x1024_60B
$ xrandr --verbose --output VGA1 --mode 1280x1024_60B

Un petit scintillement d'écran et mon moniteur carré 19 "externe fonctionne à 1280x1024.

rjt
la source
C'était la seule solution après des heures de recherche qui a fonctionné, merci beaucoup, vous m'avez sauvé la journée. Vive
Shanil Soni
Cependant le réglage perd après une session, une solution pour le rendre permanent?
Shanil Soni
0

Si vous exécutez Linux sur une machine virtuelle (en particulier, VirtualBox), assurez-vous que la machine virtuelle dispose de suffisamment de mémoire vidéo.

Trop peu de mémoire vidéo provoque cette erreur lors de la tentative d'exécution de xrandr.

Felipe Almeida
la source
0

Je passe 2 heures pour résoudre un problème similaire et le problème était dans le câble vga. Remplacez le câble vga Je peux changer la résolution en 1920x1080 sans utiliser xrandr ou xorg c'est très étrange.

burtsevyg
la source