Экран остается пустым после выхода из режима ожидания.

Вопрос или проблема

Итак, когда я перевожу свой ноутбук в спящий режим и потом пробуждаю его, мой ноутбук включается: я, например, могу изменять громкость с аудио подтверждением с помощью клавиатуры, но мой экран остается черным и ничего не отображает, пока я не перезагружу ноутбук.

Это снова глючный драйвер nouveau. Это то, что решило проблему для меня. Отредактируйте файл /etc/default/grub (с помощью редактора Vi — некоторые пользователи не смогли сохранить после редактирования в Vi и им пришлось использовать альтернативный режим редактирования “Ex”, который заменяет sudo edit ниже, затем Alt+:w и :x для команд сохранения и выхода).

$ sudoedit /etc/default/grub 

Добавьте nouveau.modeset=0 в строку, где указано GRUB_CMDLINE_LINUX.

GRUB_CMDLINE_LINUX="nouveau.modeset=0"

Затем нажмите CtrlO, затем Enter для сохранения файла и CtrlX для выхода из редактора.

Запустите

$ sudo update-grub

Теперь перезагрузитесь.

Это похоже на проблему с драйвером видеокарты.
Попробуйте Ctrl + Alt + F3, затем Ctrl + Alt + F2 (возможно, F7) — это может включить дисплей.
Но это временное решение.

Вы можете захотеть постоянное решение, тогда попробуйте обновить или изменить драйвер видеокарты или попробовать решение с настройками grub от @cascagrossa.

Ошибка Ubuntu 21.10+ NVIDIA 470/510 nv_restore_user_channels

Это начало происходить со мной, как только я перешел на Ubuntu 21.10 на своем Lenovo ThinkPad P51 с NVIDIA Quadro M1200, и на основе трассировки ядра это именно эта ошибка: https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-510/+bug/1946303 Моё дублированное расследование: https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-510/+bug/1953674

Чтобы легко воспроизвести проблему, мне нужно было отключить шнур питания от ноутбука и работать только от батареи. В противном случае проблема возникала только иногда и чаще после нескольких часов в спящем режиме.

Обходные пути:

  • вариант 1: ошибка в отчёте указывает на https://forums.developer.nvidia.com/t/fixed-suspend-resume-issues-with-the-driver-version-470/187150/3 от отважного пользователя humblebee, который предложил обходной путь:

    sudo systemctl stop nvidia-suspend.service
    sudo systemctl stop nvidia-hibernate.service
    sudo systemctl stop nvidia-resume.service
    
    sudo systemctl disable nvidia-suspend.service
    sudo systemctl disable nvidia-hibernate.service
    sudo systemctl disable nvidia-resume.service
    
    sudo mv /lib/systemd/system-sleep/nvidia ~/nvidia.bak
    

    и перезагрузитесь.

    Если вы всё-таки удалите его, содержание nvidia.bak такое:

    #!/bin/sh
    
    case "$1" in
        post)
            /usr/bin/nvidia-sleep.sh "resume"
            ;;
    esac
    

    Этот пост указывает на причину:

    Драйвер 470 мигрировал к методу systemd, в то время как предыдущие версии полагались на обратный вызов драйвера ядра. Похоже, что это сломано на некоторых настройках и ядрах.

  • вариант 2: отказаться от ускорения и УДАЛИТЬ ВСЁ ОТ NVIDIA: удалить все пакеты nvidia (dpkg -l | grep -i nvidia, sudo apt uninstall) и удалить их настройки тоже (sudo apt purge ...). Удаление конфигураций, как видно из варианта 1), является ключевой причиной проблемы.

    Заметьте, что даже такие не графические вещи, как пакет NVIDIA CUDA/OpenCL, всё равно всё ломают, особенно я не мог уснуть после удаления графики, но сохранения их, по теме: Ubuntu 18.04.2 сразу же просыпается от спящего режима

  • вариант 3: отказаться от Nvidia и приобрести себе AMD GPU в случае, если вам не важно CUDA. Почему я когда-то купил ноутбук с дискретным GPU? Я играл с CUDA около 10 раз за 5 лет. Просто арендуйте Nvidia GPU на AWS, если игра с CUDA только иногда является вашим случаем использования.

