Écrans externes avec Bumblebee

14

J'essaie de connecter mon moniteur externe (via un câble VGA) à mon ordinateur portable, en utilisant Bumblebee et la configuration Optimus.

J'ai un Lenovo W520, avec un Intel GMA HD 3000 et un Nvidia Quadro 2000M. Le BIOS dispose de trois options concernant les cartes graphiques: intégrée, discrète et Optimus.

Le cas d'utilisation est très simple. Pour le travail, j'utilise simplement la carte intégrée et l'écran du portable; quand je regarde des films, je veux utiliser mon projecteur. Maintenant, ce que je dois faire dans ce cas est:

  • redémarrer
  • démarrer windows
  • regarde le film

Grâce à Bumblebee, je peux maintenant conserver la configuration toujours en tant qu'Optimus.

Avant BB, je devais changer le réglage du BIOS chaque fois que je voulais regarder un film, car même sous Windows, l'utilisation de graphiques intégrés empêchait le projecteur d'être détecté par le système (je suppose que c'est ce qu'ils entendent généralement par «câblé»). "et que la sortie VGA est câblée à la carte discrète).

Maintenant, ce que j'aimerais faire, c'est de pouvoir connecter le moniteur externe sans avoir à commuter O / S, c'est-à-dire à l'utiliser dans Ubuntu.

C'est possible?

En ce moment, si je veux utiliser le moniteur externe sur Ubuntu, la seule option est de changer le BIOS pour utiliser les graphiques discrets, puis utiliser les paramètres nvidia.

Si j'utilise à la place la configuration d'Optimus, même lorsque je l'exécute en utilisant "optirun nvidia-settings -c: 8", je n'ai aucune option pour un moniteur externe.

Puis-je faire quelque chose?

Marcus
la source

Réponses:

8

J'ai un W520. Ce n'est pas la même configuration que le T420 - la sortie VGA est câblée à la carte nvidia, donc le lien "this" de Samsagax ne fonctionnera pas. J'ai préparé un article de blog ici décrivant les options dont vous disposez. Je n'ai pas réussi à faire fonctionner un moniteur externe avec Bumblebee, et je ne pense pas que ce soit possible avec le W520. Cependant, vous pouvez utiliser un moniteur extenal en mode optimus, mais vous devez soit utiliser xinerama, soit ouvrir un écran X séparé sur le moniteur extenal.

Zach
la source
3
Voici une nouvelle solution qui sera probablement meilleure pour la plupart des gens - vous n'avez même pas besoin de vous déconnecter de X pour utiliser un écran / projecteur externe: zachstechnotes.blogspot.com/2012/04/post-title.html Tout le rendu se fait sur la carte Intel, puis les données sont transférées vers le périphérique nvidia pour la sortie sur l'écran externe
Zach
4

(redirigé depuis la liste linux-hybrid-graphics)

J'ai un Thinkpad T420 qui pourrait être similaire (mais peut-être pas).

Sur mon T420, VGA est connecté à Intel et Display-Port est connecté à NVIDIA. Donc, pour la sortie VGA, je peux utiliser le xrandr habituel .

Le Display-Port est une autre histoire. Pour cela, je dois changer le xorg.conf de bumblebee dans /etc/bumblebee/xorg.conf.nvidia :

L'option ConnectedMonitorde DFP(par défaut) à DP1pour DisplayPort.

Lâche anonyme
la source
1
DP1 fonctionne-t-il vraiment pour vous? Selon download.nvidia.com/XFree86/Linux-x86_64/290.10/README/... , les seules valeurs valides sont CRT, DFPet variantes séparées par des virgules. Est-ce que le changer CRTfonctionne aussi?
Lekensteyn
3

Les nouvelles versions du pilote Intel incluent un programme appelé intel-virtual-outputqui simplifie considérablement la configuration des affichages double et triple sur un W520.

La intel-virtual-outputcommande permet à un serveur X sur la carte Intel de dupliquer des écrans sur un autre serveur X. Il examine les écrans disponibles sur l'écran distant et les présente sur le serveur Intel X comme VIRTUAL1, VIRTUAL2, etc.

Le script suivant (exécuté en tant que root) fonctionne pour moi, mais vous aurez probablement besoin de modifier les choses:

#!/bin/sh

# Power on the nvidia card with bumblebee.
modprobe bbswitch
echo ON > /proc/acpi/bbswitch

# Run X display :8 on the nvidia card.
optirun true

# Tell the intel card to create virtual screens on :0 and
# copy whatever they're displaying to equivalent screens on :8
intel-virtual-output

# Configure my monitors the way I like them.
xrandr --output VIRTUAL3 --auto
xrandr --output VIRTUAL1 --auto --right-of VIRTUAL3
xrandr --output LVDS1 --off

