Система полностью зависает с Intel Bay Trail

29

Моя система зависает совершенно случайно, с частыми интервалами. У меня возникла та же проблема в Ubuntu 14.04, но после недавнего обновления до 16.04 улучшения не произошло, на самом деле все кажется хуже.

Когда это происходит, невозможно что-либо сделать. Я перепробовал все в этой теме: что делать, когда Ubuntu зависает, но ничего не работает, мне нужно сделать hard reset. Я прочитал все системные журналы, journalctlно нет никакой информации, которая могла бы помочь диагностировать проблему.

Это система с двойной загрузкой с Windows 10, и в ней нет проблем, так что это не неисправное оборудование.

Мой ноутбук оснащен процессором Intel Bay Trail (Pentium N3540)

Джек Дикс
источник

Ответы:

37

Ваш процессор подвержен ошибке c-state

Это приводит к полному зависанию, когда процессор пытается перейти в неподдерживаемое состояние сна. Это проблема для многих устройств Bay Trail, особенно с более новыми (4. *) ядрами.

Пострадавшие процессоры AFAIK:

Atom Z3735F (Asus X205TA, Acer Aspire Switch 10, Lenovo MIIX 3 1030) 
Atom Z3735G
Celeron J1900 (Asus ET2325IUK, shuttle XS35V4)
Celeron N2940 (Acer Aspire ES1-711, Chromebook)
Celeron N2840 (Acer Aspire ES1-311)
Celeron N2930 (Jetway JBC311U93, Zotac Nano CI320)
Pentium N3520 
Pentium N3530 (Acer V3-111P)
Pentium N3540 (Dell Inspiron 15 3000, Lenovo G50, ASUS X550MJ)

(пожалуйста (предложите) отредактируйте, чтобы добавить свое собственное устройство, если оно затронуто)

Полный список процессоров Bay Trail можно найти здесь

Для этого есть простой обходной путь до тех пор, пока он не будет должным образом исправлен.

Вам просто нужно передать параметр загрузки ядра, и случайное зависание полностью прекратится. Этот параметр может немного увеличить потребление батареи, но даст вам работоспособную систему.

Вы делаете это, редактируя файл конфигурации для GRUB:

Загрузите Ubuntu и откройте терминал, нажав Ctrl+ Alt+, Tзатем введите

sudo nano /etc/default/grub

Найдите строку, которая начинается GRUB_CMDLINE_LINUX_DEFAULT=

Это должно быть изменено, чтобы включить intel_idle.max_cstate=1

Так что после вашего редактирования он читает что-то вроде

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1"

quietи splashявляются параметрами по умолчанию для Ubuntu Desktop - нет необходимости изменять их или любые другие ранее существующие параметры

Теперь сохраните файл нажатием ctrl+ oзатем enterи выйдите, нажав ctrl+x

Теперь беги

sudo update-grub

Затем перезагрузите компьютер.


Что делать, если у вас недостаточно времени для этого до зависания системы

Нет проблем. Как объяснялось на странице справки, на которую я ссылался ранее, вы можете добавить параметр в GRUB перед загрузкой. Обратите внимание, что этот параметр передает только параметр для текущей загрузки, поэтому вам все равно придется редактировать его /etc/default/grubпосле загрузки, чтобы сделать изменение постоянным.

Вам нужно попасть в меню GRUB . Если у вас двойная загрузка, это все равно появится, если нет необходимости нажимать и удерживать (или касаться) shiftпосле нажатия кнопки питания для включения.

Когда вы попадете на этот экран, выберите « Дополнительные параметры» для Ubuntu . Вы можете переместить курсор в другое ядро ​​или оставить его на месте, чтобы редактировать параметры по умолчанию. Вместо нажатия enter, нажмите, eи вы перейдете в режим редактирования, выглядящий примерно так .

Переместите курсор вниз, где он говорит quiet splash, поставьте пробел после всплеска и осторожно напечатайте, intel_idle.max_cstate=1чтобы после него тоже был пробел.

Теперь нажмите F10или Ctrl+ xдля загрузки.