Легко узнать, столкнулись ли вы с этой ошибкой или нет, просто посмотрите на следующие трассировки в вашем dmesg.

Так как вы, скорее всего, выключаете компьютер и перезагружаете его, вам нужно будет искать их в dmesg предыдущей загрузки, согласно Как найти журнал предыдущей загрузки после перезагрузки Ubuntu 16.04+? :

journalctl -b-1

Трассировки такие:

WARNING: CPU: 0 PID: 18016 at /var/lib/dkms/nvidia/510.47.03/build/nvidia/nv.c:3935 nv_restore_user_channels+0xce/0xe0 [nvidia]

Call Trace:
<TASK>
nv_set_system_power_state+0x22b/0x3e0 [nvidia]
nv_procfs_write_suspend+0xe9/0x140 [nvidia]
proc_reg_write+0x5a/0x90
? __cond_resched+0x1a/0x50
vfs_write+0xc3/0x250
ksys_write+0x67/0xe0
__x64_sys_write+0x19/0x20
do_syscall_64+0x61/0xb0
? exit_to_user_mode_prepare+0x37/0xb0
? syscall_exit_to_user_mode+0x27/0x50
? __x64_sys_newfstatat+0x1c/0x20
? do_syscall_64+0x6e/0xb0
? syscall_exit_to_user_mode+0x27/0x50
? do_syscall_64+0x6e/0xb0
? asm_exc_page_fault+0x8/0x30
entry_SYSCALL_64_after_hwframe+0x44/0xae
WARNING: CPU: 0 PID: 18016 at /var/lib/dkms/nvidia/510.47.03/build/nvidia/nv.c:4152 nv_set_system_power_state+0x2d0/0x3e0 [nvidia]

nv_procfs_write_suspend+0xe9/0x140 [nvidia]
proc_reg_write+0x5a/0x90
? __cond_resched+0x1a/0x50
vfs_write+0xc3/0x250
ksys_write+0x67/0xe0
__x64_sys_write+0x19/0x20
do_syscall_64+0x61/0xb0
? exit_to_user_mode_prepare+0x37/0xb0
? syscall_exit_to_user_mode+0x27/0x50
? __x64_sys_newfstatat+0x1c/0x20
? do_syscall_64+0x6e/0xb0
? syscall_exit_to_user_mode+0x27/0x50
? do_syscall_64+0x6e/0xb0
? asm_exc_page_fault+0x8/0x30
entry_SYSCALL_64_after_hwframe+0x44/0xae

Я также видел следующую ошибку ACPI:

ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.LPCB.EC.HKEY.DEVT.PEGS], AE_NOT_FOUND (20210331/psargs-330)

No Local Variables are initialized for Method [DEVT]

Initialized Arguments for Method [DEVT]:  (1 arguments defined for method invocation)
  Arg0:   00000000fe968048 <Obj>           Integer 00000000000000D3

ACPI Error: Aborting method \_SB.PCI0.LPCB.EC.HKEY.DEVT due to previous error (AE_NOT_FOUND) (20210331/psparse-529)

Связанное:

Если на Ubuntu 22.04.2 или любой операционной системе Ubuntu на Wayland

Смотрите мой ответ здесь: Wayland window manager causes my computer to stay on a black/blank screen and not wake up. Я представил там 3 решения, подробно, так что сначала ознакомьтесь с ними.

Я также начал документировать такие типы проблем и их решения на своем личном сайте, чтобы я мог отслеживать их, так как мне они нужны каждый раз, когда я обновляюсь до последней версии Ubuntu: Common ways to fix video driver (and related) issues in Linux Ubuntu.

Последний выход: выполните мягкую перезагрузку ядра до выполнения жесткой перезагрузки

Помните: прежде чем удерживать кнопку питания для жесткой перезагрузки, вы всегда можете мягко перезагрузиться с помощью этой странной последовательности:

Удерживайте Ctrl + Alt + PrScr, затем нажмите следующие клавиши поочередно, удерживая те первые 3 клавиши, весь путь: R, E, I, S, U, B.

Заметьте, что на некоторых (многих?) ноутбуках/клавиатурах кнопка PrScr может требовать клавишу Function, Fn, для ее активации, так что вы можете удерживать Ctrl + Alt + PrScr + Fn вместо этого, набирая последовательность перезагрузки REISUB.