Cette configuration active mon câble DisplayPort vers DVI (VIRTUAL3) à gauche et le VGA (VIRTUAL1) à droite. Il désactive également l'écran de l'ordinateur portable.

Notez que puisque ce ne sont que des écrans virtuels du pilote, en théorie, l'outil de configuration d'affichage de votre interface graphique devrait être en mesure de le comprendre après avoir exécuté intel-virtual-output.

En pratique, l'outil de configuration d'affichage dans xubuntu ne faisait pas vraiment de choses cohérentes. C'est pourquoi ces xrandrcommandes sont là. Si vous utilisez gnome ou kde, il peut être utile d'essayer l'outil GUI avant de jouer avec xrandr. Sinon, avant d'exécuter cela, vous voudrez probablement modifier certaines choses pour la configuration que vous utilisez réellement. L'exécution xrandrvous indique simplement quels écrans sont actuellement connectés. Vous pouvez connecter et déconnecter vos moniteurs pour voir quelle fiche se connecte à quel affichage VIRTUEL [0-9]. L'écran d'ordinateur portable est LVDS1. Ensuite , il est juste une question de faire les xrandrcommandes avec --right-of, --left-of, --below, etc. , pour faire avancer les choses à leur place.

Lorsque vous souhaitez redevenir mobile, vous pouvez exécuter ceci (à nouveau, en tant que root):

#!/bin/sh

# Turn on the laptop screen.
xrandr --output LVDS1 --auto

# Turn off my the other screens.
xrandr --output VIRTUAL1 --off
xrandr --output VIRTUAL3 --off

# Kill the xorg server running on the nvidia card.
kill $(ps ax | grep Xorg | grep :8 | awk '{print $1}')

# Wait plenty of time for it to die.
sleep 5

# Remove the nvidia kernel module so we can shut down the card.
# If you're running another driver this might be something different.
rmmod nvidia

# Use bumblebee to turn off the nvidia card and save power.
echo OFF > /proc/acpi/bbswitch

J'utilise xubuntu 14.04 en utilisant la version 337.25 du pilote nvidia propriétaire. J'ai également des packages bumblebee sur https://launchpad.net/~bumblebee/+archive/ubuntu/stable .

Fait intéressant, cette configuration est l'inverse de la configuration Optimus habituelle. Habituellement, vous exécutez de manière sélective des programmes sur la carte nvidia et copiez des tampons de la carte nvidia vers la carte intel qui parle réellement aux moniteurs. Dans ce cas, vous exécutez tout sur la carte Intel et copiez les tampons d'écran appropriés sur la carte NVIDIA.

Si vous vous demandez, oui, cela rend difficile l'exécution des applications accélérées par nvidia. Je n'ai pas encore trouvé de moyen pour que les jeux fonctionnent bien, et même avec la vidéo HD, cela ralentit avec le temps. Il semble même qu'il n'y ait pas de double mise en mémoire tampon, car vous obtenez un balayage de gauche à droite de haut en bas après avoir lu une vidéo assez haute résolution pendant un certain temps. Cela dit, la plupart des projecteurs iront probablement bien.

Hans
la source
Notez que ma réponse est essentiellement la même que celle de @ Zach, sauf qu'elle utilise intel-virtual-output qui est livrée avec le pilote par défaut plutôt que d'utiliser un patch personnalisé et un screenclone hybride. La stratégie est exactement la même, mais cela demande beaucoup moins d'efforts et, selon mon expérience, fonctionne en fait sur une nouvelle version d'ubuntu. Merci Zach d'avoir documenté la stratégie qui fait que cela fonctionne.
Hans
1
Le crédit va également à unixreich.com/blog/2013/…
Hans
Un montage xorg.conf.nvidiacomme dans votre référence était nécessaire pour moi sur Ubuntu 14.10 (en particulier, j'avais besoin de commenter UseEDIDet UseDisplayDevice). Cependant, je n'avais pas besoin d'utiliser un PPA (Bumblebee d'Ubuntu fonctionnait très bien) et je n'ai pas non plus besoin de scripts pour démarrer et arrêter la configuration multi-moniteurs - simplement démarrer ou tuer intel-virtual-output car un utilisateur normal travaille pour moi. (Il s'exécute optirunsi nécessaire.) Pouvez-vous confirmer?
krlmlr
Utilisez-vous l'interface graphique pour configurer les écrans? Peut-être que ce problème était un problème xubuntu. Je vais devoir essayer les autres trucs quand j'en aurai l'occasion.
Hans
Oui, l'interface graphique fonctionne pour configurer les écrans.
krlmlr
0

Essayez peut-être ça .

Mais dépend du câblage.

Samsagax
la source
1
Bienvenue sur Ask Ubuntu! Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure ici les parties essentielles de la réponse et de fournir le lien de référence.
Michael Martin-Smucker