it-swarm.com.de

Externe Monitoranzeige auf dem Thinkpad W520 mit 12.04

Ich weiß, dass es viel Material zu diesen Problemen gibt, aber vieles davon scheint veraltet zu sein und nichts scheint für meine Situation zu funktionieren:

  • ThinkPad W520 (Intel 3000 und Nvidia 1000M Chipsatz)
  • Betriebssystem: Ubuntu 12.04.3.
  • BIOS-Grafikkarteneinstellung: Optimus
  • Automatische Erkennung von BIOS OS Optimus: disabled

Ich habe das Bumblebee-Wiki unten verwendet, um Bumblebee zu installieren und einzurichten: https://wiki.ubuntu.com/Bumblebee#Installation

Nachdem ich meine BusID für die Grafikkarte auf "PCI: 01: 00.0" gesetzt habe (siehe Konfigurationsdateien unten), kann ich optirun firefox und die virtualgl-Tests wie optirun glxspheres64 und glxspheres64 ausführen. Daher glaube ich, dass bei der Bumblebee-Installation alles in Ordnung ist, außer dass ich keine Verbindung zu meinem externen Monitor herstellen kann (über VGA). Irgendwelche Ideen, wie das geht? Das W520 hat den VGA (und DisplayPort) fest mit der Nvidia-Karte verbunden, wie von Zachary Sunberg beschrieben:

http://zachstechnotes.blogspot.com/2012/04/post-title.html

Ich glaube, das macht es schwierig, den VGA an einen externen Monitor anzuschließen. Ich glaube, dass ich einen Server/Bildschirm-Klon verwenden muss, der in meinen unten dokumentierten Versuchen beschrieben wird:

  1. Ich habe den folgenden Beitrag versucht, um die externen Monitore zu konfigurieren,

    http://hillspcworld.com/forum/index.php?topic=2.

    Ein Neustart nach Schritt 7 führt jedoch zu einem vollständigen Absturz des Betriebssystems (schwarzer Bildschirm nach dem Bootloader mit der Meldung "Bytes konnten nicht geschrieben werden: Pipe defekt"). Ich glaube, das liegt daran, dass der xorg-Server mein System irgendwie stört.

  2. Ich habe im folgenden Tutorial einen ähnlichen Ansatz versucht, aber ich hatte nach der Installation von xorg-dev den gleichen Absturz wie in (1) während des Neustarts:

    http://sagark.org/optimal-ubuntu-graphics-setup-for-thinkpads/

Ab sofort frage ich mich, wohin ich von hier aus gehen soll. Ich habe ein paar Hinweise unten, irgendwelche Ideen, was das Problem ist oder was ich tun kann? Gibt es einen besseren Vorschlag? http://zachstechnotes.blogspot.com/2012/04/post-title.html

https://github.com/Bumblebee-Project/Bumblebee/issues/77

https://github.com/Bumblebee-Project/Bumblebee/issues/522

