Manjaro KDE Edition

Проблема с 3D ускорением и GLX на гибридной графике Nvidia Optimus

Добрый день.
Юзаю Manjaro KDE на ноуте с гибридной графикой. Уже довольно давно заметил странное поведение KDE — временами система становилась туповатой, отзывалась на шелчки мыши с задержкой примерно в 2с, да и в целом притормаживала. При чем после перезагрузки реагировала мгновенно.

Не обращал особого внимания до тех пор, пока не понадобилось использовать VirtualBox. Дело в том, что когда система становилась туповатой — не запускались машины с включенным 3D ускорением, VirtualBox выдавал ошибку, что 3D не доступен на хост машине.
Кроме того, Steam тоже отказывается запускаться, выкидывает окно с текстом «OpenGL GLX extension not supported by display». Перезагрузка лечит, но ошибка через некоторое время появляется снова.

Как оказалось действительно, иногда система загружается без поддержки 3D ускорения (если я неправильно выражаюсь — пожалуйста поправьте). Что интересно, баг проявляется рандомно. Иногда летает и все ок, а иногда тупит безбожно и валятся ошибки в Steam и VirtualBox.

Далее немного скринов:
Manjaro KDE Edition: Проблема с 3D ускорением и GLX на гибридной графике Nvidia Optimus

Manjaro KDE Edition: glxinfo

Manjaro KDE Edition: Проблема с 3D ускорением и GLX на гибридной графике Nvidia Optimus

Manjaro KDE Edition: Проблема с 3D ускорением и GLX на гибридной графике Nvidia Optimus

Manjaro KDE Edition: Проблема с 3D ускорением и GLX на гибридной графике Nvidia Optimus

Варианты лечения из гугла ничего не изменили.
Пробовал переустанавливать дрова 390xx через mhwd (на 340xx виснет при загрузке), пробовал ядра 4.14, 4.15, 4.16, одна фигня.
Посему у меня вопросы: В чем именно проблема? Почему проявляется рандомно? Как это полечить?
Заранее спасибо.
Уголок новичка

Тормозят драйвера Nvidia

Доброго дня.
При установке офф. драйверов nvidia немного притомаживает dся графика. Всё как-то дергано.
На свободных драйверах такого небыло, но были небольшие артефакты.
Судя по всему драйвера встали правильно.

Что может быть?

Уголок новичка: Тормозят драйвера Nvidia
Ядро & Оборудование

Жара в Морровинде, или Квест про кулер на Nvidia.

Захотелось мне тряхнуть стариной - погонять в теплый ламповый Morrowind.
Торрент, исошник, плейонлинукс, сетап.екзе, далее-далее-далее, лончер-опции-1280х960-игра, чтотонетак, winecfg, повторить лончер-опции… Короче, встал Morrowind. «Новая игра». Тыц. Заставка, мутный ролик про меня, Избранного Спасти Мир. Ну, поехали…
Джиуб, еще не святой. "-Говорят, мы уже приплыли в Морровинд. Нас выпустят, это точно! Тихо, стражник идёт..."
…… ээээ, чёзанах! Черный экран, монитор мигает лампочой- «нет сигнала». Из колонок по прежнему музыка Джереми Соула и шаги охранника. «Мы прибыли туда, где Вас выпустят. Следуйте за мной.»
А… куда следовать-то? Экран потух, выйти из игры клавишами не выходит, горячие клавиши иксов в вайне не срабатывают… «Ну и чо??? Выпустите меня! ВолкИ позорные! Свободу Нереварину!!!»
Не выпускают. Даже ведьмачий знак АльтКонтрДел бесполезен. Ну что ж, резет.

