После обновления с Ubuntu 20.10 до 21.10 (через 21.04, которое я не тестировал на предмет приостановки / возобновления), приостановить / resume больше не работает должным образом.
Если я использую проприетарный метапакет драйвера NVIDIA из nvidia-driver-470, кажется, что система приостанавливается нормально - с помощью кнопки питания (эквивалент systemctl suspend
) - но при возобновлении дисплей остается черным, и мне нужно выключить питание, чтобы избежать этого.
(Если я использую драйвер X.Org X Server, система не сможет приостановить работу после временного отключения дисплея.)
Ранее, 20.10, приостановка / возобновление работала нормально. IIRC, я использовал проприетарный драйвер NVIDIA.
Графическая карта - GK106GL [Quadro K4000] (кодовое имя NVE6), а ПК - Dell Precision T5500. inxi -G
вывод:
Graphics: Device-1: NVIDIA GK106GL [Quadro K4000] driver: nvidia v: 470.74
Device-2: SHENZHEN EMEET HD Webcam eMeet C960 type: USB driver: hid-generic,snd-usb-audio,usbhid,uvcvideo
Display: x11 server: X.Org 1.20.13 driver: loaded: nvidia unloaded: fbdev,modesetting,nouveau,vesa
resolution: 2560x1440~60Hz
OpenGL: renderer: Quadro K4000/PCIe/SSE2 v: 4.6.0 NVIDIA 470.74
Я выполнил некоторые инструкции для отладки приостановки ядра , отметив, что pm-suspend
(часть pm-utils
) воссоздает ту же ошибку восстановления, что и выше, и обнаружил следующее в выводе dmesg:
[ 1.322162] PM: Magic number: 0:486:890
[ 1.322167] PM: hash matches drivers/base/power/main.c:905
[ 1.322237] pci 0000:00:1f.3: hash matches
lspci
показал:
00:1f.3 SMBus: Intel Corporation 82801JI (ICH10 Family) SMBus Controller
Поиск «smbus 82801ji» привел меня к драйверу ядра i2c-i801 . Исходный код для этого драйвера включает исправление для ошибки возобновления . Последнее ядро с исправлением - 5.15-rc7.
После установки ядра 5.15-rc7 с использованием этих инструкций восстановление по-прежнему не удается после приостановки systemctl
. Однако возобновление работает нормально после sudo pm-suspend
. В версии 5.13 возобновление не выполняется после sudo pm-suspend
.
(Я также пробовал редактировать /etc/systemd/sleep.conf
, чтобы увидеть, помогли ли более ограниченные параметры приостановки, но они не помогли.)