Я не помню, где я об этом узнал, но я читал об этом у кого-то лет назад на Ask Ubuntu или SuperUser где-то. Последняя клавиша, “B”, означает “B”oot. Так, когда вы нажимаете эту клавишу, ваш компьютер перезагружается.

Имейте это в виду для любой проблемы в Linux. Выполните жесткую перезагрузку только в случае, если эта последовательность мягкой перезагрузки сначала не удалась.

Несколько заключительных мыслей

  1. Если у вас подключен Yubikey, отключите его! Он определяется компьютером как USB-клавиатура и может иметь “зажатую клавишу” или иначе препятствовать нормальной работе компьютера. Я сделал USB-устройство клавиатуры под названием “Computa Pranksta” и иногда сталкивался с аналогичной проблемой.
  2. У вас может быть аппаратная проблема, как я когда-то имел на своем компьютере здесь. Чтобы протестировать это, загрузитесь в меню загрузки BIOS / UEFI и выберите выполнение полного аппаратного теста, если ваш компьютер имеет такую опцию с завода. Это может выявить плохую ОЗУ, плохую материнскую плату или что-то еще.
  3. Этот ответ от @Vijay Prema выглядит обещающим, но, к сожалению, у меня нет пароля BIOS на компьютере, с которым у меня проблемы, так что я не могу изменить настройки BIOS, чтобы выяснить это.

для меня переключение с gdm3 на дисплейный менеджер lightdm решило проблему

Вот что исправило эту проблему для меня на Kubuntu 20.04 Intel NUC PC (NUC8i7HVK), который имеет Intel HD графику + встроенную Radeon RX Vega M GH:

Я зашёл в настройки UEFI BIOS и включил PCIe ASPM (Active State Power Management). Я оставил другие настройки, такие как “Native ACPI OS PCIe”, отключенными

Enable ASPM in UEFI BIOS

Это очень легко протестировать, так что попробуйте и посмотрите, поможет ли это.

Я исправил это, изменив конфигурацию BIOS графики: Advanced -> Built-In Device Options -> Graphics, затем переключил с Hybrid Graphics на UMA Graphics. (на ноутбуке HP)

Для меня сработало:

sudo nano /etc/default/grub

И отредактируйте:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="persistent"

Извините, если то, что я говорю, странно (я использую Google переводчик).
В моем случае, я использую Asus Vivobook S15.
После отчаянного поиска, я случайно нашел решение (в моем случае) и хотел его поделиться.
Что я сделал, так это установил Unity Desktop:

$ sudo apt install ubuntu-unity-desktop

И хотя это кажется абсурдным, всё стало работать почти магически.
Я надеюсь, что эта информация будет полезна кому-то. Приветствую!

Вариант 1 ответа Ciro Santilli помог мне, когда я использовал Kubuntu 22.04, но после обновления до 24.04 проблема вернулась и ничего не помогло, включая все другие ответы.

Что помогло мне с 24.04, так это установка последнего драйвера Nvidia с помощью ppa. Вот что я сделал:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update

# Проверьте, какие версии доступны
sudo apt list | grep nvidia-driver

# Установите последнюю бета-версии на данный момент
sudo apt install nvidia-driver-565

sudo reboot

Прошло уже 3 недели без проблем.

Я обнаружил, что просто нажатие клавиши функции (“Fn”) пробуждает экран, когда всё остальное не помогает. Всё остальное – это другие случайные нажатия клавиш.

Я попробовал все данные ответы в этом посте, ни один из них не помог мне (изменил драйверы, обновил драйверы, отредактировал /etc/default/grub, изменил дисплейный менеджер, сделал больше swap, потратил несколько часов, молился ноутбуку).

Тогда я наконец сдался и подумал об активации режима гибернации, во время его включения я запустил

cat /sys/power/state

Что дало мне

disabled

Затем я почувствовал, что это из-за режима загрузки UEFI в BIOS. Установите этот параметр в legacy support, который позволил ещё одну опцию Boot priority, оставьте это как UEFE First по умолчанию.

После этого я смог возобновить работу системы после спящего режима.