И так каждый раз, раньше или позже. В логе отладки ничего внятного нет.
Наконец замечаю что при работающей игре подозрительно громко шумит какой-то кулер в системнике. Смотрю на датчики вентиляторов проца и корпуса- нормально. Игра меж тем в очередной раз вылетает, Перезагружаюсь, сразу запускаю nvidia-settings (то что в меню называется «NVIDIA X Server Settings»), гляжу на «Thermal Settings»… Вот оно! Обороты кулера и температура чипа весьма высоки, хотя постепенно падают. Похоже, видеокарта отключается от перегрева. Ну да, Морровинд- место жаркое. Все же на вулкане живем, это вам не Скайрим…
Запускаю игру, температура видеочипа стремительно прыгает вверх, а кулер разгоняется неспешно, явно не успевая охладить чип. На отметке 96С градусов срабатывает защита и видеокарта опять отключается.
Достаю системник, берусь за отвертку. Ну, я так и предполагал… Видеокарта стоит радиатором вниз, крепление радиатора- с пружинками. Радиатор от видеочипа отвалился и болтается на ослабевших пружинках винтов крепления. Термопаста высохла. Кулер-то крутится, а толку чуть.
Вытряхиваю из корпуса пыль- давно пора, лет пять как не заглядывал… Снимаю видеокарту. Разбираю, меняю термопасту, подтягиваю винты радиатора, фиксирую локтейтом. Собираю обратно.
Запускаю комп. О, как всё изменилось- в холостом режиме nvidia-settings показывает тнмпературу 30-35 градусов, обороты кулера — ровно 30%. С игрой- около 60-70С и кулер 80%. А если нагрузить? Запускаю
gputest /test=pixmark_volplosion, температура медленно растет до 84С, кулер быстрее 80 не разгоняется.
Хорошо! А если выключить нагрузку? Температура быстро снижается до 60С, потом кулер с 80% переходит сразу на 30%, скорость падения температуры снижается, и за пару минут опускается до 35С. Снова запускаю gputest, вижу такую картину: температура возрастает быстро и линейно при постоянных оборотах кулера в 30% вплоть до 60С. Потом кулер скачком разгоняется до 80%, рост температуры замедляется, но всё-же через минуту температура доходит до 84С. И всё стабилизируется. 84С температура и 80% обороты кулера. Дальше не растёт, даже если добавить нагрузки запустив несколько штук gputest.
Отлично!

Но…

Мне не очень нравится как кулер видеокарты автоматически выбирает обороты. Конечно, при приближении к опасным температурным значениям он разгоняется и свою работу делает, но в Морровинд играть мешает- температура в игре гуляет как раз около порога его режимов, и кулер постоянно переключается с тихого режима на высокоскоростной. Стоишь спокойно- тишина. Побежал, подпрыгивая или кастанул фаербол в скального наездника- кулер взвыл. Убил гада- через несколько секунд кулер снова затих, переключившись в медленный режим. В общем, основную музыкальную тему я слышу нормально, а боевую музыку- с аккомпанементом завывающего кулера. Отвлекает. Уж лучше бы он постоянно выл, что-ли…

А что, можно и так. Только вот в nvidia-settings опция ручного управления оборотами кулера по дефолту заблокирована. Что ж, начинается акробатика с кульбитами. А ну-ка…

Создаю файлик /etc/X11/xorg.conf.d/30-nvidia.conf


Section "Device"
    Identifier "Device 0"
    Driver     "nvidia"
    VendorName "NVIDIA Corporation"
    BoardName  "IDENTIFIER FOR YOUR GPU"
    Option     "Coolbits" "4"
EndSection


Перегружаюсь, смотрю в nvidia-settings- порядок, кульбит сработал. На вкладке «Thermal Settings» появилась возможность ручного регулирования оборотов кулера. Это хорошо, но вдруг где-то под Гнисисом налетят на меня штук пять скальных наездников, парочка гончих и компания бандитов-ашлендеров? Или запущу игру, а выставить повышенные обороты в nvidia-settings тупо забуду? Температура поднимется, а кулер на постоянных оборотах может и не справится. Как-бы видяху не сжечь… В NVIDIA дураков мало, не зря они эту опцию заблокировали!
Можно, конечно, кинуть в автозагрузку скрипт с командой

"nvidia-settings -a [gpu:0]/GPUFanControlState=1 -a [fan:0]/GPUCurrentFanSpeed=80"