Занна
источник
@ Arronical хе-хе, спасибо! Я должен знать это - моя система останется без работы в течение ~ 15 минут без нее, но с параметром, он никогда не замерзнет однажды :) Вся заслуга действительно удивительных хакеров, которые выяснили это
Zanna
Спасибо! Останавливает ли это отсутствие ответа на Ctrl Alt REISUB? Также ответ на вышеупомянутое редактирование GRUB состоял в том, что если задано скрытое время ожидания, то вышеописанное редактирование не будет работать. Как обойти это, если проблема сохраняется?
clr
@clr зависания c-состояния не реагируют на магический sysrq REISUB, но это исправление останавливает зависания c-состояния. Если ваша система зависает по какой-либо другой причине, REISUB может работать. GRUB_HIDDEN_TIMEOUT не влияет на параметры загрузки, и вы должны иметь возможность получить доступ к меню, нажав клавишу Shift при запуске. Если вы не можете, в случае, если система зависает слишком быстро, чтобы вы могли редактировать /etc/default/grub, это очень сложно, но вы можете попробовать загрузить сеанс с версией более старого ядра, чтобы отредактировать файл - подключите корневой раздел /mntи отредактируйте /mnt/etc/default/grubв добавить параметр.
Занна
Спасибо за четкие инструкции. Я надеюсь, что это делает трюк. Я сообщу здесь, если это не так. В настоящее время я работаю 16.10 на Zotac Nano CI320. Ранее я пробовал 16.04 и Debian 8, а также испытывал случайные зависания. Я попытался 16.10, надеясь, что проблема просто исчезнет с более новым ядром. Интересно, что один раз, когда я попробовал REISUB (я не помню, какая ОС), он работал - так что может оказаться, что я столкнулся с другой проблемой.
Джереми Кук
@JeremyCook Я только что установил 16.10, и первым делом я отредактировал параметры загрузки - я действительно должен проверить это новое ядро! Пожалуйста, дайте мне знать, если это работает или нет здесь.
Занна
1

Процессоры Linux on Bay Trail и Braswell случайным образом зависают со встроенными видеоустройствами.

Проблема с контролем температуры. Просто удалите модуль Thermald:

sudo apt-get remove thermald 
Genia Li
источник
3
Я считаю, что ошибка для Bay Trail заключается в драйвере i915 (Intel CPU). Процессор постоянно пытается перейти в спящие состояния, которые не поддерживаются им. Проблемы для пользователей Bay Trail начались после фиксации i915, так что в этом всегда обвиняли. Однако, может быть, у некоторых есть другая причина, и я понятия не имею о замораживании в Брасвелле, и было бы здорово знать, что они исправлены каким-то (безопасным?) Действием. У вас есть какие-либо ссылки на эту информацию, или вы можете сказать нам, на каком оборудовании это было проверено и работало?
Занна
Похоже, это все еще проблема с 19.04. Я надеялся, что это будет исправлено. Произошло на моем ноутбуке с 14.04. 15.10 было почти невозможно исправить.
crip659
0

Для людей, следящих за этой ошибкой, вот обновление. Перейдите по адресу : Ошибка 109051 - intel_idle.max_cstate = 1 требуется на Baytrail для предотвращения сбоев и нажмите Endклавишу. При необходимости нажмите Page Upна сообщение # 1013.

Согласно комментарию № 1013, это исправлено в последних ядрах:

Я давно не проверял эту ветку, но подумал, что должен опубликовать свои выводы на тот случай, если они кому-нибудь пригодятся.

Низкоуровневый компьютер с процессором Intel N2807, который никогда не работал более 30 минут без сбоев, когда я не установил ... max_cstates = 1, теперь прекрасно работает со стандартным ядром версии 5.3.1 или 4.19.75. Я запускал его в течение нескольких дней с каждой версией без каких-либо проблем. Среднее энергопотребление также снизилось чуть более чем на 10%.

Исправление этой ошибки заняло около четырех лет, о чем впервые было сообщено 8 декабря 2015 года.

WinEunuuchs2Unix
источник