Podczas wykonywania tego poradnika należy myśleć co się robi - można uszkodzić system.
O co chodzi? O usunięcie efektu szarpanego obrazu widocznego zwłaszcza w grach lub podczas oglądania filmów. W przypadku laptopów bardzo często widoczne jest to dopiero na zewnętrznych monitorach.
Prosty test: https://www.youtube.com/watch?v=5xkNy9gfKOg - jeśli pionowe paski nie są równe, tylko ze schodkami, albo po prostu poszarpane - to znaczy, że synchronizacja obrazu nie działa.
Ten poradnik pozwala taką synchronizację włączyć dla popularnej kombinacji kart - Intel (karta zintegrowana) i Nvidia (karta dyskretna) - zwanej Optimus i często spotykanej w laptopach. Tak dokładnie - chodzi o sytuację, gdy wyjście HDMI podłączone jest do karty zintegrowanej, a karta dyskretna uzyskuje dostęp do tego wyjścia poprzez renderowanie do buforu graficznego karty zintegrowanej. PRIME Sync pozwala robić to dobrze.
Zakładam, że do obsługi karty dyskretnej wykorzystywany jest mechanizm nvidia-prime oraz w panelu Nvidia włączona jest dyskretna karta graficzna - Nvidia.
Aktualizacja poniżej opisanych pakietów może spowodować uszkodzenie trybu graficznego i konieczność ratowania się z konsoli - zostałeś/aś ostrzeżony/a.
1. (tylko dla Ubuntu 16.04) Potrzebny jest świeży Xorg i kernel:
Kod: Zaznacz cały
sudo apt install --install-recommends linux-generic-hwe-16.04 xserver-xorg-hwe-16.04
Kod: Zaznacz cały
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-396 # może być już dostępny nowszy sterownik!
Kod: Zaznacz cały
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
Natomiast czasem mogą się pojawić problemy - część pakietów może być wstrzymana ze względu na różne zależności, albo pojawi się propozycja usunięcia połowy systemu...
Wtedy trzeba kombinować - należy przerwać aktualizację i wymusić instalację wybranych pakietów, aby zależności nie usunęły istotnych elementów systemu.
U mnie na wstrzymane pakiety i sugestie usunięcia połowy systemu pomogło:
Kod: Zaznacz cały
sudo apt install libegl1-mesa libegl1-mesa:i386 libwayland-egl1 libgtk-3-0:i386 libsdl2-2.0-0:i386
4. Należy wymusić aby sterownik Nvidia działał w trybie modeset:
Dla Ubuntu 16.04:
(poniższe polecenie jest prawidłowe dla zainstalowanej wcześniej wersji sterownika - należy zaktualizować numer wersji sterownika, jeśli została zainstalowana inna wersja)
Kod: Zaznacz cały
echo "options nvidia_396_drm modeset=1" | sudo tee /etc/modprobe.d/zz-nvidia-modeset.conf
sudo update-initramfs -u
Kod: Zaznacz cały
echo "options nvidia_drm modeset=1" | sudo tee /etc/modprobe.d/zz-nvidia-modeset.conf
sudo update-initramfs -u
Kod: Zaznacz cały
xrandr --verbose | grep PRIME
Kod: Zaznacz cały
PRIME Synchronization: 1
dla Ubuntu 16.04:
(poniższe polecenie jest prawidłowe dla zainstalowanej wcześniej wersji sterownika - należy zaktualizować numer wersji sterownika, jeśli została zainstalowana inna wersja)
Kod: Zaznacz cały
sudo cat /sys/module/nvidia_396_drm/parameters/modeset
Kod: Zaznacz cały
sudo cat /sys/module/nvidia_drm/parameters/modeset
Kod: Zaznacz cały
sudo gedit /etc/default/grub
Kod: Zaznacz cały
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
dla Ubuntu 16.04: nvidia-396-drm.modeset=1 - linia ma wyglądać tak:
(poniższe polecenie jest prawidłowe dla zainstalowanej wcześniej wersji sterownika - należy zaktualizować numer wersji sterownika, jeśli została zainstalowana inna wersja)
Kod: Zaznacz cały
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-396-drm.modeset=1"
Kod: Zaznacz cały
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia-drm.modeset=1"
Kod: Zaznacz cały
sudo update-grub
Kod: Zaznacz cały
xrandr --verbose | grep PRIME
Kod: Zaznacz cały
PRIME Synchronization: 1
Więcej o PRIME sync:
https://devtalk.nvidia.com/default/topi ... onization/
https://www.x.org/wiki/Events/XDC2016/P ... e-sync.pdf
Aktualizacja:
Niestety zastosowanie tej dobroci powoduje, póki co nierozwiązany, problem z Vulkanem (czyli DXVK, Steam Play, Lutris itp.) - z jakiegoś powodu Vulkan nie potrafi się prawidłowo uruchomić z poziomu zwykłego użytkownika. Objawia się to gdy używamy do logowania menedżera gdm3 - uruchamianie aplikacji używających Vulkana zwróci błąd VK_ERROR_INITIALIZATION_FAILED lub podobny (prawdopodobnie związany z grafiką).
Problem został opisany na Launchpad:
https://bugs.launchpad.net/nvidia-drive ... ug/1800465
https://bugs.launchpad.net/ubuntu/+sour ... ug/1769857
https://bugs.launchpad.net/ubuntu/+sour ... ug/1716857
Aby rozwiązać ten problem wystarczy po uruchomieniu systemu jednorazowo wykonać takie polecenie:
Kod: Zaznacz cały
sudo vulkaninfo
Kod: Zaznacz cały
sudo apt install vulkan-tools