Вопрос или проблема
Начиная с сегодняшнего дня, у меня возникли проблемы с переходом в режим ожидания в Kubuntu 24.04.
Система начинает переходить в режим ожидания, но сразу же просыпается. Посмотрев на dmesg
, я вижу
[ 6651.094136] printk: Приостановка консоли(ей) (используйте no_console_suspend для отладки)
[ 6651.125166] e1000e: EEE TX LPI TIMER: 00000011
[ 6651.390957] e1000e 0000:00:1f.6: PM: pci_pm_suspend(): e1000e_pm_suspend+0x0/0xa0 [e1000e] возвращает -2
[ 6651.390992] e1000e 0000:00:1f.6: PM: dpm_run_callback(): pci_pm_suspend+0x0/0x1b0 возвращает -2
[ 6651.390999] e1000e 0000:00:1f.6: PM: не удалось приостановить асинхронно: ошибка -2
[ 6651.448565] PM: Некоторые устройства не смогли приостановиться, или было обнаружено раннее пробуждение
Возможно, это связано с тем, что немного ниже я вижу
[ 6652.552849] PM: выход из режима ожидания
[ 6652.553084] thermal thermal_zone10: не удалось считать тепловую зону (-61)
[ 6654.902420] e1000e 0000:00:1f.6 enp0s31f6: Аппаратная ошибка
[ 6656.229366] e1000e 0000:00:1f.6 enp0s31f6: Соединение NIC отключено
[ 6658.248107] e1000e 0000:00:1f.6 enp0s31f6: Аппаратная ошибка
[ 6660.706813] workqueue: e1000_watchdog_task [e1000e] использовал CPU более 10000us 4 раза, рассмотрите возможность переключения на WQ_UNBOUND
[ 6660.709569] iwlwifi 0000:00:14.3: WRT: Неверное значение назначения буфера
[ 6660.864924] iwlwifi 0000:00:14.3: Неверный указатель на журнал ошибок 0x0027B0C0 для RT uCode
[ 6660.864952] iwlwifi 0000:00:14.3: WFPM_UMAC_PD_NOTIFICATION: 0x1f
[ 6660.864971] iwlwifi 0000:00:14.3: WFPM_LMAC2_PD_NOTIFICATION: 0x1f
[ 6660.864978] iwlwifi 0000:00:14.3: WFPM_AUTH_KEY_0: 0x80
[ 6660.864987] iwlwifi 0000:00:14.3: CNVI_SCU_SEQ_DATA_DW9: 0x0
[ 6660.865819] iwlwifi 0000:00:14.3: RFIm отключен, причина = 4
После того как система снова заработала, у меня наблюдается высокая загрузка процессора от экземпляров kworker
, например kworker/0:2-events
. Перед первой попыткой приостановки kworker
ведет себя нормально (не отображается в top
).
e1000e
по-видимому связано с Ethernet. Я видел отчет об ошибке, который, похоже, связан, по адресу https://bugzilla.kernel.org/show_bug.cgi?id=205015, но он относится к ядру 5.3.0. Я использую 6.8.0-45.
Какие шаги по устранению неполадок будут хороши? Понизить версию ядра до предыдущей? (Я не осознанно обновлял ядро с тех пор, как это произошло.)
Правка: Я заметил, что после того как возникает проблема, Ethernet-соединение моего ноутбука не работает. Напротив, если у меня подключен Ethernet-кабель перед первой попыткой приостановки, то приостановка и восстановление работают как обычно, и Ethernet-соединение работает нормально. (Но использование сетевого адаптера USB-C не помогает.)
Правка 2: Я попытался отключить функцию Wake-on-LAN, выполнив sudo ethtool -s <мой eth интерфейс> wol d
, и это, по-видимому, решило проблему, по крайней мере, на данный момент. Мне не нужна функция WOL, так что это нормально, но все равно было бы интересно узнать, что произошло, с тех пор как эта проблема начала возникать.
Ответ или решение
Проблема, с которой вы столкнулись, связана с сбоем режима приостанавливаемого сна (suspend) в вашей системе на базе Kubuntu 24.04, а также с ошибками, сообщаемыми драйвером e1000e, отвечающим за Ethernet. Давайте рассмотрим шаги по устранению проблемы и возможные решения.
Анализ ситуации:
-
Логи системы:
- По вашим логам dmesg видно, что драйвер e1000e не может корректно завершить приостановку, возвращая ошибку -2. Это указывает на проблемы с управлением питанием вашего сетевого интерфейса.
- Сообщение о "Hardware Error" также подчеркивает серьезность проблемы с вашим сетевым адаптером.
-
Проблема с kworker:
- Высокая загрузка CPU процессами kworker указывает на то, что некоторые фоновые задачи (в данном случае, связанные с обработкой событий устройства) не могут завершиться.
-
Wake-on-LAN:
- Отключение Wake-on-LAN (WOL) действительно решило вашу проблему с приостановкой, что подтверждает, что данный функционал мог вызывать неожиданное пробуждение системы.
Рекомендации по устранению проблемы:
-
Отключение Wake-on-LAN:
Как вы уже сделали, отключение WOL с помощью командыsudo ethtool -s <your eth interface> wol d
является хорошим решением. Если вы не используете эту функцию, это должно устранить повторяющиеся проблемы со сном. -
Проверка обновлений:
Проверьте наличие обновлений системы и установите их, так как обновления могут содержать исправления для драйверов и управления питанием. Вы можете сделать это с помощью следующих команд:sudo apt update sudo apt upgrade
-
Проверка ядра:
Если после обновления проблема сохраняется, вы можете рассмотреть возможность выполнения резервного копирования и перехода на более старую версию ядра, если эта версия работает лучше. Для этого:- Перезагрузите систему и в меню GRUB выберите «Advanced options for Ubuntu».
- Выберите более старую версию ядра и посмотрите, сохраняется ли проблема с режимом сна.
-
Настройки драйвера e1000e:
Попробуйте изменить параметры изоляции и управления питанием для драйвера e1000e. Эти параметры можно задать, отредактировав файл конфигурации. Создайте файл/etc/modprobe.d/e1000e.conf
и добавьте туда строки:options e1000e InterruptThrottleRate=0 options e1000e PowerSaving=1
После изменения конфигурации перезагрузите систему.
-
Мониторинг системных ресурсов:
После внесения изменений следите за состоянием системы с помощью командыtop
илиhtop
для выявления других возможных причин высокого использования CPU.
Заключение:
Сейчас отключение WOL является вашим краткосрочным решением, и если это не повлияет на ваши рабочие процессы, вы можете оставить его. Однако, желательно продолжать исследовать основную причину проблемы с драйвером e1000e и высокой загрузкой kworker, изучая возможные исправления, предлагаемые сообществом и разработчиками. Если ситуация остается нерешенной, вы также можете рассмотреть возможность обращения в поддержку Kubuntu или сообщество Linux для получения дополнительной помощи.