Skip navigation

Hybrydowa grafika w laptopie potrafi być wyzwaniem. Ostatnio postanowiłem wreszcie skonfigurować to cudo do współpracy z zewnętrznym monitorem na Dellu M4700, w którym wbudowany wyświetlacz jest podpięty pod Intela a gniazdo HDMI pod NVidię. Po różnych eksperymentach udało mi się wykombinować takią konfigurację, w której GDM wyświetla okno logowania jak trzeba zarówno przy podpiętym jak i przy odłączony, monitorze zewnętrznym. Na bazie różnych postów z forów, dokumentacji i własnego rozpoznania wykombinowałem co następuje:

  • w pliku xorg.conf należy ustawić nvidię jako główną kartę a Intela deaktywować
  • do skryptów startowych GDM’a oraz xinit należy dodać polecenie xrandr z magicznymi parametrami
  • w xorg.conf należy ustawić LVDS-1 jako stale włączony

Co do pierwszego punktu to jest on raczej dość oczywisty – NVidia będzie odpowiadać za całą obsługę grafiki. Punkt drugi jest wymagany do tego aby podpiąć wbudowany monitor pod NVidię i aktywować na nim optymalną rozdzielczość. Ciekawostką jest trzeci punkt, który jest wymagany do tego aby GM wstał bez podpiętego zewnętrznego monitora. To rozwiązanie działa choć czasem niestety wymagane jest zrestartowanie serwera X (Ctrl-Alt-Backspace x2) Poniżej zawartość plików konfiguracyjnych.

/etc/X11/xorg.conf

Section "ServerLayout"
Identifier "layout"
Screen 0 "nvidia"
Inactive "intel"
EndSection

Section "Device"
Identifier "intel"
Driver "modesetting"
BusID "PCI:0@0:2:0"
Option "AccelMethod" "None"
EndSection

Section "Screen"
Identifier "intel"
Device "intel"
EndSection

Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:1@0:0:0"
Option "ConstrainCursor" "off"
EndSection

Section "Screen"
Identifier "nvidia"
Device "nvidia"
Option "AllowEmptyInitialConfiguration" "on"
Option "ConnectedMonitor" "LVDS-1"
EndSection

/etc/X11/xinit/xinitrc.d/99-xrandr.sh

xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --output LVDS-1 --right-of DP-0
xrandr --auto

/usr/share/gdm/greeter/autostart/xrandr.desktop

[Desktop Entry]
Type=Application
Name=XRandr
NoDisplay=true
X-GNOME-Autostart-Phase=DisplayServer
Exec=sh -c "xrandr --setprovideroutputsource modesetting NVIDIA-0; xrandr --output DP-0 --off"