Итак... режим ожидания Ubuntu не работает на моем Lenovo Z13. Изначально я использовал двойную загрузку Windows и Ubuntu, и режим ожидания прекрасно работал в Windows, но не в Ubuntu. Затем я попробовал очистить весь диск до системы EFI и загрузчиков и установил новый Ubuntu на абсолютно чистый лист. Проблема сохраняется на свежем 22.04.1.
Забавное замечание: systemctl suspend отлично работает при загрузке с USB-накопителя Ubuntu, если «пытаться Ubuntu».
Похоже, точная проблема связана с функцией приостановки. Когда systemctl suspend запускается в самый первый раз после загрузки, все работает нормально. Но в любое время после этого он продолжает отключать экран, в то время как ПК все еще работает (все еще может использовать кнопки Fn (подсветка и т. д.)), потребляя электроэнергию и вращая вентиляторы. Более того, я не могу заставить его «разбудить» из этого состояния никакими способами. Единственное, что решает это состояние, — принудительная ручная перезагрузка.
Короче говоря, функция приостановки отлично работает на USB-накопителях Ubuntu и любых установках Windows, но не на локальной Ubuntu (по крайней мере, любые последующие приостановки после первой).
решение1
Ubuntu 22.04 недавно выпустил новую версию и перешел с 22.04.1 на 22.04.2. Новая версия обновляет ядро с 5.15 до 5.19. Похоже, что в ядре Ubuntu 5.19.0.32 есть некоторые ошибки, влияющие на определенное оборудование.
Попробуйте старое ядро
- Откройте меню grub, нажав клавишу ESCпри включении ноутбука.
- Перейти кРасширенные возможности для Ubuntuменю и загрузитесь с использованием старого ядра.
Посмотрите, работает ли приостановка. Перейдите к следующему шагу.
Изменить настройки grub по умолчанию
Чтобы изменить ядро, которое Ubuntu загружает по умолчанию, вам нужно получить индекс всех пунктов меню. Откройте терминал с помощью Ctrl+ Alt+ Tи введите:
$ sudo grub-mkconfig | grep -iE "menuentry 'Ubuntu, with Linux" | awk '{print i++ " : "$1, $2, $3, $4, $5, $6, $7}'
Вы получите кучу выходных данных, которые заканчиваются чем-то вроде:
0 : menuentry 'Ubuntu, with Linux 5.19.0-32-generic' --class ubuntu
1 : menuentry 'Ubuntu, with Linux 5.19.0-32-generic (recovery mode)'
2 : menuentry 'Ubuntu, with Linux 5.15.0-43-generic' --class ubuntu
3 : menuentry 'Ubuntu, with Linux 5.15.0-43-generic (recovery mode)'
Примечание:Ваш может выглядеть по-другому. Вышеприведенный вывод — всего лишь пример. Используя этот пример, вы можете захотеть загрузиться, используя номер записи меню 2
.
Далее вам нужно будет отредактировать файл /etc/default/grub
. Я использую текстовый редактор nano
, но вы можете использовать что-то другое. Введите следующую команду в терминале, чтобы открыть файл в nano:
sudo nano /etc/default/grub
Найдите строку:
GRUB_DEFAULT=0
Отредактируйте строку так, чтобы она выглядела так:
GRUB_DEFAULT="1>2"
Эта настройка означает, что если запись 1 является подменю, откройте его и выберите там запись 2. В этом примере запись меню 1 (обратите внимание, записи начинаются с 0) являетсяРасширенные возможности для Ubuntu. и запись 2 из полученного подменю:
menuentry 'Ubuntu, with Linux 5.15.0-43-generic' --class ubuntu
Выйдите из nano, нажав Ctrl+, Xи сохраните файл при появлении соответствующего запроса.
Теперь, чтобы это изменение вступило в силу, вам нужно использовать команду:
sudo update-grub
Перезагрузите ноутбук обычным образом (не заходя в меню grub). С этого момента компьютер должен загружаться со старым ядром.
ЕщеКак мне загрузиться со старой версией ядра?
Важный:В конце концов будет выпущено новое ядро, и ваш компьютер получит обновление. В этот момент вам может быть предложено удалить старое ядро. Проверьте, работает ли новое ядро у вас, прежде чем "автоудалять" ядро 5.15.
После следующего обновления ядра вам нужно будет снова отредактировать grub default. Если новое ядро работает, вам нужно будет отменить изменения, чтобы компьютер загрузился с последним ядром.
Если новейшее ядро не работает, вам все равно придется пройти этот процесс еще раз, поскольку относительный яд пунктов меню изменится.
Примечание:вы можете захотеть отправить отчет об ошибке. СмотретьКак сообщить об ошибке?чтобы ядро было исправлено.
Надеюсь это поможет
решение2
Использовать собственное ядро OEM
Эта проблемаописывает проблему и предлагает решение, которое сработало у меня на Thinkpad Z13 с процессором AMD Ryzen7:
sudo apt install linux-oem-22.04c
Похоже, в ядре есть ошибка, которая была исправлена в новых версиях.
Редактировать: Обратите внимание, что это привяжет вас к этой конкретной версии ядра до тех пор, пока не будет установлено новое ядро или вы не удалите это ядро.