чтобы включить эту опцию и выставить обороты кулера в 80%…
Но это решит лишь половину задачи. Есть ведь и обратный вариант: не всегда же мне играть хочется. А даже если хочется- выйду я на минутку из игры, отвлекусь часа на три- а кулер так и будет вхолостую воздух молотить? Нет, автоматизация нужна не половинчатая, а именно полная.

Хорошо что в АУРе есть такая утилитка- nvfancontrol. Правда чтобы работала ее еще настраивать нужно. Что-ж делать, придется заморочиться.

yaourt -S nvfancontrol

при установке ругается на ключ, но тут всё как обычно, поможет

gpg --recv-keys 44EB0D4FC6E01280

Сперва посмотрим справку, там все просто:


$ nvfancontrol -h
Usage: nvfancontrol [options]

Options:
    -d, --debug         Enable debug messages
    -l, --limits LOWER,UPPER
                        Comma separated lower and upper limits, use 0 to
                        disable, default: 20,80
    -f, --force         Always use the custom curve even if the fan is already
                        spinning in auto mode
    -m, --monitor-only  Do not update the fan speed and control mode; just log
                        temperatures and fan speeds
    -j, --json-output   Print a json representation of the data to stdout
                        (useful for parsing)
    -t, --tcp-server [PORT]
                        Print a json representation of the data over a tcp
                        port. Can be optionally followed by the port number
                        over which the server will listen for incoming
                        connections
    -h, --help          Print this help message


Можно запустить его как обычную команду в debug-режиме и посмотреть как он работает


$ nvfancontrol -d
WARN - No config file found; using default curve
DEBUG - Curve points: [(41, 20), (49, 30), (57, 45), (66, 55), (75, 63), (78, 72), (80, 80)]
INFO - NVIDIA driver version: 390.42
INFO - NVIDIA graphics adapter #1: GeForce GTX 550 Ti
DEBUG - Fan is enabled on auto control; doing nothing
DEBUG - Temp: 34; Speed: 1440 RPM (30%); Load: 2%; Mode: Auto


Всё здорово, но стандартная шкала «температура-обороты» несколько странная, и лучше все-же создать свой конфигурационный файл ~/.config/nvfancontrol.conf Например, такой:


30    30
40    40
50    50
60    60
70    70
80    80
85    90
90    100


Проверим.


$ nvfancontrol -d
DEBUG - Curve points: [(30, 30), (40, 40), (50, 50), (60, 60), (70, 70), (80, 80), (85, 90), (90, 100)]
INFO - NVIDIA driver version: 390.42
INFO - NVIDIA graphics adapter #1: GeForce GTX 550 Ti
DEBUG - Fan is enabled on auto control; doing nothing
DEBUG - Temp: 34; Speed: 1440 RPM (34%); Load: 1%; Mode: Auto


Вот, теперь шкала более внятная.

Проверим в деле. В окошке терминала запустим nvfancontrol -fd и оставим работать.
Запустим nvidia-settings. Опция «Enable GPU Fan Settings» должна включиться автоматически, за это отвечает ключ -f. Теперь запустим gputest /test=pixmark_volplosion и посмотрим как работает кулер под нагрузкой. Смотреть можно и в терминальном окне с запущенным nvfancontrol, и в nvidia-settings. Но в nvidia-settings будет гораздо нагляднее. Обороты кулера должны изменяться в соответствии с нашей шкалой, ползунок «Fan 0 speed» — будучи передвинут куда-либо вручную должен отскакивать обратно, снятая вручную галочка «Enable GPU Fan Settings» — восстанавливаться.

У меня так оно и заработало. Правда, полностью протестировать всю шкалу не удалось- со свежей термопастой и вычищенным от пыли радиатором карта напрочь отказывалась греться выше 84С под любой нагрузкой. Ну и ладно, будет запас на будущее.

