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.

Publicités

7 Réponses

  1. JackDesBwa

    Merci Pierre.
    Faisant face au même problème au boulot, ton article m’a été fort utile !
    Exit les écrans côté à côté placés virtuellement l’un au dessus de l’autre en définition raisonnable, et bienvenue les écrans côte à côte en pleine définition.

    J'aime

    8 mars 2013 à 10:43

    • Salut ! Content d’avoir pu t’aider 🙂
      Comment as-tu atterri sur mon blog pour ce problème ?

      J'aime

      9 mars 2013 à 12:42

  2. artem

    Bonjour,

    J’ai eu le même problème que toi, ton blog m’a bien aidé.
    Merci 😉

    J'aime

    19 avril 2013 à 1:35

    • De rien !

      Je suis content de voir que mes articles rendent service, ça veut dire que je ne les écris pas pour rien 🙂

      J'aime

      19 avril 2013 à 5:26

  3. Salut à toi et merci pour cet article. Je voudrais juste savoir comment tu fais pour gérer le débranchement du second écran. Moi, quand je redémarre l’ordi (portable) sans que le second écran soit branché, l’écran principal reste éteint et donc pas moyen d’accéder à Ubuntu.

    Alex

    J'aime

    22 août 2013 à 10:31

    • Bonjour,
      Pour être honnête, je ne pourrai pas te répondre. Je n’utilise plus Mint (ou même Linux en fait) et je n’avais pas eu le problème dont tu parles.

      J'aime

      3 septembre 2013 à 8:15

  4. Alex

    La solution est de modifier une option dans le fichier /etc/default/grub …

    Modifier la ligne GRUB_CMDLINE_LINUX_DEFAULT= »quiet splash »
    En : GRUB_CMDLINE_LINUX_DEFAULT= »quiet splash acpi_osi=Linux acpi_backlight=vendor »

    Voilà, si ça peut aider quelqu’un qui passe par là 😉

    J'aime

    3 septembre 2013 à 8:43

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s