Articles tagués “resolution

Dual screen sous Ubuntu

Aujourd’hui, j’ai voulu connecté un écran externe à mon ordinateur portable. Je l’avais déjà fait sans souci sous Windows Seven ; cette fois, j’étais sous Ubuntu 11.10 (Oneiric Ocelot). J’ai innocemment branché mon second écran et constaté…. qu’il ne se passait rien. Le périple a commencé.

La première étape est de trouver l’outil des préférences système dans Unity. Dans le lanceur d’application, il s’appelle Paramètres système. On va ensuite dans Affichage et on voit qu’on peut activer le second écran qui a été branché et qui est correctement reconnu. On choisit les résolutions et la position et on fait Appliquer. Second drame avec ce message d’erreur :

message_erreur_dual_screen

La seconde étape est d’aller sur le site français d’Ubuntu pour connaître les méthodes pour gérer le multi-écran. Je choisis d’utiliser la méthode recommandée et de me servir de la commande xrandr. Cette commande me renvoie :

$ xrandr
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 1280 x 1280
LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
1280x800       60.0*+
1280x768       60.0 +
1280x720       60.0 +
1024x768       60.0 +
1024x600       60.0 +
800x600        60.0 +
800x480        60.0 +
720x480        60.0 +
640x480        60.0 +
DFP1 disconnected (normal left inverted right x axis y axis)
CRT1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 338mm x 270mm
1280x1024      60.0 +   75.0
1280x800       60.0 +   75.0*
1280x720       60.0 +
1280x960       60.0
1152x864       75.0     60.0
1280x768       59.9
1024x768       75.0     70.1     60.0
1024x600       60.0
800x600        72.2     75.0     70.0     60.3     56.2
800x480        60.0
720x480        60.0
640x480        75.0     72.8     60.0

L’écran externe est donc CRT1. J’adapte donc les commandes données dans la documentation d’Ubuntu et entre :

$ xrandr --output CRT1 --pos 1280x0 --mode 1024x768
xrandr: screen cannot be larger than 1280x1280 (desired size 2304x800)

Pas de chance, j’ai le même message d’erreur qu’avec l’outil graphique… Effectivement, la somme des dimensions de mes écrans dépassent le maximum autorisé. Je pourrais réduire la résolution de mon écran principal et mettre une résolution faible à mon écran externe. Cette solution s’exclue d’elle-même dès son énoncé : je ne vais quand même pas travailler avec des résolutions minables juste pour avoir deux écrans. Je recherche ce message d’erreur dans Google et trouve une aide précieuse dans cette page. Il y est expliqué le concept d’écran virtuel dans lequel les deux écrans physiques doivent rentrés. Par défaut, sa limite semble être 1600×1600 (c’était mon cas avant que je ne bricole ; la limite de 1280×1280 est apparue quand j’ai fait marche arrière pour l’écriture de l’article), à moins que ça ne soit une limitation des pilotes de ma carte graphique. J’avoue ne pas avoir trop creusé ce point. Toujours est-il qu’il est possible d’augmenter cette taille pour que l’écran virtuel soit assez grand pour contenir mes deux écrans physiques.

La troisième étape est donc d’éditer le fichier xorg.conf en prenant soin d’en faire une sauvegarde auparavant*. Il faut que la somme des tailles des écrans séparés soit plus petite que la taille de l’écran virtuel. Grâce à la liste affichée par xrandr, vous avez la taille maximale de chaque écran que vous pouvez sommer pour obtenir la taille de l’écran virtuel nécessaire pour être tranquille. Dans mon cas j’ai donc ajouté la ligne suivante à mon fichier xorg.conf dans Section "Screen" / Subsection "Display" :

Virtual 2560 1824

Je redémarre le serveur X avec la commande suivante* pour que mes modifications soient prises en compte :

sudo restart lightdm

Je retente la commande déjà utilisée pour afficher mon second écran et le miracle se produit. En parcourant la page de manuel de xrandr, je trouve une option pour utiliser la résolution la plus adaptée :

$ xrandr --output CRT1 --pos 1280x0 --preferred

Tout est presque bon.

Oui, il y a un presque et il vient d’Unity, l’interface par défaut d’Ubuntu. La barre de menu (Unity Global Menu) ne s’affiche pas sur l’écran secondaire et quand l’application est en mode plein écran sur l’écran secondaire, cette barre reste vide sur l’écran principal. On peut double-cliquer dessus pour remettre l’application en mode fenêtré mais impossible d’accéder au menu de l’application. Avec Cinnamon par exemple, pas de soucis puisque pas de barre globale de menu.

* : tant pour pour l’utilisation du fichier de sauvegarde que pour le redémarrage du serveur X, j’ai été méfiant. Si pour X raisons (oui, le jeu de mots est pourri…) je cassais mon serveur graphique, il fallait être capable de sauver la mise. J’ai donc fait quelques recherches sur l’utilisation de la console (la vraie, et non le terminal) et la manipulation du serveur X. Cela a été une sorte de périple dans le périple.

Commençons par l’utilisation de la console, qui elle n’a pas besoin du serveur X pour fonctionner. Tout ce que vous avez besoin de savoir pour y accéder est décrit dans la partie 1 de la page dédiée à cette console sur Ubuntu-Fr.

Continuons avec le serveur X. Avec Unity, le service associé est LightDM mais cela dépend du gestionnaire graphique et on peut avoir GDM ou KDM. Ils servent de simplification à l’utilisation de XDM. Le service peut être lancé, arrêté ou redémarré. Il y a plusieurs techniques pour le faire, certaines ont mieux marché que d’autres sur mon PC. En vrac, on a :

sudo /etc/init.d/lightdm restart
sudo service lightdm restart
sudo restart lightdm

Le mot restart peut être remplacé par start ou stop.


Concevoir un site comme celui-ci avec WordPress.com
Commencer