До полной автоматизации осталось всего пара шагов. Нужно всё зафиксировать и запустить. И лучше не просто так, а в виде сервиса.
Тут тоже тонкости. Сам nvfancontrol использует библиотеку xnvctrl, а она без запущенных иксов не работает. Значит, запускать сервис нужно после запуска иксов, а иксы запускаются от пользователя. Хорошо что сервис можно запустить и так, это в общем не сложнее чем стартовать обыкновенный системный сервис.

В каталоге ~/.config/systemd/user создадим новый юнит- текстовый файл с именем nvfancontrol.service


[Unit]
Description="NVIDIA Dynamic fan control"
After=graphical.target

[Service]
Type=simple
ExecStart=/usr/bin/nvfancontrol -f

[Install]
WantedBy=default.target


Потом в терминале стартуем его


systemctl --user enable nvfancontrol.service
systemctl --user daemon-reload
systemctl --user start nvfancontrol.service

и проверим запустился ли он

[mmk@tal02 ~]$ systemctl --user status nvfancontrol.service
● nvfancontrol.service - "NVIDIA Dynamic fan control"
   Loaded: loaded (/home/mmk/.config/systemd/user/nvfancontrol.service; enabled; vendor preset: enabled)
   Active: active (running) since Th 2018-04-12 18:38:29 MSK; 1h 18min ago
 Main PID: 1090 (nvfancontrol)
   CGroup: /user.slice/user-1000.slice/user@1000.service/nvfancontrol.service
           └─1090 /usr/bin/nvfancontrol -f

апр 12 18:38:29 tal02 systemd[954]: Started "NVIDIA Dynamic fan control".
апр 12 18:38:29 tal02 nvfancontrol[1090]: INFO - NVIDIA driver version: 390.42
апр 12 18:38:29 tal02 nvfancontrol[1090]: INFO - NVIDIA graphics adapter #1: GeForce GTX 550 Ti


Ага, запустился. В «Диспетчере задач» должен появиться новый процесс с именем "nvfancontrol -f"

Но такой сервис сам собою не стартует, поэтому еще потребуется кинуть в автозагрузку команду
systemctl --user start nvfancontrol.service или скрипт с этой командой, зависит от окружения.

Перезагрузимся. Заглянем в nvidia-settings. Всё должно работать так как работало когда мы запускали nvfancontrol -fd вручную.

Всё, теперь автоматизация полная, кулер работает именно так как я и хотел- плавно поднимает обороты вслед за растущей температурой и так же плавно их опускает при снижении нагрузки на видеочип. Примерно до 50% его абсолютно не слышно, далее шум плавно нарастает и при снижении нагрузки так-же плавно стихает, резких рывков уровня шума больше нету, и я уверен что при тяжелых моментах в игре кулер сделает все что сможет, но аварийных вылетов графики по перегреву не допустит. И в то же время при работе компьютера в обычном режиме кулера видеокарты совершенно не слышно.
Красота!

Результатом я вполне доволен- уже дошел до Вивека. Я, блин, стану лордом Нереварином и главой всех гильдий, и никакие кулеры меня не остановят! И пусть ординаторы следят за мной и обзывают «ничтожеством» — я еще сочиню специально для них заклинание вроде ФузРоДаха! А этот бешеный чупачупс ДаготУр непременно получит напророченных ему грандиознейших люлей! И не раз, а дважды. Во имя Азуры, королевы Заката и Рассвета!
Manjaro KDE Edition

[Решено] Слетело разрешение, можно выбрать только низкое (864x486)

Здравствуйте. Поставил драйвер video-hybrid-intel-nvidia-bumblebee. Перезагрузил компьютер и вижу такую картину в настройках: Manjaro KDE Edition: Слетело разрешение
[sqwoteg@swtg ~]$ lspci -k | grep VGA -A2
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
        Subsystem: Lenovo 3rd Gen Core processor Graphics Controller
        Kernel driver in use: i915
--
01:00.0 VGA compatible controller: NVIDIA Corporation GF108M [GeForce GT 635M] (rev ff)
        Kernel modules: nouveau, nvidia_drm, nvidia
