27559
Установка nvidia prime на manjaro
Также я перевел данный мануал для английского форума: https://forum.manjaro.org/index.php?topic=31575.0
Так как мне удалось запустить nvidia prime под manjaro, я решил поделиться опытом установки и настройки данного. Но для начала, давайте узнаем в чем же отличия nvidia prime от bumblebee, ведь это совершенно разные подходы использования технологии nvidia optimus, не сочетающиеся друг с другом.
В чем преимущества nvidia prime над bumblebee:
Видеокарта nvidia будет использована по умолчанию
Это значит, что система и приложения, запущенные в ней, будут работать только на дискретной видеокарте, не нужно каждый раз запускать приложения с помощью команды optirun из пакета bumblebee.
Более высокая производительность, по сравнению с bumblebee
Это не всегда верно, но в некоторых приложениях это возможно, потому что prime работает через DMA, в отличии от bumblebee, который использует оперативную память.
Графически, система становится более отзывчивой
Но есть и некоторые проблемы:
Перегрев
Так как дискретная видеокарта будет работать для всех приложений, она может стать причиной перегрева вашего устройства. На устройствах с хорошей системой охлаждения обычно все хорошо.
Тиринг(эффект «рваного» изображения)
Не пытайтесь избавиться от тиринга, на момент написания статьи(27.02.16) нет способа избавиться от него, кроме как использовать встроенную видеокарту Intel с Option «DRI» «3» и bumblebee. Но nvidia выпустила патчи, избавляющие от тиринга, которые должны быть доступны в ядре версии 4.5 и в новой версии Xorg. Xorg 1.18 не имеет данных патчей. Узнать новости по данной проблеме вы можете по этой ссылке: https://devtalk.nvidia.com/default/topic/775691/linux/vsync-issue-nvidia-prime-ux32vd-with-gt620-m-/5
Тиринга не должно быть c приходом wayland, но nvidia еще не реализовала поддержку wayland для своих видеокарт.
Проверить, имеется ли у вас тиринг, вы можете с помощью данного видео: https://youtu.be/cuXsupMuik4
https://wiki.archlinux.org/index.php/NVIDIA_Optimus Именно из этой статьи я перенял большую часть опыта для настройки.
https://wiki.manjaro.org/index.php?title=Mhwd
1) Удалить текущие видеодрайвера
Вы можете сделать это через графическую утилиту mhwd, либо же удалить драйвера через консоль
2) Установить video-nvidia
3) Отредактируйте файл /etc/X11/xorg.conf.d/90-mhwd.conf
Файл является ссылкой на /etc/X11/mhwd.d/nvidia.conf, но не имеет значения измените вы сам файл или удалите ссылку и создадите свой 90-mhwd.conf.
Не пытайтесь использовать стандартный файл 90-mhwd.conf, генерируемый mhwd, вы получите «голую» консоль в лучшем случае, а в худшем потеряете контроль над системой.
Файл 90-mhwd.conf для ноутбука Lenovo y580(Intel HD4000 + Nvidia gtx 660m) сгенерированный по умолчанию mhwd:
Необходимо изменить данный файл 90-mhwd.conf, до рабочего вида:
С помощью сайта https://www.diffchecker.com/diff вы можете сравнить свой конфигурационный файл, с моим.
Коротко о внесении изменений в файл 90-mhwd.conf:
Измените секцию
В секцию Device, относящуюся к nvidia
добавьте
где
укажите адрес своей дискретной видеокарты nvidia, который можно узнать командой
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
01:00.0 VGA compatible controller: NVIDIA Corporation GK107M [GeForce GTX 660M] (rev ff)
В секцию
После окончания секции
Не забудьте указать свой адрес PCI для встроенной видеокарты Intel.
4) Измените файл $ ~/.xinitrc, добавив следующие две строчки в начало файла:
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
5) Измените параметры вашего экранного менеджера(графического менеджера входа), в зависимости от того, какой вы используете:
!SDDM:
xrandr --dpi 142
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
!LightDM:
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
Сделайте скрипт исполняемым:
# chmod +x /etc/lightdm/display_setup.sh
Теперь настройте lightdm для запуска скрипта, изменив секцию [SeatDefaults] в /etc/lightdm/lightdm.conf:
[SeatDefaults]
display-setup-script=/etc/lightdm/display_setup.sh
Так как мне удалось запустить nvidia prime под manjaro, я решил поделиться опытом установки и настройки данного. Но для начала, давайте узнаем в чем же отличия nvidia prime от bumblebee, ведь это совершенно разные подходы использования технологии nvidia optimus, не сочетающиеся друг с другом.
В чем преимущества nvidia prime над bumblebee:
Видеокарта nvidia будет использована по умолчанию
Это значит, что система и приложения, запущенные в ней, будут работать только на дискретной видеокарте, не нужно каждый раз запускать приложения с помощью команды optirun из пакета bumblebee.
Более высокая производительность, по сравнению с bumblebee
Это не всегда верно, но в некоторых приложениях это возможно, потому что prime работает через DMA, в отличии от bumblebee, который использует оперативную память.
Графически, система становится более отзывчивой
Но есть и некоторые проблемы:
Перегрев
Так как дискретная видеокарта будет работать для всех приложений, она может стать причиной перегрева вашего устройства. На устройствах с хорошей системой охлаждения обычно все хорошо.
Тиринг(эффект «рваного» изображения)
Не пытайтесь избавиться от тиринга, на момент написания статьи(27.02.16) нет способа избавиться от него, кроме как использовать встроенную видеокарту Intel с Option «DRI» «3» и bumblebee. Но nvidia выпустила патчи, избавляющие от тиринга, которые должны быть доступны в ядре версии 4.5 и в новой версии Xorg. Xorg 1.18 не имеет данных патчей. Узнать новости по данной проблеме вы можете по этой ссылке: https://devtalk.nvidia.com/default/topic/775691/linux/vsync-issue-nvidia-prime-ux32vd-with-gt620-m-/5
Тиринга не должно быть c приходом wayland, но nvidia еще не реализовала поддержку wayland для своих видеокарт.
Проверить, имеется ли у вас тиринг, вы можете с помощью данного видео: https://youtu.be/cuXsupMuik4
Установка:
В ходе установки вам могут понадобиться следующие статьи:https://wiki.archlinux.org/index.php/NVIDIA_Optimus Именно из этой статьи я перенял большую часть опыта для настройки.
https://wiki.manjaro.org/index.php?title=Mhwd
1) Удалить текущие видеодрайвера
Вы можете сделать это через графическую утилиту mhwd, либо же удалить драйвера через консоль
sudo mhwd -r pci video-hybrid-intel-nvidia-bumblebee
2) Установить video-nvidia
sudo mhwd -i pci video-nvidia -f
3) Отредактируйте файл /etc/X11/xorg.conf.d/90-mhwd.conf
Файл является ссылкой на /etc/X11/mhwd.d/nvidia.conf, но не имеет значения измените вы сам файл или удалите ссылку и создадите свой 90-mhwd.conf.
sudo nano /etc/X11/xorg.conf.d/90-mhwd.conf
Не пытайтесь использовать стандартный файл 90-mhwd.conf, генерируемый mhwd, вы получите «голую» консоль в лучшем случае, а в худшем потеряете контроль над системой.
Файл 90-mhwd.conf для ноутбука Lenovo y580(Intel HD4000 + Nvidia gtx 660m) сгенерированный по умолчанию mhwd:
Стандартный файл 90-mhwd.conf
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 352.79 (buildmeister@swio-display-x64-rhel04-15) Wed Jan 13 17:02:24 PST 2016
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
Option "NoLogo" "1"
Option "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Extensions"
Option "Composite" "Enable"
EndSection
Section "InputClass"
Identifier "Keyboard Defaults"
MatchIsKeyboard "yes"
Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
Необходимо изменить данный файл 90-mhwd.conf, до рабочего вида:
Рабочий файл 90-mhwd.conf для nvidia prime
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 352.79 (buildmeister@swio-display-x64-rhel04-15) Wed Jan 13 17:02:24 PST 2016
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
Inactive "intel"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
BusID "PCI:1:0:0"
VendorName "NVIDIA Corporation"
Option "NoLogo" "1"
Option "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
Option "AllowEmptyInitialConfiguration" "Yes"
# Change to your resolution
Monitor "1920x1080"
EndSection
Section "Device"
Identifier "intel"
Driver "modesetting"
BusID "PCI:0:2:0"
Option "AccelMethod" "sna"
Option "DRI" "3"
EndSection
Section "Screen"
Identifier "intel"
Device "intel"
EndSection
Section "Extensions"
Option "Composite" "Enable"
EndSection
Section "InputClass"
Identifier "Keyboard Defaults"
MatchIsKeyboard "yes"
Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
С помощью сайта https://www.diffchecker.com/diff вы можете сравнить свой конфигурационный файл, с моим.
Коротко о внесении изменений в файл 90-mhwd.conf:
Измените секцию
Section "ServerLayout"
, убрав 2 цифры после Screen 0 "Screen0"
и добавьте параметр Inactive "intel"
В секцию Device, относящуюся к nvidia
Section "Device"
Identifier "Device0"
Driver "nvidia"
добавьте
BusID "PCI:1:0:0"
где
"PCI:1:0:0"
укажите адрес своей дискретной видеокарты nvidia, который можно узнать командой
lspci | grep -E "VGA|3D"
Output
01:00.0 VGA compatible controller: NVIDIA Corporation GK107M [GeForce GTX 660M] (rev ff)
В секцию
Section "Screen"
добавьте параметр Option "AllowEmptyInitialConfiguration" "Yes"
и Monitor "1920x1080"
, где «1920x1080» укажите свое разрешение дисплея.После окончания секции
Section "Screen" ... EndSection
добавьте следующие 2 секции:Section "Device"
Identifier "intel"
Driver "modesetting"
# Change to your PCI
BusID "PCI:0:2:0"
Option "AccelMethod" "sna"
Option "DRI" "3"
EndSection
Section "Screen"
Identifier "intel"
Device "intel"
EndSection
Не забудьте указать свой адрес PCI для встроенной видеокарты Intel.
4) Измените файл $ ~/.xinitrc, добавив следующие две строчки в начало файла:
nano ~/.xinitrc
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
5) Измените параметры вашего экранного менеджера(графического менеджера входа), в зависимости от того, какой вы используете:
!SDDM:
sudo nano /usr/share/sddm/scripts/Xsetup
xrandr --dpi 142
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
!LightDM:
sudo nano /etc/lightdm/display_setup.sh
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
Сделайте скрипт исполняемым:
# chmod +x /etc/lightdm/display_setup.sh
Теперь настройте lightdm для запуска скрипта, изменив секцию [SeatDefaults] в /etc/lightdm/lightdm.conf:
sudo nano /etc/lightdm/lightdm.conf
[SeatDefaults]
display-setup-script=/etc/lightdm/display_setup.sh
14 комментариев
Я бы сказал что это недостаток! Мне на ноуте не надо чтоб браузер работал на дискретке.
Хотя если есть опция для GRUB, но нормально.
Есть такие у кого получилось?
Screen 0 «Screen0» заменить на Screen 1 «Screen1» надо, и далее по конфигу Screen0 на Screen1
Но это у меня так было.
Мы же линуксойды все-таки: если что-то не заработало — кури логи, там все написано, что не так.
ничего не помогает. прошу помощи!!!
Веб клиент: web.telegram.org
скрин
у меня следующий вопрос: в настрйках драйвера nvidia нет профиля prime(как в ubuntu) через него вручную можно было переключатся между картами, здесь это возможно сделать?
Пример содержания скрипта:
cd «путь до директории с файлом»
optirun start.sh
Плюс 1-й — Я могу спокойно переключаться между внешним и внутренним дисплеем ноутбука
Плюс 2-й — При подключенном внешнем дисплее и закрытой крышке ноутбука, ничего не тормозит (в отличии от драйвера nvidia-prime)
Пожалуй минус такого решения (он очевиден, т.к. используются стандартные драйвера nvidia) — время работы от батареи.
Но для меня этот минус менее важен, чем два плюса выше.