cat /sys/power/state

теперь дает больше опций, которые содержат suspend.

Это было проделано на Legion Y540 (GTX 1650 с драйверами Nvidia – 418 (без IGPU) / Ubuntu 20 LTS / Ядро 5.4 / последний BIOS на данный момент)

P.S. Windows никогда не имели проблем с пробуждением от сна.

Для KDE / Kubuntu:

Наряду с изменением громкости, я также мог видеть курсор мыши и мог перемещать его вокруг на черном фоне (экране). Из-за черного “экрана”, я не мог войти/выйти или выполнить корректное завершение работы или перезагрузку.

Ранее убийство plasmashell или Xorg из tty исправляло проблему, однако это приводило к потере открытых приложений/окон и несохраненных данных буфера (например, текста в Kate и т. д.)

Я наконец внимательно изучил, что я мог убить kscreenlocker,-чтобы сделать то же самое.

  1. ctrl + alt + f2
  2. pkill -9 kscreenlocker_g или pkill -9 kscreenlocker_greet
  3. ctrl + alt + f1

Теперь kscreenlocker_greet должен был перезагрузиться, позволяя пользователю войти!

Примечание: это решение ограничено только пользователями KDE, однако оно не требует изменения драйверов / настроек дисплея, как предложено в приведенных выше ответах.

Ура!

Вероятно, это эквивалент тому, как кто-то нажимает кнопки, чтобы увидеть, исправят ли они их проблемы, но выглядит так, что добавление ключевого слова persistent в строку GRUB_CMDLINE_LINUX_DEFAULT сработало для меня.

Раньше каждый раз, когда я блокировал экран, это отключало мой монитор.

После добавления ключевого слова persistent в строку GRUB_CMDLINE_LINUX_DEFAULT в файле /etc/default/grub и выполнения sudo update-grub, мой экран больше не отключается после блокировки.
А в наши дни я могу вернуться и ввести свой пароль, чтобы войти в систему и продолжить свою работу как профи без необходимости делать комбинацию клавиш ALT + F1, F2, F3, которую некоторые из вас могли привыкнуть выполнять!

СПАСИБО persistent КЛЮЧЕВЫМ СЛОВОМ В МОЕЙ СТРОКЕ GRUB_CMDLINE_LINUX_DEFAULT! (и также megashake)

Вот пример моего файла /etc/default/grub.

# Если вы измените этот файл, выполните 'update-grub' для обновления
# /boot/grub/grub.cfg.
# Для полной документации опций в этом файле смотрите:
#   info -f grub -n 'Простая конфигурация'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="vga=0 rdblacklist=nouveau nouveau.modeset=0 acpi_osi=Linux persistent"
GRUB_CMDLINE_LINUX=""

# Раскомментируйте, чтобы включить фильтрацию BadRAM, измените под ваши нужды
# Это работает с Linux (патч не требуется) и с любым ядром, которое получает
# информацию о карте памяти от GRUB (GNU Mach, ядро FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Раскомментируйте для отключения графического терминала (только grub-pc)
#GRUB_TERMINAL=console

# Разрешение используемое на графическом терминале
# заметьте, что вы можете использовать только те режимы, которые поддерживает ваша графическая карта через VBE
# вы можете увидеть их в реальном GRUB с командой `vbeinfo'
GRUB_GFXMODE=1024x768

# Раскомментируйте, если не хотите, чтобы GRUB передавал параметр "root=UUID=xxx" Linux
#GRUB_DISABLE_LINUX_UUID=true

# Раскомментируйте для отключения генерации пунктов меню в режиме восстановления
#GRUB_DISABLE_RECOVERY="true"

# Раскомментируйте, чтобы получить сигнал на старте grub
GRUB_INIT_TUNE="480 440 1"
#GRUB_DISABLE_OS_PROBER=false
  • Переместите указатель [стрелку] в нижнюю часть экрана
  • Удерживайте левую клавишу, расположенную ниже сенсорной панели ноутбука, затем толкните стрелку в центр экрана, что переместит экран вверх, и вы увидите пустую панель на нижней части экрана, затем щелкните ее ….
    Это работает у меня каждый раз… Удачи…

Это похоже на временное решение для меня.

Устройство: HP 245 G5

ОС: Xubuntu 18.04

Когда ваш экран пустой, эта последовательность действий, похоже, решает проблему:

  • (подождите 5 секунд)

  • CTRL + ALT + F2 (подождите секунду)

  • CTRL + ALT + F3 (подождите секунду)

  • CTRL + ALT + F7 (подождите секунду)

  • ESC (подождите секунду)

  • ENTER (3 раза XD)

  • Закройте ноутбук (подождите 5 секунд).

  • Снова откройте ноутбук.

  • И этот ужасный пустой экран исчезнет.

  • Просто попробуйте изменить режим загрузки на UEFI в BIOS.
  • Я тоже столкнулся с такой же проблемой на моем ноутбуке Lenovo.
  • Просто изменил режим загрузки, и теперь я работаю без проблем

.

Ответ или решение

Решение проблемы: Экран остается черным после выхода из режима ожидания

Проблема, когда экран ноутбука остается черным после выхода из режима ожидания, хотя система кажется рабочей (например, вы можете менять громкость с помощью клавиатуры и слышать аудио подтверждение), встречается достаточно часто. Есть несколько возможных причин и решений этой проблемы, особенно если вы используете графические драйверы NVIDIA или другие. Приведем основные методы решения, в зависимости от различных конфигураций:

Понимание проблемы

Перед решением проблемы важно понять её возможные причины. Наиболее частыми являются:

  1. Драйверы видеоадаптера: Неисправности могут быть связаны с несовместимыми или устаревшими драйверами.
  2. Настройки BIOS/UEFI: Неправильные конфигурации могут вызывать проблемы с пробуждением устройства.
  3. Менеджеры окон и дисплея: Не все менеджеры одинаково хорошо работают с некоторыми конфигурациями аппаратуры.

Возможные решения

Шаг 1: Настройка драйверов

  1. Настройка GRUB для драйверов nouveau:

    • Откройте терминал и выполните команду для редактирования файла конфигурации GRUB:
      sudoedit /etc/default/grub
    • Добавьте nouveau.modeset=0 в строку GRUB_CMDLINE_LINUX.
    • Сохраните изменения и обновите настройки GRUB командой:
      sudo update-grub
    • Перезагрузите систему.
  2. Изменение драйверов NVIDIA:

    • Отключите службы, связанные с NVIDIA, которые могут мешать:
      sudo systemctl stop nvidia-suspend.service
      sudo systemctl stop nvidia-hibernate.service
      sudo systemctl stop nvidia-resume.service
      sudo systemctl disable nvidia-suspend.service
      sudo systemctl disable nvidia-hibernate.service
      sudo systemctl disable nvidia-resume.service
    • Переименуйте скрипт nvidia-sleep.sh:
      sudo mv /lib/systemd/system-sleep/nvidia ~/nvidia.bak
    • Перезагрузите систему.
  3. Установка новых драйверов NVIDIA из PPA:

    • Добавьте репозиторий:
      sudo add-apt-repository ppa:graphics-drivers/ppa
      sudo apt update
    • Установите последний драйвер:
      sudo apt install nvidia-driver-565

Шаг 2: Изменение настроек BIOS/UEFI

  1. Настройка режима PCIe ASPM (Active State Power Management):

    • Перейдите в BIOS/UEFI и включите PCIe ASPM.
  2. Изменение режима графики:

    • В BIOS переключите графику на UMA вместо гибридной.

Шаг 3: Замена дисплейного менеджера

  1. Смена дисплейного менеджера:
    • Установите и переключитесь на lightdm:
      sudo apt install lightdm
      sudo dpkg-reconfigure lightdm

Шаг 4: Работа с оконным менеджером Unity

  1. Установка Unity Desktop:
    • Установите Unity:
      sudo apt install ubuntu-unity-desktop

Заключение

Проблема с черным экраном после выхода из режима ожидания имеет множество возможных причин и методов решения. Каждая из предложенных мер может оказаться полезной в зависимости от конфигурации вашего оборудования и используемой операционной системы. Регулярное обновление драйверов и изучение документации на официальных сайтах могут помочь минимизировать вероятность возникновения подобных проблем в будущем.

Оцените материал
Добавить комментарий

Капча загружается...