Hier sind auch einige meiner Dateien (lassen Sie mich wissen, ob es eine bessere Konfiguration gibt - die einzige Änderung, die ich vorgenommen habe, war das Auskommentieren der "BusID PCI: 01: 00.0" in der xorg.conf.nvidia -Datei:

[email protected]:~$ more /etc/bumblebee/xorg.conf.nvidia 
Section "ServerLayout"
    Identifier  "Layout0"
    Option      "AutoAddDevices" "false"
    Option      "AutoAddGPU" "false" EndSection

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"

#   If the X server does not automatically detect your VGA device,
#   you can manually set it here.
#   To get the BusID prop, run `lspci | egrep 'VGA|3D'` and input the data
#   as you see in the commented example.
#   This Setting may be needed in some platforms with more than one
#   nvidia card, which may confuse the proprietary driver (e.g.,
#   trying to take ownership of the wrong device). Also needed on Ubuntu 13.04.
    BusID "PCI:01:00:0"

#   Setting ProbeAllGpus to false prevents the new proprietary driver
#   instance spawned to try to control the integrated graphics card,
#   which is already being managed outside bumblebee.
#   This option doesn't hurt and it is required on platforms running
#   more than one nvidia graphics card with the proprietary driver.
#   (E.g. Macbook Pro pre-2010 with nVidia 9400M + 9600M GT).
#   If this option is not set, the new Xorg may blacken the screen and
#   render it unusable (unless you have some way to run killall Xorg).
    Option "ProbeAllGpus" "false"

    Option "NoLogo" "true"
    Option "UseEDID" "false"
    Option "UseDisplayDevice" "none"

Jugendstilfahrer:

[email protected]:~$ more /etc/bumblebee/xorg.conf.nouveau  Section "ServerLayout"
    Identifier  "Layout0"
    Option      "AutoAddDevices" "false"
    Option      "AutoAddGPU" "false" EndSection

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nouveau"

#   If the X server does not automatically detect your VGA device,
#   you can manually set it here.
#   To get the BusID prop, run `lspci | egrep 'VGA|3D'` and input the data
#   as you see in the commented example.
#   This Setting is needed on Ubuntu 13.04.
#   BusID "PCI:01:00:0"

Hummel Konfiguration:

[email protected]:~$ more /etc/bumblebee/bumblebee.conf 
# Configuration file for Bumblebee. Values should **not** be put between quotes

## Server options. Any change made in this section will need a server restart
# to take effect. [bumblebeed]
# The secondary Xorg server DISPLAY number VirtualDisplay=:8
# Should the unused Xorg server be kept running? Set this to true if waiting
# for X to be ready is too long and don't need power management at all. KeepUnusedXServer=false
# The name of the Bumbleblee server group name (GID name) ServerGroup=bumblebee
# Card power state at exit. Set to false if the card shoud be ON when Bumblebee
# server exits. TurnCardOffAtExit=false
# The default behavior of '-f' option on optirun. If set to "true", '-f' will
# be ignored. NoEcoModeOverride=false
# The Driver used by Bumblebee server. If this value is not set (or empty),
# auto-detection is performed. The available drivers are nvidia and nouveau
# (See also the driver-specific sections below) Driver=
# Directory with a dummy config file to pass as a -configdir to secondary X XorgConfDir=/etc/bumblebee/xorg.conf.d

## Client options. Will take effect on the next optirun executed. [optirun]
# Acceleration/ rendering bridge, possible values are auto, virtualgl and
# primus. Bridge=auto
# The method used for VirtualGL to transport frames between X servers.
# Possible values are proxy, jpeg, rgb, xv and yuv. VGLTransport=proxy
# List of paths which are searched for the primus libGL.so.1 when using
# the primus bridge PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primu s
# Should the program run under optirun even if Bumblebee server or nvidia card
# is not available? AllowFallbackToIGC=false


# Driver-specific settings are grouped under [driver-NAME]. The sections are
# parsed if the Driver setting in [bumblebeed] is set to NAME (or if auto-
# detection resolves to NAME).
# PMMethod: method to use for saving power by disabling the nvidia card, valid
# values are: auto - automatically detect which PM method to use
#         bbswitch - new in BB 3, recommended if available
#       switcheroo - vga_switcheroo method, use at your own risk
#             none - disable PM completely
# https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods

## Section with nvidia driver specific options, only parsed if Driver=nvidia [driver-nvidia]
# Module name to load, defaults to Driver if empty or unset KernelDriver=nvidia-current PMMethod=auto
# colon-separated path to the nvidia libraries LibraryPath=/usr/lib/nvidia-current:/usr/lib32/nvidia-current
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path XorgModulePath=/usr/lib/nvidia-current/xorg,/usr/lib/xorg/modules XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

## Section with nouveau driver specific options, only parsed if Driver=nouveau [driver-nouveau] KernelDriver=nouveau PMMethod=auto XorgConfFile=/etc/bumblebee/xorg.conf.nouveau

Danke.

10
modulitos

Zunächst habe ich aufgehört, es mit 12.04.3 oder 12.04.4 LTS zu versuchen, und stattdessen 13.10 verwendet. Ich glaube, die LTS-Versionen können mit der sich ständig ändernden Grafiksituation praktisch nicht Schritt halten - und ich habe es auf die harte Tour gelernt.

Hier sind die allgemeinen Schritte, die ich unternommen habe:

1) Install latest intel drivers, hope that intel-virtual-output, which is the integrated version of screenclone. If it's not packaged, compile that stuff from source.
2) In your xorg.conf.nvidia ensure the option preventing external screens is disabled.
3) Xrandr as usual :)

Diese Ressource ist hilfreich:

http://www.unixreich.com/blog/2013/linux-nvidia-optimus-on-thinkpad-w520w530-with-external-monitor-finally-solved/

Ich habe auch einen Blog-Beitrag zu diesem Thema für Ubuntu 14.04 erstellt:

http://blog.lukeswart.net/wordpress/

Letzteres sollte auch Informationen enthalten, die einem Anfänger beim Kompilieren der Treiber aus dem Quellcode helfen.

PS: Als Linux-Neuling war dieser Prozess sehr zeitaufwändig und ich kann nur hoffen, dass dieser Beitrag jemandem hilft. Das Einrichten eines externen Monitors auf einem Laptop, auf dem Optimus mit fest mit dem Nvidia-Chip verbundenen Anzeigeports ausgeführt wird, ist für einen neuen Linux-Benutzer ein sehr entmutigender Vorgang.

Als Benutzer, der Linux für meine Arbeit verwenden muss, bringt diese ganze Situation über den Schutz proprietärer Optimus-Treiber die gesamte Tech-Community in Verlegenheit.

3
modulitos