Здравствуйте, товарищи.
Ситуация:
Есть ноутбук Acer ES1-711G, неплохой, но уж больно невезучий.
Когда стабильной версией был Debian Jessie, то и тогда с ним были проблемы (борьбу с ними я даже описал для потомков https://mihanentalpo.me/en/2016/10/debian-jessie-acer-es1-711g/), но их почти все удалось побороть.
Сейчас взялся ставить на него Debian 10. Проблем, описанных по вышеуказанной ссылке я уже не встретил, но, кроме мелочей (не сразу заработал wifi, при загрузке Grub показывает чёрно-белую картинку меню, видеокарта Nvidia не обнаруживается) обнаружил более серьёзную проблему: при выключении, перезагрузке, уходе в спящий режим (suspend), да даже когда система гасит экран для энергосбережения - ноутбук виснет полностью или почти полностью (при гашении экрана, если быстро что-то нажать, на чёрном экране появляется курсор мышки, и некоторое время им ещё можно двигать, но потом и он замирает).
Забегая вперёд: попробовал на этом же ноутбуке кучу LIVE-дистрибутивов: перезагрузка, выключение и спящий режим также зависают в OpenSuse, Fedora, Kubuntu, Mint, Majaro, CentOs, и не зависает только в Debian 8.9 Jessie.
Данные:
Железо:
Acer ES1-711G
CPU: Intel(R) Pentium(R) CPU N3540, 2.16GHz, 4 ядра RAM: 8GB
lspci:
https://gist.github.com/MihanEntalpo/66e506f4e2014943d6086fd34336d993
Из возможно важного: есть видеокарты Intel и NVidia, на старом дебиане работали в режиме Optimus, даже в игры игралось. Здесь попробовал поставить также, но карта NVidia не обнаруживалась, поэтому все дрова, primusrun и bumblebee удалил назад, а также снёс карту nouveau, так как от неё была ругань и я решил, что может быть проблемы связаны с этим.
lsusb:
https://gist.github.com/MihanEntalpo/555cf545be1e372c01fe368fcda0e9fc
Софт:
Система: Debian 10 (buster) Ядро: Linux debian10 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64 GNU/Linux (также, пробовал ядра 4.19.0-4, 4.19.0-6)
KDE Plasma 5.14 (стандартная для дебиана).
Лог загрузки:
Все сообщения dmesg от загрузки и до открытия браузера: https://gist.github.com/MihanEntalpo/0123cbde22cfa57581bfa4a3815ea804
Лог перезагрузки:
При перезагрузке, когда набираю из первой консоли (Ctrl+Alt+F1) команду reboot
, процесс доходит до логического завершения, после чего экран гаснет, но перезагрузка не происходит.
Запись экрана при перезагрузке: https://yadi.sk/i/v6mVEtuY-MDM7w
Последний кадр при перезагрузке перед потемнением экрана: https://yadi.sk/i/7IhMFe5K8ebW9g
Лог выключения:
При выключении, когда из первой консоли выполняю poweroff
, процесс также идёт до логического завершения, но с той разницей что экран даже не гаснет, и выключение не происходит
Запись экрана: https://yadi.sk/i/PLxJmOO_nDXuQA Последний кадр: https://yadi.sk/i/GyOWRVNSi5O-zA
Зависания:
Кроме прочего, иногда (примерно пару раз за день) ноутбук вообще зависает без каких-либо видимых причиню. Просто вот пока я правил этот текст (со второго раза начал постоянно сохранять черновик), ноутбук завис 2 раза. При этом зависании всё просто встаёт колом и не двигается, экран остаётся графический, переключиться на текстовую консоль невозможно, Alt+SysRq+REISUB не работает.
Дополнительные сведения:
-
Данный дистрибутив я поставил на одном ноутбуке, после чего снял образ fsarchiver’ом и залил его на несколько ноутбуков и стационарных компов, нигде проблем не обнаружено, софт полностью идентичный
-
Debian Jessie на этом ноутбуке последний использовался довольно давно, около года назад, примерно в этот момент был куплен новый ноутбук, данные перенесены, а этот был убран в ящик стола. В результате сейчас даже кнопки на клаве пришлось «разрабатывать» чтобы они печатали (первое время нажимались не с первого раза), так что потенциально можно предположить что с ноутом что-то могло случиться за это время (хотя его и не трогали совсем)
-
Данный ноутбук даже на Debian Jessie был немного больной, к примеру, он также мог зависнуть иногда, но в основном это происходило когда на ноутбуке включена карта Nvidia через bumblebee, и я выдёргивал из него шнур питания. При этом зависал он не насмерть, к нему можно было подключиться по SSH и нормально его перезагрузить/выключить, то есть отрубалась только графическая подсистема (вероятно из-за какого-то кривого управления питанием при отключении зарядки)
Сейчас bunblebee и вообще Nvidia я не использую.
- Изначально на этот ноут шла Windows 8, которая ужасно тормозила, а последние драйвера на Nvidia на неё вообще нельзя было поставить, в процессе установки она зависала или падала в синий экран смерти, что наводит на мысли об аппаратном дефекте, однако, этот ноут за деньги носили в официальный сервис-центр и диагностировали всё железно, после чего сообщили что он полностью рабочий и проблем нет (а мы знаем насколько такие заявления не выгодны сервис центру).
Что делал:
-
Отключил «quite» в параметрах ядра, благодаря чему ядро стало подробнее писать в логах, и стало видно что всё более-менее нормально проходит (к сожалению, лучше бы сразу было видно где падает)
-
Пробовал Alt+SysRq + R-E-I-S-U-B после зависания системы при перезагрузке или выключении, не помогает.
-
Если набрать Alt+SysRq + R-E-I-S-U-B когда система нормально работает - она ПЕРЕЗАГРУЖАЕТСЯ как следует, что говорит о том, что в принципе система способна нормально перезагрузиться, но видимо в процессе «штатной» перезагрузки она делает что-то такое что не даёт ей дойти собственно до перезагрузки.
-
Поставил всевозможные обновления, все недостающие прошивки.
-
Пробовал Kubuntu 19.10 с Live-флешки. Ядро там 5.3.* (точно не вспомню, уже вышел оттуда), но симптомы точно такие же. При закрывании крышки ноутбука он засыпает и не просыпается, при выключении, перезагрузке комп зависает на чёрном экране или на экране с логом действий завершения работы в которых не видно какого-то криминала.
-
Пробовал Fedora 31 c Live-флешки. Ядро 5.3.7-301.fc31.x86_64, результат ровно тот же самый
-
Пробовал Manjaro-xfce 18.1.5 с Live-флешки, результат тот-же
-
Пробовал openSuse Leap 15.1, загрузившись с установочной флешки в Recsue mode, точно также, при команде poweroff логи доходят до сообщения «Reached target shutdown» после чего ничего не происходит, комп не отключается
-
Пробовал загрузиться с флешки Debian Jessie 8.9 amd64, с ядром версии 3.16.0-4-amd64 SMP Debian 3.16.7-ckt25-2, на ней ПЕРЕЗАГРУЗКА РАБОТАЕТ, ОТКЛЮЧЕНИЕ ПИТАНИЯ ТОЖЕ. Уход в спящий режим - зависает. Может быть это связано с контроллером USB, так как в прошлый раз мне приходилось отключать один из стандартных драйверов.
-
Попробовал CentOS-7 с флешки, ядро древнее, 3.10.0-957.12.2.el7.x86_64. Перезагрузка зависла, отключение зависло, спящий режим завис.
-
Перечитал кучу форумов с такими же проблемами (конкретно такой ноутбук не встречался, но вообще проблема частая), однако там всегда ситуация такая «всё было хорошо, обновился - и всё, трындец»), кроме того, советуют поменять ядро, что на дебиане сделать не так просто как хотелось бы.
-
Пробовал добавлять в параметры ядра acpi=force (не помогло)
-
Пробовал добавлять в параметры ядра nomodeset - X-сервер отказался запускаться.
-
Пробовал гонять нагрузочное тестирование stress-ng, запускал игры с графикой которую тянет встроенная intel-овская видеокарта, добивался того, чтобы комп начал греться и жужжать вентиляторами, но это не привело к его зависанию, продолжал работать как ни в чём не бывало.
Что ещё не сделал
-
Сейчас хочу дождаться пока ноут зависнет в ходе работы и попробовать подключиться к нему по SSH чтобы выяснить, может быть опять же виснет только графическая система, в этом случае я мог бы написать скрипт который будет сам детектировать такое состояние и что-нибудь с ним делать автоматически.
-
Долго читал о том как работает в linux управление питанием и suspend, про всякие файлы /proc/acpi/* в которые можно писать разные значения, но пока не понял что именно и куда мне надо писать чтобы вручную проверить как будет работать усыпление (на одном из форумов прочитал что один из режимов sleep’а может зависать а другой будет работать, что-то про s2idle, deep)
-
Не пробовал пересобирать ядро. Раз старое ядро (от Debian Jessie) нормально перезапускало систему, значит новое просто содержит в себе какие-то не те опции и модули. В принципе, можно попробовать поэкспериментировать с настройками сборки, касающимися ACPI, но я в этом ничего не понимаю поэтому буду делать методом тыка, что продлится очень долго.
-
Знаю что можно как-то настроить удалённую отладку, чтобы syslog писал логи не на свой ПК, а отправлял по сети удалённо, что могло бы мне помочь в отладке этих зависаний и невозможноси отключиться, но пока я не знаю как перевести тот же systemd в режим супер-подробного логирования выключения/перезагрузки/суспенда, то и настраивать удалённую отладку не пробовал.
-
Нашёл статью про отладку ACPI (https://01.org/blogs/rzhang/2015/best-practice-debug-linux-suspend/hibernate-issues) буду пробовать её.
Буду рад:
-
Если у кого-то были похожие проблемы и вы поделитесь со мной способами их решения
-
Если дадите ссылки на статьи, где подробно изложено управление ACPI в Linux и то, как решать проблемы с ними
-
Если подскажите как можно отлаживать внезапные зависания системы.