Bonjour
Un petit fil de discussion pour mettre vos remarques sur : http://troumad.developpez.com/linux/serveurx/xrandr/
Bonjour
Un petit fil de discussion pour mettre vos remarques sur : http://troumad.developpez.com/linux/serveurx/xrandr/
Bonjour.
J'ai lu avec attention la page consacrée à Xrandr car je suis actuellement confronté à un problème de résolution avec un vidéoprojecteur.
Je tente en effet de faire fonctionner un vidéoprojecteur Promethean UST-P1 DLP, d'une résolution native de 1280x800, avec un portable HP ProBook 450 G2 d'une résolution native de 1366x768, sous Ubuntu.
Essais avec une 12.04 32 bits et une 14.04 32 bits.
L'objectif est d'être en mode clone, et donc bien-sûr dans la résolution du vidéoprojecteur, soit le 1280x800. Le problème est que le PC n'offre pas ce mode par défaut, le système choisit donc la résolution "commune" la plus proche, soit un 1024x768, ce qui n'est pas satisfaisant.
La carte graphique du PC est une Intel Haswell-ULT :
La commande XRandR donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ~$ lspci -nn | grep VGA 00:02.0 VGA compatible controller [0300]: Intel Corporation Haswell-ULT Integrated Graphics Controller [8086:0a06] (rev 0b)
On voit que l'écran du PC, eDP1, ne propose pas de 1280x800, alors que oui sur la sortie VGA, DP1, correspondant au vidéoprojecteur branché. D'ailleurs en mode non clone, la résolution côté vidéopro peut être 1280x800.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 $ xrandr -q Screen 0: minimum 320 x 200, current 2390 x 768, maximum 32767 x 32767 eDP1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm 1366x768 60.0*+ 40.0 1360x768 59.8 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 HDMI1 disconnected (normal left inverted right x axis y axis) DP1 connected 1024x768+1366+0 (normal left inverted right x axis y axis) 256mm x 192mm 1024x768 60.0*+ 1680x1050 60.0 1600x900 60.0 1280x1024 60.0 1440x900 59.9 1280x960 60.0 1366x768 59.8 1280x800 59.8 1152x864 60.0 1280x720 60.0 800x600 60.3 640x480 60.0 HDMI2 disconnected (normal left inverted right x axis y axis) VIRTUAL1 disconnected (normal left inverted right x axis y axis)
J'ai donc tenté les manip' préconisées pour ajouter le mode manquant, soit :
Recherche des paramètres du mode souhaité avec une commande
cvt 1280 800
et ajout du mode en question avec une commande
xrandr --newmode
Jusque là tout va bien (le vidéopro n'est pas connecté là, mais je doute qu'il y ait une influence) :
Mais lorsqu'il s'agit d'ajouter le nouveau mode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $ xrandr -q Screen 0: minimum 320 x 200, current 1366 x 768, maximum 32767 x 32767 eDP1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm 1366x768 60.0*+ 40.0 1360x768 59.8 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 HDMI1 disconnected (normal left inverted right x axis y axis) DP1 disconnected (normal left inverted right x axis y axis) HDMI2 disconnected (normal left inverted right x axis y axis) VIRTUAL1 disconnected (normal left inverted right x axis y axis) 1280x800_59.80 (0xff) 83.2MHz h: width 1280 start 1344 end 1480 total 1680 skew 0 clock 49.5KHz v: height 800 start 801 end 804 total 828 clock 59.8Hz
un vilain message d'erreur, et là je suis un peu coincé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $ xrandr --addmode eDP1 1280x800_59.80 X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 18 (RRAddOutputMode) Serial number of failed request: 37 Current serial number in output stream: 38
J'ai tenté de "forcer" cette commande comme indiqué sur certains sites en ajoutant un "#" devant, mais cela ne change rien. Plus de message d'erreur, mais le mode n'est pas ajouté pour autant.
J'ai tenté une commande directe :
L'ajout des derniers drivers Intel 1.07 du site 01.org dans les essais en Ubuntu 14.04 n'a rien emmené de mieux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $ xrandr --fb 1280x800 xrandr: specified screen 1280x800 not large enough for output eDP1 (1366x768+0+0)
J'ai regardé du côté des paramètres "scale" et "panning" de XRandR, mais il ne s'agit pas d'augmenter la résolution plutôt de passer d'un format 16:9 à un 16:10, donc un multiplicateur tordu.
J'ai tenté sans succès :
Le logiciel Newrez passe en force un 1280x800 mais c'est déformé, et de toute façon cela ne s'applique pas à la sortie VGA.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $ xrandr --output eDP1 --mode 1366x768 --scale 0.94x1.04 --panning 1280x800 X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 29 (RRSetPanning) Serial number of failed request: 39 Current serial number in output stream: 39
J'ai donc testé le petit script optimise.c.
C'est pas mal puisque j'arrive à sortir en clone du 1280x800 sur le projecteur, mais côté portable, j'ai une image déformée qui occupe tout l'écran, alors qu'il devrait y avoir des bords noirs, et donc c'est un peu flou.
Ce qui est étrange, c'est que côté vidéopro, où il y a en fait un tableau numérique, ça "tombe" au bon endroit, le stylet écrit là où on le pose, il n'y a pas de décalage.
C'est donc le mieux que j'ai pu obtenir pour le moment, mais il serait appréciable que l'image soit nette aussi côté portable, avec un vrai 1280x800 et donc les bords noirs.
Y a-t-il moyen de les ajouter ??
(après il faudra aussi rendre pérenne la commande, j'espère que la création du fichier /etc/X11/Xsession.d/45x11-xrandr fonctionne encore...)
Déjà, j'ai vu que les paramètres --scale que sort optimise.c sont plus précis que ceux que j'avais tenté, beaucoup plus de chiffres après la virgule :
Je me suis demandé ce qu'était le mode "suivi de la souris/panorama", j'ai espéré que ce soit justement le mode "avec bords noirs", mais hélas je me suis heurté à nouveaux aux fameux messages d'erreur, que je mette oui ou non à "l'avance pour le suivi" (pas compris ce que c'est) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Vous voulez faire : 0) une mise à l'échelle (conseillé) 1) Un suivit de la souris (mode panorama) Choix du mode 0 ou 1 ? : 0 xrandr --output DP1 --pos 0x0 --panning 0x0 --transform none --output eDP1 --pos 0x0 --panning 0x0 --transform none;xrandr --output eDP1 --scale 1x1;xrandr --output eDP1 --scale 0.937042x1.041667
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Vous voulez faire : 0) une mise à l'échelle (conseillé) 1) Un suivit de la souris (mode panorama) Choix du mode 0 ou 1 ? : 1 Voulez-vous avoir une avance pour le suivi ? (o/n) : Voulez-vous avoir une avance pour le suivi ? (o/n) : o xrandr --output DP1 --pos 0x0 --panning 0x0 --transform none --output eDP1 --pos 0x0 --panning 0x0 --transform none;xrandr --output eDP1 --scale 1x1;xrandr --output eDP1 --panning 1280x800 X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 29 (RRSetPanning) Serial number of failed request: 41 Current serial number in output stream: 4
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Vous voulez faire : 0) une mise à l'échelle (conseillé) 1) Un suivit de la souris (mode panorama) Choix du mode 0 ou 1 ? : 1 Voulez-vous avoir une avance pour le suivi ? (o/n) : Voulez-vous avoir une avance pour le suivi ? (o/n) : n xrandr --output DP1 --pos 0x0 --panning 0x0 --transform none --output eDP1 --pos 0x0 --panning 0x0 --transform none;xrandr --output eDP1 --scale 1x1;xrandr --output eDP1 --panning 1280x800+0+0/1280x800+0+0/100/100/100/100 X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 29 (RRSetPanning) Serial number of failed request: 41 Current serial number in output stream: 41
J'ai le sentiment confus qu'il faut passer à la fois un --scale 0.937042x1.041667 et un --panning 1280x800 mais sur ce dernier je ne comprends pas comment ajouter les bords noirs.
Toute aide sera précieuse... merci !
J'avoue ne pas utiliser le mode clone. Tu fais quoi pour en avoir vraiment besoin ?
Si tu fais un diaporama avec Impress de LibreOffice, tu envoies sur le vidéo projecteur l'image à affiche pendant que sur l'écran principal de l'ordinateur tu as la possibilité d'afficher soit le commentaire de la diapo, soit la diapo avec en icone la suivante.
Si tu as vraiment besoin d'un mode clone, javoue que j'aurais penser à scale en plaçant les deux écrans en 0x0. Je ne vois pas pourquoi rajouter un panning. Voici ce qui marche chez moi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 [troumad@localhost S2]$ xrandr Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767 LVDS1 connected 1913x1076+0+0 (normal left inverted right x axis y axis) 309mm x 174mm 1366x768 60.01*+ 40.01 1024x768 60.00 800x600 60.32 56.25 640x480 59.94 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 1920x1080+0+0 (normal left inverted right x axis y axis) 531mm x 299mm 1920x1080 60.00*+ 1600x1200 60.00 1680x1050 59.95 1280x1024 75.02 60.02 1440x900 74.98 59.89 1280x960 60.00 1280x800 59.81 1152x864 75.00 1024x768 75.08 70.07 60.00 832x624 74.55 800x600 72.19 75.00 60.32 56.25 768x576 99.99 79.37 640x480 75.00 72.81 66.67 60.00 720x400 70.08 VIRTUAL1 disconnected (normal left inverted right x axis y axis) [troumad@localhost S2]$ xrandr --output LVDS1 --pos 0x0 --output VGA1 --pos 0x0 --scale 0.711x0.711 [troumad@localhost S2]$ xrandr --output LVDS1 --scale 1.4x1.4 --pos 0x0 --output VGA1 --pos 0x0 --scale 1x1
Merci pour la réponse.
Comme il s'agit de contrôler un tableau numérique, le mode clone s'avère plus pratique à l'usage.
On contrôle direct ce qui se passe sur le tableau avec l'ordinateur portable posé à côté. Ce n'est pas vraiment pour faire du diaporama, il y'a un logiciel spécifique pour écrire au tableau, dessiner, ajouter des images, lancer des vidéos, etc.
Le mode bureau étendu peut avoir ses avantages, je me disais que ce serait la solution de secours si je n'arrivais à faire un clone correct, le problème c'est que dans ce mode, le tactile sur le tableau numérique subi un décalage. L'écriture se fait 40 cm à gauche de là où on pose le stylet.
Si je comprends bien tes commandes, la première transforme le 1920x1080 du VGA1 en un 1365x768, clone. La seconde transforme le 1366x768 du LVDS1 en 1912x1075, clone. Elles sont donc exclusives l'une de l'autre, c'est un choix.
Pour ma part, c'est le eDP1, le portable, que je cherche à transformer en 1280x800, la résolution du projo.
Je suis donc parti de la situation suivante :
soit un mode bureau étendu, où chaque appareil est dans sa résolution native, l'image est nette pour les deux, mais il y a un furieux décalage pour le tactile (en me relisant, je suis interpellé par ce +32 en ligne eDP1, je me demande bien ce qu'il fait là, et s'il ne serait pas à l'origine de mon décalage, peut-être un résidu de toutes mes manip' pour trouver une solution).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 $ xrandr -q Screen 0: minimum 320 x 200, current 2646 x 800, maximum 32767 x 32767 eDP1 connected 1366x768+0+32 (normal left inverted right x axis y axis) 344mm x 193mm 1366x768 60.0*+ 40.0 1360x768 59.8 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 HDMI1 disconnected (normal left inverted right x axis y axis) DP1 connected primary 1280x800+1366+0 (normal left inverted right x axis y axis) 0mm x 0mm 1280x800 59.8*+ 1920x1080 60.0 1600x1200 60.0 1400x1050 60.0 1280x1024 75.0 1440x900 59.9 1152x864 75.0 1280x720 60.0 1024x768 120.0 75.1 70.1 60.0 832x624 74.6 800x600 120.1 72.2 75.0 60.3 56.2 640x480 75.0 72.8 66.7 60.0 720x400 70.1 HDMI2 disconnected (normal left inverted right x axis y axis) VIRTUAL1 disconnected (normal left inverted right x axis y axis)
Et j'ai passé cette commande :
On passe en clone, le projo sort alors un 1280x800, c'est parfait l'image est nette. Côté tactile c'est bon aussi, on écrit au bon endroit. Le souci est côté écran du portable, l'image est floue, puisque qu'on est sur un 1280x800 "étiré" pour remplir un 1366x768.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $ xrandr --output eDP1 --pos 0x0 --scale 0.937042x1.041667 --output DP1 --pos 0x0
Il me manque les fameux bords noirs pour que l'image ne soit pas déformée, et c'est là que je ne sais pas comment les ajouter. Dans mes recherches, le seul endroit où j'en ai entendu parler, c'est dans tes explications sur la commande --panning, mais apparemment ce n'est pas la commande utile dans ce cas de figure. J'avoue que j'ai du mal à comprendre ce que fait exactement ce mode panorama, le man est assez succinct sur la question, ta phrase "Elle permet de suivre la souris sur un écran réel plus petit que l'écran virtuel" me laisse perplexe.
Mon écran virtuel (le 1280x800 que j'ai forcé) est à la fois plus grand (dans la hauteur, 800 au lieu de 768) et plus petit (dans la largeur 1280 au lieu de 1366) que l'écran réel.
J'ai tenté sans succès un
il ne se passe strictement rien visuellement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $ xrandr --fbmm 1280x800
Y a-t-il une façon pour que l'image sur l'écran du portable ne se déforme pas et reste contenue dans le 1280x800 ?
Merci pour ton retour.
J'avoue n'avoir essayé le panning que pour faire cet article. Et comme ça date, je n'en ai plus aucune idée.
Bon apparemment si la commande pour créer le mode 1280x800 produit un message d'erreur, c'est tout simplement parce que la carte graphique ne supporte pas cette résolution.
J'ai regardé comment Windows se débrouillait, et apparemment le chameau triche en utilisant un 1280x768.
Je suis donc parti sur cette base sous Ubuntu, et j'ai créé un tel mode, avec succès.
Ensuite, j'ai passé la commande suivante pour avoir un clone, avec le projo en 1280x800 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $ cvt 1280 768 # 1280x768 59.87 Hz (CVT) hsync: 47.78 kHz; pclk: 79.50 MHz Modeline "1280x768_60.00" 79.50 1280 1344 1472 1664 768 771 781 798 -hsync +vsync $ xrandr --newmode "1280x768" 79.50 1280 1344 1472 1664 768 771 781 798 -hsync +vsync $ xrandr --addmode eDP1 1280x768
Et c'est bien, image nette, et le stylet trace au bon endroit niveau tactile sur le tableau numérique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $ xrandr --output eDP1 --pos 0x0 --mode 1280x768 --scale 1x1.041666 --output DP1 --pos 0x0 --mode 1280x800
Il ne me reste plus qu'à automatiser cette affaire.
J'ai mis ces 4 commandes dans un :
mais si les trois premières passent, car le mode est bien présent au redémarrage, la dernière échoue, apparemment ça collisionne avec ce que la machine essaie de faire en automatique, et je n'obtiens pas le clone souhaité. Je contourne pour l'heure avec une icône sur le bureau à lancer à la main après chaque démarrage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part sudo gedit /etc/X11/Xsession.d/45x11-xrandr
Bref panning n'a rien à voir dans cette histoire ;-)
Merci pour le retour.
Bonjour
Je rajoute ici cette information.
Je ne sais pas pourquoi, mais le mode 1920x1080 n'était pas détecté sur mon écran. Peut-être parce-que je passe par un câble VGA. Je viens de le rajouter avec ces instructions entièrement retrouvées car le how-to :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 gtf 1920 1080 60 xrandr --newmode "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync xrandr --addmode DVI-I-1 "1920x1080_60.00" xrandr --output DVI-I-1 --mode 1920x1080_60.00
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager