- Вопрос или проблема
- Если на Ubuntu 22.04.2 или любой операционной системе Ubuntu на Wayland
- Последний выход: выполните мягкую перезагрузку ядра до выполнения жесткой перезагрузки
- Несколько заключительных мыслей
- Для KDE / Kubuntu:
- Ответ или решение
- Решение проблемы: Экран остается черным после выхода из режима ожидания
- Понимание проблемы
- Возможные решения
- Шаг 1: Настройка драйверов
- Шаг 2: Изменение настроек BIOS/UEFI
- Шаг 3: Замена дисплейного менеджера
- Шаг 4: Работа с оконным менеджером Unity
- Заключение
Вопрос или проблема
Итак, когда я перевожу свой ноутбук в спящий режим и потом пробуждаю его, мой ноутбук включается: я, например, могу изменять громкость с аудио подтверждением с помощью клавиатуры, но мой экран остается черным и ничего не отображает, пока я не перезагружу ноутбук.
Это снова глючный драйвер 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 21.10 блокируется с черным экраном после пробуждения
- Режим ожидания не работает: Ubuntu 20.04 (вообще не работает) / 21.10 (в режиме батареи не работает)
- Режим ожидания не работает должным образом (не может проснуться) в Ubuntu 20.04 с NVIDIA
- Ubuntu 21.04 не просыпается из спящего режима
- Как заставить работать режим ожидания в Ubuntu (21.10 – выпуск impish)?
- https://superuser.com/questions/1699286/ubuntu-21-10-suspension-problems
- https://www.youtube.com/watch?v=_36yNWw_07g
- https://itsfoss.community/t/ubuntu-21-10-not-reawakening-from-sleep/7782
Если на 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. Выполните жесткую перезагрузку только в случае, если эта последовательность мягкой перезагрузки сначала не удалась.
Несколько заключительных мыслей
- Если у вас подключен Yubikey, отключите его! Он определяется компьютером как USB-клавиатура и может иметь “зажатую клавишу” или иначе препятствовать нормальной работе компьютера. Я сделал USB-устройство клавиатуры под названием “Computa Pranksta” и иногда сталкивался с аналогичной проблемой.
- У вас может быть аппаратная проблема, как я когда-то имел на своем компьютере здесь. Чтобы протестировать это, загрузитесь в меню загрузки BIOS / UEFI и выберите выполнение полного аппаратного теста, если ваш компьютер имеет такую опцию с завода. Это может выявить плохую ОЗУ, плохую материнскую плату или что-то еще.
- Этот ответ от @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”, отключенными
Это очень легко протестировать, так что попробуйте и посмотрите, поможет ли это.
Я исправил это, изменив конфигурацию 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,-чтобы сделать то же самое.
ctrl + alt + f2
pkill -9 kscreenlocker_g
илиpkill -9 kscreenlocker_greet
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 или другие. Приведем основные методы решения, в зависимости от различных конфигураций:
Понимание проблемы
Перед решением проблемы важно понять её возможные причины. Наиболее частыми являются:
- Драйверы видеоадаптера: Неисправности могут быть связаны с несовместимыми или устаревшими драйверами.
- Настройки BIOS/UEFI: Неправильные конфигурации могут вызывать проблемы с пробуждением устройства.
- Менеджеры окон и дисплея: Не все менеджеры одинаково хорошо работают с некоторыми конфигурациями аппаратуры.
Возможные решения
Шаг 1: Настройка драйверов
-
Настройка GRUB для драйверов nouveau:
- Откройте терминал и выполните команду для редактирования файла конфигурации GRUB:
sudoedit /etc/default/grub
- Добавьте
nouveau.modeset=0
в строкуGRUB_CMDLINE_LINUX
. - Сохраните изменения и обновите настройки GRUB командой:
sudo update-grub
- Перезагрузите систему.
- Откройте терминал и выполните команду для редактирования файла конфигурации GRUB:
-
Изменение драйверов 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
- Перезагрузите систему.
- Отключите службы, связанные с NVIDIA, которые могут мешать:
-
Установка новых драйверов NVIDIA из PPA:
- Добавьте репозиторий:
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update
- Установите последний драйвер:
sudo apt install nvidia-driver-565
- Добавьте репозиторий:
Шаг 2: Изменение настроек BIOS/UEFI
-
Настройка режима PCIe ASPM (Active State Power Management):
- Перейдите в BIOS/UEFI и включите PCIe ASPM.
-
Изменение режима графики:
- В BIOS переключите графику на UMA вместо гибридной.
Шаг 3: Замена дисплейного менеджера
- Смена дисплейного менеджера:
- Установите и переключитесь на lightdm:
sudo apt install lightdm sudo dpkg-reconfigure lightdm
- Установите и переключитесь на lightdm:
Шаг 4: Работа с оконным менеджером Unity
- Установка Unity Desktop:
- Установите Unity:
sudo apt install ubuntu-unity-desktop
- Установите Unity:
Заключение
Проблема с черным экраном после выхода из режима ожидания имеет множество возможных причин и методов решения. Каждая из предложенных мер может оказаться полезной в зависимости от конфигурации вашего оборудования и используемой операционной системы. Регулярное обновление драйверов и изучение документации на официальных сайтах могут помочь минимизировать вероятность возникновения подобных проблем в будущем.