Nvidia + режим ожидания в gnome
Всем добрый день!
У nvidia проблема с загрузкой системы из ждущего режима, часть интерфейса просто не отрисовывается.
В арчвики объяснено почему это происходит и что нужно сделать, но то ли криво переведено с английского, то ли я не понимаю, когда я делаю что там описано, ничего не происходит.
Вот сама выдержка
Вроде бы и f2fs поддерживает безымянные временные файлы,
и nvidia-utils-beta есть,
прописал в /etc/modprobe.d/nvidia-power-management.conf что там рекомендуют,
в /proc/driver/nvidia/suspend suspend и resume прописано
nvidia-suspend в systemctl разрешал,
но ничего не получилось.
Кто-то может объяснить, как правильно сделать так, чтобы видеопамять записывалась на диск?
Заранее прошу прощения, если спрашиваю что-то элементарное. Я ни раз возвращаюсь к этой проблеме, ну не получается у меня понять как эту проблему решить самостоятельно
У nvidia проблема с загрузкой системы из ждущего режима, часть интерфейса просто не отрисовывается.
В арчвики объяснено почему это происходит и что нужно сделать, но то ли криво переведено с английского, то ли я не понимаю, когда я делаю что там описано, ничего не происходит.
Вот сама выдержка
Вроде бы и f2fs поддерживает безымянные временные файлы,
и nvidia-utils-beta есть,
прописал в /etc/modprobe.d/nvidia-power-management.conf что там рекомендуют,
в /proc/driver/nvidia/suspend suspend и resume прописано
nvidia-suspend в systemctl разрешал,
но ничего не получилось.
Кто-то может объяснить, как правильно сделать так, чтобы видеопамять записывалась на диск?
Заранее прошу прощения, если спрашиваю что-то элементарное. Я ни раз возвращаюсь к этой проблеме, ну не получается у меня понять как эту проблему решить самостоятельно
У меня под иксами в KDE тоже есть такая проблема, но до изучения и решения вопроса всё никак руки не доходят. При выходе из ждущего режима на десктопе (nvidia 1050Ti) наблюдаются артефакты и прочее.
Но ... kwin_x11 автоматически производит сброс настроек графики и всё приходит в норму. По этой причине и не вникал в тему.
Но ... kwin_x11 автоматически производит сброс настроек графики и всё приходит в норму. По этой причине и не вникал в тему.
У меня на kde c 1050Ti в иксах нет такого, а вот на вяленой сессии такое иногда проскакивает.vall: У меня под иксами в KDE тоже есть такая проблема, но до изучения и решения вопроса всё никак руки не доходят. При выходе из ждущего режима на десктопе (nvidia 1050Ti) наблюдаются артефакты и прочее.
Arch Linux x86-64 на BTRFS
https://t.me/arch_linuxru
Не прописывал, но сейчас попробовал и не помогло, и на lts ядре тоже самоеindeviral: Вы в параметрах ядра прописали? Ну и для таких экспериментов лучше lts версии использовать.NVreg_PreserveVideoMemoryAllocations=1
Попробую ещё почитать комментарии nvidia, может они чего-то дельного пишут
Вообще пишут, что этот якобы всё починили, но вот в том же топике до сих пор встречаются люди с этой проблемой. Хз, может это из-за того, что я dkms драйвер использую ради кастомного ядра (lts 2-ым ядром стоит)
https://forums.developer.nvidia.com/t/c ... /194565/20
https://forums.developer.nvidia.com/t/c ... /194565/20
Выводы
systemctl status nvidia-suspend
find / -name 'setup-nvdia-suspend.sh' 2>/dev/null
PS - исправил описку во 2-ой команде (убрал лишний пробел после sh в '...suspend.sh ' )
... хотя наличие данного файла можно узнать и другими способами ...
systemctl status nvidia-suspend
find / -name 'setup-nvdia-suspend.sh' 2>/dev/null
PS - исправил описку во 2-ой команде (убрал лишний пробел после sh в '...suspend.sh ' )
... хотя наличие данного файла можно узнать и другими способами ...
Ошибки не исчезают с опытом - они просто умнеют
Это проблема nvidia известна и связна с драйверами nvidia. Наблюдается проблема и в Wayland.
Описана проблема и в DOC (некоторые выдержки, вольный перевод)
… Объем системной памяти, доступной для драйверов во время suspend/hibernate иногда может быть недостаточен для сохранения больших объемов видео памяти. Драйверы nvidia заточены на определенный порядок действий - сохранять только необходимые распределения видео памяти. Получающаяся потеря содержимого видео памяти может привести к сбоям …
Этим в основном страдают карты optimus и ноуты имеющие дополнительно интегрированую карту Intel.
Разработчики даже предусмотрели в драйверах nvidia определенный механизм для решения данной проблемы, но на 100% проблема не решается, зависит от железа.
EDID - решил дополнить для ясности ...
Драйвер NVIDIA Linux поддерживает suspend и hibernate с помощью двух различных механизмов:
Kernel driver callback (включен по дефолту и используется без явной конфигурации) - при использовании этого механизма драйвер ядра nvidia получает/использует обратные вызовы (callbacks) от ядра Linux для suspend/hibernate и возобновления каждого графического процессора.
Хотя этот механизм не имеет особых требований, но дает хорошие результаты со многими рабочими нагрузками, он страдает от нескольких ограничений - он может надежно сохранить относительно небольшой объем видео памяти, и не может поддерживать управление питанием, когда используются расширенные функции CUDA.
/proc/driver/nvidia/suspend - этот механизм опирается на инструмент systemd - работает через интерфейс /proc/nvidia/suspend. Считается экспериментальным и требует явной конфигурации для использования ... то есть требует дополнительной настройки.
Механизм предназначен для удаления ограничений, присущих механизму обратных вызовов драйвера ядра - способен сохранять и восстанавливать все распределения видео памяти.
Описана проблема и в DOC (некоторые выдержки, вольный перевод)
… Объем системной памяти, доступной для драйверов во время suspend/hibernate иногда может быть недостаточен для сохранения больших объемов видео памяти. Драйверы nvidia заточены на определенный порядок действий - сохранять только необходимые распределения видео памяти. Получающаяся потеря содержимого видео памяти может привести к сбоям …
Этим в основном страдают карты optimus и ноуты имеющие дополнительно интегрированую карту Intel.
Разработчики даже предусмотрели в драйверах nvidia определенный механизм для решения данной проблемы, но на 100% проблема не решается, зависит от железа.
EDID - решил дополнить для ясности ...
Драйвер NVIDIA Linux поддерживает suspend и hibernate с помощью двух различных механизмов:
Kernel driver callback (включен по дефолту и используется без явной конфигурации) - при использовании этого механизма драйвер ядра nvidia получает/использует обратные вызовы (callbacks) от ядра Linux для suspend/hibernate и возобновления каждого графического процессора.
Хотя этот механизм не имеет особых требований, но дает хорошие результаты со многими рабочими нагрузками, он страдает от нескольких ограничений - он может надежно сохранить относительно небольшой объем видео памяти, и не может поддерживать управление питанием, когда используются расширенные функции CUDA.
/proc/driver/nvidia/suspend - этот механизм опирается на инструмент systemd - работает через интерфейс /proc/nvidia/suspend. Считается экспериментальным и требует явной конфигурации для использования ... то есть требует дополнительной настройки.
Механизм предназначен для удаления ограничений, присущих механизму обратных вызовов драйвера ядра - способен сохранять и восстанавливать все распределения видео памяти.
Ошибки не исчезают с опытом - они просто умнеют
И в очередной раз спасибо за поучительный разбор проблемы. Некоторые моменты прояснил для себя с большей ясностью.vasek:Это проблема nvidia известна и связна с драйверами nvidia.
Буду опираться на этот пост, когда всё же руки дойдут до попытки решить вопрос не за счёт возможностей DE (сброс графики).
vall, просьба, если не сложно, привести выводы
Сам nvidia не использую, а поэтому интресно узнать состояние дел на сегодня - наличие в системе nvidia-suspend.service и файла setup-nvdia-suspend.sh
systemctl status nvidia-suspend
find / -name 'setup-nvdia-suspend.sh' 2>/dev/null
Ошибки не исчезают с опытом - они просто умнеют
Вывод:
Сервис systemd в нерабочем состоянии. А скрипт не найден.
➜ systemctl status nvidia-suspend
○ nvidia-suspend.service - NVIDIA system suspend actions
Loaded: loaded (/usr/lib/systemd/system/nvidia-suspend.service; disabled; preset: disabled)
Active: inactive (dead)
~
[🔴 3] ✗ find / -name 'setup-nvdia-suspend.sh' 2>/dev/null
~ 🕙 выполнено за 1m26s
[🔴 ERROR] ✗
indeviral:$ cat /etc/modprobe.d/nvidia-power-management.conf
➜ cat /etc/modprobe.d/nvidia-power-management.conf
cat: /etc/modprobe.d/nvidia-power-management.conf: Нет такого файла или каталога
Еще раз спасибо - моя забывчивость - писал по памяти и имя файла указал не правильно .... соглано DOC это nvidia-sleep.sh, в котором должно быть отражено и suspend и hibernate.vall:/usr/bin/nvidia-sleep.sh
В общем рекомендаций на эту тему несколько, но более полный и приближенный к DOC следующий (кому то помогает только выполнение пункта 1, кому то выполнение пунктов 1+2, кому то выполнение пунктов 1+2+3):
1. Активировать сервисы systemd (все или только нужный ... хотя логичнее делать все как прописано ...)
... все-таки, думаю, что для suspend обязательна активация nvidia-suspend и nvidia-resume - но это требуют проверки
sudo systemctl enable nvidia-suspend.service
sudo systemctl enable nvidia-hibernate.service
sudo systemctl enable nvidia-resume.service
options nvidia NVreg_PreserveVideoMemoryAllocations=1 Nvreg_TemporaryFilePath=/var/tmp
options nvidia Nvreg_PreserveVideoMemoryAllocations=1
options nvidia NVreg_TemporaryFilePath=/var/tmp
PS - параметр Nvreg_TemporaryFilePath=/var/tmp можно и не прописывать - файл создается по дефолту в /tmp ... .... перевод из DOC в части этого параметра приведен на следующей странице
3. Прописать парамерт ядра nvidia_drm.modeset=1
Повторюсь, кому то помогает только выполнение пункта 1, кому то выполнение пунктов 1+2, кому то выполнение пунктов 1+2+3 ... но возможно, что кому то и не поможет вообще. ... но есть менение и отдельных спецов, которые не очень то поддерживают эту настройку ...
PS - будет интересно узнать - решает ли это проблему ... поэтому просьба отписаться ...
Последний раз редактировалось vasek 08.01.2023 08:51, всего редактировалось 5 раз.
Ошибки не исчезают с опытом - они просто умнеют
Во-первых, благодарю за рекомендации.vasek:.. поэтому просьба отписаться ...
Во-вторых, обязательно сделаю вышеперечисленное, но только уже в воскресенье скорее всего. Предпраздничные хлопоты и завтрашний день просто не дают возможности сразу всё проверить. Сообщение пишу под голоса -- давай там бросай всё )
Если только случайно не возникнет "окно". Либо ТС подключится для поддержки.
Создайте.vall:indeviral:$ cat /etc/modprobe.d/nvidia-power-management.confP.S. Топикстартер отдыхает, работаю за него (не без пользы для себя). Но в иксовой сессии KDE )))➜ cat /etc/modprobe.d/nvidia-power-management.conf cat: /etc/modprobe.d/nvidia-power-management.conf: Нет такого файла или каталога
Ошибки в тексте-неповторимый стиль автора©
Спасибо большое, что помогаете в этом!
Извините, я вчера был занят другими делами, а Вы тут в активную без меня пытаетесь разобраться в системе
Попытаюсь по порядку:
suspend.sh не найден (Но как Вы тут уже выяснили, он может находиться в другом месте)
Причём:
Проблема не решилась
Следующее что я попробую, это вместо beta-dkms драйвера установить обычный не бета и без сборки на системе, может с этими драйверами заработают изменённые параметры
Это вдвойне интересно, потому что у меня никакой встроенной 2-ой графики в процессор нет, ровно? как и видеокарта не является мобильной - RTX2070
Ещё раз спасибо за внимание и извините, что не так активно вчера участвовал
Извините, я вчера был занят другими делами, а Вы тут в активную без меня пытаетесь разобраться в системе
Попытаюсь по порядку:
vasek: Выводы
systemctl status nvidia-suspend
find / -name 'setup-nvdia-suspend.sh' 2>/dev/null
PS - исправил описку во 2-ой команде (убрал лишний пробел после sh в '...suspend.sh ' )
... хотя наличие данного файла можно узнать и другими способами ...
○ nvidia-suspend.service - NVIDIA system suspend actions
Loaded: loaded (/usr/lib/systemd/system/nvidia-suspend.service; enabled; p>
Active: inactive (dead)
Причём:
было уже изначально прописано мною и тестировалась до этогоvasek: 2. Создать файл /etc/modprobe.d/nvidia-power-management.conf и прописать в немPS - вместо одной строчки, можно прописать и в две строчкиoptions nvidia NVreg_PreserveVideoMemoryAllocations=1 Nvreg_TemporaryFilePath=/var/tmp
Насколько понимаю, параметр Nvreg_TemporaryFilePath=/var/tmp нужен только для hibernateoptions nvidia Nvreg_PreserveVideoMemoryAllocations=1 options nvidia NVreg_TemporaryFilePath=/var/tmp
3. Прописать парамерт ядра nvidia_drm.modeset=1
Проблема не решилась
Вот весь вывод включая кэш менеджера пакетов:vall:vasek:find / -name '*.sh' 2>/dev/null | grep -i nvidia➜ find / -name '*.sh' 2>/dev/null | grep -i nvidia /usr/bin/nvidia-sleep.sh /usr/bin/nvidia-bug-report.sh
/usr/bin/nvidia-bug-report.sh
/usr/bin/nvidia-sleep.sh
/usr/src/nvidia-525.60.11/conftest.sh
/home/vlad/.cache/yay/nvidia-utils-beta/src/NVIDIA-Linux-x86_64-525.60.11/makeself-help-script.sh
/home/vlad/.cache/yay/nvidia-utils-beta/src/NVIDIA-Linux-x86_64-525.60.11/makeself.sh
/home/vlad/.cache/yay/nvidia-utils-beta/src/NVIDIA-Linux-x86_64-525.60.11/kernel/conftest.sh
/home/vlad/.cache/yay/nvidia-utils-beta/src/NVIDIA-Linux-x86_64-525.60.11/nvidia-bug-report.sh
/home/vlad/.cache/yay/nvidia-utils-beta/src/NVIDIA-Linux-x86_64-525.60.11/libglvnd_install_checker/check-libglvnd-install.sh
/home/vlad/.cache/yay/nvidia-utils-beta/src/NVIDIA-Linux-x86_64-525.60.11/kernel-open/conftest.sh
/home/vlad/.cache/yay/nvidia-utils-beta/src/NVIDIA-Linux-x86_64-525.60.11/systemd/nvidia-sleep.sh
/home/vlad/.cache/yay/nvidia-utils-beta/src/NVIDIA-Linux-x86_64-525.60.11/nvidia-persistenced-init/install.sh
/home/vlad/.cache/yay/nvidia-tweaks/patch.sh
/home/vlad/.cache/yay/nvidia-tweaks/patch-fbc.sh
/opt/cuda/usr/src/nvidia-fs-2.13/create_nv.symvers.sh
Это вдвойне интересно, потому что у меня никакой встроенной 2-ой графики в процессор нет, ровно? как и видеокарта не является мобильной - RTX2070
Ещё раз спасибо за внимание и извините, что не так активно вчера участвовал