Bien qu'il existe plusieurs questions sur le sujet (dont la réponse la plus utile est celle-ci ) et divers fils de discussion sur d'autres forums, je ne peux pas définir de manière fiable mes xrandr
paramètres dans Debian 7 sur VirtualBox.
J'essaie d'utiliser xrandr
pour contrôler mes paramètres d'affichage (plutôt que de permettre à mon environnement de bureau de les automatiser) parce que j'utilise le i3
gestionnaire de fenêtres , qui n'automatise pas les paramètres d'affichage ni n'utilise les paramètres d'affichage de l'environnement de bureau Gnome.
Installer:
Je ne suis pas sûr de la pertinence de tout cela, en particulier du matériel, car je ne pense pas que Debian puisse réellement accéder à beaucoup d'informations sur la configuration du moniteur; pour autant que je sache, VirtualBox ne fait que signaler l'existence d'écrans virtuels comme s'il s'agissait de moniteurs matériels.
Matériel
- Ordinateur portable Lenovo avec carte graphique nVidia (le GPU Intel intégré n'est pas utilisé, AFAIK - il y a un paramètre BIOS que j'ai utilisé pour accomplir cela)
- Windows 7
- 32 Go de RAM
- Utilisation du dernier pilote (je pense) nVidia (340.84) - cela pourrait avoir de l' importance, car j'ai activé l'accélération 3D dans VirtualBox (voir ci-dessous), ce qui, je pense, permet au système d'exploitation invité d'avoir accès au matériel hôte
- Téléviseur Seiki 4K (utilisé comme moniteur) via HDMI via une station d'accueil (qui convertit en interne DisplayPort en HDMI)
- Moniteur Samsung SyncMaster 243T tourné verticalement
VirtualBox
- Utilisation de VirtualBox 4.3.20
- Les compléments invité (même version) sont installés
- Nombre de moniteurs: 2 (attribué au Seiki et au SyncMaster en mode plein écran)
- Mémoire vidéo maximale (128 Mo) utilisée
- L'accélération 3D est activée
Paramètres invités
- Debian 7 32 bits
gnome
etgdm3
sont installés- WM préféré est
i3
Comportement:
Lorsque je lance i3
et interroge xrandr
, les paramètres d'affichage par défaut semblent toujours identiques entre VBOX0
et VBOX1
, les deux "moniteurs" auxquels VirtualBox rapporte xrandr
(du moins, c'est comme ça que je le comprends; il se peut que je manque quelque chose). Notez que pour autant que je sache, il n'y a pas de bon moyen de savoir quelle VBOX # est celle qui surveille à court d'essais et d'erreurs.
Habituellement, cela inclut une résolution raisonnable (bien que légèrement inférieure à la native) pour mon SyncMaster vertical, mais pas de résolution 4K pour le Seiki. L'option "redimensionner automatiquement l'affichage invité" dans VirtualBox ne semble pas affecter xrandr
.
J'ai essayé diverses modifications du script décrit dans la réponse liée ci - dessus , mais en général, je semble obtenir diverses xrandr
erreurs. Je n'ai pas trouvé beaucoup de corrélations entre les différentes choses que j'ai essayées et les erreurs que j'obtiens, mais voici les principales choses qui pourraient être importantes:
Ajustements de script
- (Généralement) sauter les
VBoxService
étapes de redémarrage (elles ne semblent pas changer lexrandr
comportement) - Utilisez l'
xrandr --fb
option avant toute autrexrandr
commande; cela se traduit parfois par une erreur "écran spécifié pas assez grand" répertorié ci-dessous - Utilisez 30 ips au lieu de 60 (4K via HDMI actuel est de 30 ips max, mais je ne pense pas que cela devrait avoir d'importance dans VirtualBox; en tout cas, je pense que je l'ai parfois fait fonctionner et parfois échoué dans les deux sens)
- Utiliser à la
cvt
place degtf
(ceux-ci semblent se comporter essentiellement de la même manière) - Remplacez le premier nombre donné par
gtf
(qui est généralement autour de 200 ou 300) par un nombre plus petit, tel que100.00
(je pense que cela a fonctionné une ou deux fois sur la ligne de commande, mais ne semble généralement pas faire de différence) - Randomisez de nouveaux noms de mode en utilisant
$RANDOM
(j'ai également essayé divers autres moyens de jouer avec les noms) --rmmode
Modes explicites avant de les créer à l'aide--newmode
(cela semble empêcher l'erreur "police" répertoriée ci-dessous)- Utilisez
--right-of
ou--left-of
lorsque vous définissez--output
s (car les écrans sont généralement reflétés par défaut)
Messages d'erreur
xrandr: specified screen 5120x2160 not large enough for output VBOX0 (3840x2160+3840+0) X Error of failed request: BadValue (integer parameter out of range for operation)
J'ai obtenu celui-ci tout à l'heure lors de la réexécution du script après que les moniteurs aient déjà été contraints à leur résolution appropriée (en utilisant la solution de contournement décrite dans la section suivante). Cela m'a surpris, carxrandr
rapporte ce qui suit:Screen 0: minimum 64 x 64, current 5120 x 2160, maximum 16384 x 16384
X Error of failed request: BadMatch (invalid parameter attributes)
Cela se produit parfois lorsque vous essayez de faire un--newmode
. C'est probablement la deuxième raison la plus courante d'échec du script. Je pense qu'il peut être causée parxrandr
« se souvenir » , le nom du mode à partir d' une précédente tentative de mettre en place, mais en utilisant$RANDOM
ne pas apparaître pour résoudre systématiquement le problème, il peut donc être un autre problème. (Je suppose qu'il est possible que même avec des$RANDOM
collisions de noms, cependant.) Je n'ai pas vu cette erreur depuis que j'ai commencé à utiliser--rmmode
, mais je n'ai pas exécuté le script suffisamment de fois depuis l'ajout de cette commande pour être sûr que cela fait une différence pour le comportement.X Error of failed request: BadMatch (invalid parameter attributes)
Cela se produit parfois lorsque vous essayez de faire un--addmode
. C'est probablement la raison la plus courante de l'échec du script, et cela me mystifie. Parfois, l'exécution manuelle (c'est-à-dire dans un terminal) de la même séquence de commandes utilisée par le script semble être une solution de contournement viable pour cette erreur, ce qui est bizarre.
Solution Gnome:
J'ai constaté que si je me connecte au bureau Gnome, puis exécute la fonction "Redimensionnement automatique de l'affichage invité" de VirtualBox, puis me déconnecte et me reconnecte avec i3
, xrandr
inclut généralement les résolutions correctes pour le Seiki et le SyncMaster dans sa génération automatique liste des modes, et la résolution 4K est définie comme la résolution "préférée" pour chaque écran VBOX. Cela me permet d'utiliser simplement xrandr --output [4K VBOX] --auto --left-of [SyncMaster VBOX]
, suivi de xrandr --output [SyncMaster VBOX] --mode [SyncMaster resolution]
(notez que la résolution SyncMaster doit toujours être spécifiée manuellement, car xrandr
signale la même résolution préférée pour les deux VBOX#
sans aucun égard pour la vérité ou la raison).
Cette solution de contournement, une fois exécutée, persiste apparemment pendant les arrêts et redémarrages (c'est-à-dire que les modes souhaités sont toujours présents dans xrandr
la liste des modes de, bien que je doive toujours exécuter les deux xrandr
commandes après le démarrage d'une i3
session), mais ne persiste pas toujours lorsque simplement vous déconnecter et démarrer une nouvelle i3
session. Notez que l' gdm3
écran de connexion n'a jamais la bonne résolution (pour autant que je l'ai vu). Je n'ai pas d'autre commentaire sur l'étrangeté qui se passe ici.
EDIT: Cette approche ne semble pas être scriptable, et le comportement ne semble pas être cohérent.
Autres notes:
- Je n'ai pas de
xconf
fichier (ou similaire) dans mon répertoireetc/X11
. - La réparation des écrans est un problème assez courant, car chaque fois que j'éteins l'un de mes moniteurs, VirtualBox tue l'un des moniteurs virtuels plein écran. (Urgh.)
Des questions:
- Existe-t-il un moyen de distinguer par programme les capacités matérielles réelles (c'est-à-dire les résolutions natives) de différents moniteurs à partir de VirtualBox?
- Pourquoi est-ce que je vois ces diverses erreurs? Que se passe-t-il
xrandr
, etc.? - Existe-t-il un moyen d'obtenir de manière fiable la bonne résolution plein écran sans m'obliger à démarrer une
gnome
session avant mai3
session?
Problèmes éventuellement liés
- Le pointeur de ma souris ne s'aligne pas correctement correctement avec l'endroit où les clics semblent être détectés; des clics se produisent généralement en dessous et à droite du pointeur. Une fois que les écrans sont correctement configurés, ce problème disparaît généralement, bien que les écrans aient actuellement les bonnes résolutions, mais le pointeur est toujours légèrement éteint.
- Lorsque j'arrive à obtenir les résolutions correctes, l'écran scintille parfois. C'est ennuyeux mais vivable. Une idée de ce qui la cause ou si elle peut être corrigée?
xrandr
erreurs étranges .
.xinitrc
et utilisez-vous startx
? J'utilise xmonad (qui, si je comprends bien, est similaire à i3?) Que je lance en utilisant startx
. Mes xrandr
scripts sont tous effectués .xinit
juste avant le lancement de mon gestionnaire de fenêtres. J'ai eu d'excellents résultats de cette façon. X est prêt à partir, et rien d'autre n'a été lancé pour interférer.
gdm3
et ai i3
sélectionné comme environnement de bureau par défaut pour mon compte.
xrandr --query
(a) lorsqu'il détecte les paramètres de manière incorrecte, et (b) après que tout a fonctionné correctement? Ou au moins un de tout fonctionne correctement.