Pantallas externas con abejorro


14

Estoy tratando de conectar mi monitor externo (a través del cable VGA) a mi computadora portátil, usando Bumblebee y la configuración Optimus.

Tengo un Lenovo W520, con un Intel GMA HD 3000 y un Nvidia Quadro 2000M. El BIOS tiene tres opciones con respecto a las tarjetas gráficas: integrado, discreto y Optimus.

El caso de uso es muy simple. Para el trabajo, solo uso la tarjeta integrada y la pantalla del portátil; Sin embargo, cuando veo películas, quiero usar mi proyector. Ahora, lo que tengo que hacer en este caso es:

  • reiniciar
  • iniciar windows
  • mira la película

Gracias a Bumblebee, ahora puedo mantener la configuración siempre como Optimus.

Antes de BB, tenía que cambiar la configuración del BIOS cada vez que quería ver una película, porque incluso en Windows, el uso de gráficos integrados hacía que el sistema no detectara el proyector (supongo que esto es lo que generalmente quieren decir con "cableado" salida ", y que la salida VGA está conectada a la tarjeta discreta).

Ahora, lo que me gustaría hacer es poder conectar el monitor externo sin tener que cambiar O / S, es decir, usarlo en Ubuntu.

¿Es posible?

En este momento, si quiero usar el monitor externo en Ubuntu, la única opción es cambiar el BIOS para usar los gráficos discretos, luego usar nvidia-settings.

Si uso en cambio la configuración de Optimus, incluso cuando la ejecuto usando "optirun nvidia-settings -c: 8", no obtengo ninguna opción para un monitor externo.

¿Hay algo que pueda hacer?

Respuestas:


8

Tengo un W520. No es la misma configuración que el T420: la salida VGA está conectada a la tarjeta nvidia, por lo que el enlace "this" de Samsagax no funcionará. He preparado una publicación de blog aquí que describe las opciones que tiene. No pude conseguir que ninguno de los monitores externos funcionara con Bumblebee, y no creo que sea posible con el W520. Sin embargo, puede usar un monitor externo en modo optimus, pero debe usar xinerama o abrir una pantalla X separada en el monitor externo.


3
Aquí hay una nueva solución que probablemente será mejor para la mayoría de las personas: ni siquiera tiene que cerrar sesión en X para usar una pantalla / proyector externo: zachstechnotes.blogspot.com/2012/04/post-title.html Todas las representaciones se realiza en la tarjeta Intel y luego los datos se vuelcan al dispositivo nvidia para su salida a la pantalla externa
Zach

4

(redirigido de la lista de gráficos linux-hybrid)

Tengo un Thinkpad T420 que podría ser similar (pero puede que no).

En mi T420, VGA está conectado a Intel y Display-Port está conectado a NVIDIA. Entonces, para la salida VGA, puedo usar el xrandr habitual .

El Display-Port es una historia diferente. Para eso tengo que cambiar el xorg.conf de bumblebee en /etc/bumblebee/xorg.conf.nvidia :

La opción ConnectedMonitorde DFP(el valor predeterminado) a DP1para DisplayPort.


1
¿DP1 realmente funciona para usted? Según download.nvidia.com/XFree86/Linux-x86_64/290.10/README/... , los valores solamente válidas son CRT, DFPy variantes separados por comas. ¿Cambiarlo también CRTfunciona?
Lekensteyn

3

Las versiones más nuevas del controlador Intel incluyen un programa llamado intel-virtual-outputque simplifica enormemente la configuración de pantallas dobles y triples en un W520.

El intel-virtual-outputcomando proporciona una manera para que un servidor X en la tarjeta Intel duplique pantallas a otro servidor X. Mira las pantallas disponibles en la pantalla remota y las presenta en el servidor Intel X como VIRTUAL1, VIRTUAL2, etc.

El siguiente script (ejecutar como root) funciona para mí, pero lo más probable es que necesites modificar las cosas:

#!/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

Esta configuración habilita mi cable DisplayPort a DVI (VIRTUAL3) a la izquierda y el VGA (VIRTUAL1) a la derecha. También deshabilita la pantalla del portátil.

Tenga en cuenta que dado que estas son solo pantallas virtuales del controlador, en teoría, la herramienta de configuración de pantalla de su GUI debería poder resolverlo después de ejecutarlo intel-virtual-output.

En la práctica, la herramienta de configuración de pantalla en xubuntu realmente no hizo cosas coherentes. Es por eso que esos xrandrcomandos están ahí. Si está ejecutando gnome o kde, puede valer la pena probar la herramienta GUI antes de jugar xrandr. De lo contrario, antes de ejecutar esto, es probable que desee modificar algunas cosas para cualquier configuración que esté utilizando. Ejecutar solo xrandrte dice qué pantallas están conectadas actualmente. Puede conectar y desconectar sus monitores para ver qué enchufe se conecta a qué pantalla VIRTUAL [0-9]. La pantalla del portátil es LVDS1. Entonces es sólo una cuestión de hacer los xrandrcomandos con --right-of, --left-of, --below, etc, para poner las cosas en su lugar adecuado.

Cuando desee volver a ser móvil, puede ejecutar esto (nuevamente, como 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

Estoy ejecutando xubuntu 14.04 usando el controlador propietario de nvidia versión 337.25. También tengo paquetes de abejorros de https://launchpad.net/~bumblebee/+archive/ubuntu/stable .

Curiosamente, esta configuración es la inversa de la configuración habitual de Optimus. Por lo general, ejecuta programas de forma selectiva en la tarjeta nvidia y copia los búferes de la tarjeta nvidia a la tarjeta intel que realmente se comunica con los monitores. En este caso, está ejecutando todo en la tarjeta Intel y copiando los buffers de pantalla relevantes en la tarjeta nvidia.

Si se está preguntando, sí, esto hace que sea difícil ejecutar aplicaciones aceleradas de nvidia. Todavía no he descubierto una manera de hacer que los juegos funcionen bien, e incluso con el video HD se ralentiza con el tiempo. Incluso parece no tener doble búfer porque obtienes un escaneo visible de izquierda a derecha de arriba a abajo después de reproducir un video de alta resolución por un tiempo. Dicho esto, la mayoría de los proyectores probablemente estarán bien.


Tenga en cuenta que mi respuesta es esencialmente la misma que la de @ Zach, excepto que usa Intel-virtual-output que se envía con el controlador predeterminado en lugar de usar un parche personalizado y un híbrido-screenclone. La estrategia es exactamente la misma, pero esto es mucho menos esfuerzo y, en mi experiencia, en realidad funciona en una versión más nueva de ubuntu. Gracias Zach por documentar la estrategia que hace que esto funcione.
Hans

1
El crédito también va a unixreich.com/blog/2013/…
Hans

La edición xorg.conf.nvidiacomo en su referencia fue necesaria para mí en Ubuntu 14.10 (en particular, necesitaba comentar UseEDIDy UseDisplayDevice). Sin embargo, no necesitaba usar un PPA (Bumblebee de Ubuntu funcionó bien) y tampoco necesito ningún script para iniciar y detener la configuración de varios monitores, simplemente comenzando o matando, intel-virtual-output ya que el usuario normal trabaja para mí. (Se ejecuta optirunsegún sea necesario). ¿Puedes confirmar?
krlmlr

¿Utiliza la GUI para configurar las pantallas? Quizás ese problema fue un problema de xubuntu. Tendré que probar las otras cosas cuando tenga la oportunidad.
Hans

Sí, la GUI funciona para configurar las pantallas.
krlmlr

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.