02:00.0 Ethernet controller: Qualcomm Atheros AR8162 Fast Ethernet (rev 10)
[sqwoteg@swtg ~]$ xrandr
Screen 0: minimum 8 x 8, current 864 x 486, maximum 32767 x 32767
LVDS1 connected primary 864x486+0+0 (normal left inverted right x axis y axis) 340mm x 190mm
   864x486       60.00* 
   640x480       59.94  
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

На экране авторизации все отлично, потом появляется логотип манжары, тоже нормальный, но потом он становится размытым из-за того, что сменилось разрешение. Использую сборку с KDE-mini.


Вот решение, которое сработало для меня:

Зайдите в терминал.
cd /etc/X11/

переименуйте/удалите файл xorg.conf
sudo mv xorg.conf xxorg.conf

Перезагрузите компьютер. Зайдите в настройки и там в выборе должно быть Ваше разрешение.
Manjaro GNOME

Решено. После обновления глючит полноэкранное проигрывание видео в браузерах

Manjaro Gnome.
После недавнего обновления — возник один косяк.
После проигрывания видео на YouTube в полноэкранном режиме не удается свернуть видео (переключиться в оконный режим). Видео остается висеть либо происходят другие странные глюки. Иногда пропадает верхняя строка меню Gnome (трей). Иногда просто виснит вся графическая среда на 10-20 секунд. А иногда вообще вышибает из Gnome на экран выбора учетной записи.

Супер критичный баг. На убунте такого не было.
Смена браузеров не помогает.
Дело не в видео драйверах. Изначально стояли проприентарные от nvidia из репозитория.
Потом снес их и оставил только встроенную графику intel с free-дровами. тоже самое.

Похоже что-то с Gnome.

Проблема оказалась в теме Shell для Gnome. Сам Gnome видимо обновился — и тема перестала там нормально работать. Проверяйте — если столкнетесь с аналогичными проблемами.
Manjaro KDE Edition

Failed to start load kernel modules (nvidia)

Добрый вечер!
Подскажите, пожалуйста, новичку как решить проблему:
Manjaro KDE Edition: Failed to start load kernel modules (nvidia)
Возникла она после установки драйвера nvidia (загрузил и перезагрузил комп).
Если знаете, напишите подробнее что где и как сделать. Возможно, есть способ явно указать использовать старый драйвер (манджаровский)?
Manjaro KDE Edition

Что там с Optimus?

Пользователи Manjaro на ноутбуках с Nvidia Optimus, отпишитесь, как оно у вас работает? Есть ли проблемы? Велики ли шансы на то, чтобы всё работало как надо? Как это вообще выглядит — большую часть времени работает интеграшка, а отдельные программы запускаются на дискретке Nvidia? Когда на дискретке ничего не запущено, она работает или отключена?
Manjaro KDE Edition

Помогите, какая то ерунда с разрешением!

Всем привет. Вчера было обновление… не знаю из за него ли или нет.
В общем оставил компьютер на 10 минут с детьми. Когда вернулся увдел следующую картину:
Manjaro KDE Edition: Помогите, какая то ерунда с разрешением!

Ну думаю фигня, разрешение сбили, залез в настройки драйвера и оп-па! А моего разрешения в настройках и нет теперь вообще! И вообще нет ни чего больше 640х480!!! Что за нах?!?
Manjaro KDE Edition: Помогите, какая то ерунда с разрешением!

Перестанавливал драйвер, пересоздавал конфиги — нифига не помогает. Единственное чего удалось вчера добиться, это увеличения разрешения до 1024x768, но все возвращается обратно при перезагрузке.
Ядро & Оборудование

nvidia GTX 970 работает на макс. частотах

Собственно вот в чем вопрос. Решив полностью пересесть на linux столкнулся с проблемой, что видеокарта работает всегда на максимальных частотах, из-за этого разница с win примерно в 12 градусов(win — 36, lin — 48). Драйвера и там и там стоят проприетарные, от оболочки и их настроек не зависит. Как побороть эту проблему? Проявляется кстати на всех дистрибутивах и на всех ядрах.