Примерно 2-3 недели назад мой рабочий стол Ubuntu 13.04 часто зависает после того, как я некоторое время использую Chrome. Мышь двигается, но ничего не реагирует на мышь или клавиатуру. Мне приходится нажимать кнопку питания, чтобы выключить машину и перезапустить ее. Иногда симптомы не в полной заморозке, но все файлы становятся доступными только для чтения, из-за чего ничего не работает. Все вкладки Chrome показывают сообщение об ошибке. Каждый раз, когда я использую новую версию Google Maps в Chrome, Ubuntu очень быстро зависает.
Хотя я на самом деле никогда не ожидал, что браузерная программа может заморозить всю систему, теперь я считаю, что виновником является Chrome. Если я не использую Chrome, скажем, вместо этого использую Firefox, то система работает нормально. Сначала я думал, что на моем жестком диске есть какие-то ошибки. Я попытался исправить это и использовал утилиту диска для проведения расширенного интеллектуального теста, и не нашел никаких ошибок.
Я также искал в Интернете и нашел людей, которые задавали похожие вопросы, но не получали хороших решений. Некоторые предполагают, что это связано с драйвером видеокарты. Но я всегда без проблем использовал Chrome на Ubuntu до 2 или 3 недель назад.
Некоторая информация о моей системе:
Убунту 13.04 версия ядра: 3.8.0-30-generic процессор: Intel core i7 2600K (используйте встроенную видеокарту)
Обновление: echo 0 | sudo dd of=/sys/module/i915/parameters/semaphores
поначалу использование способа, предложенного goldilocks, казалось, решило проблему.
На следующий день проблемы возникают снова:
(1) Первая проблема заключается в том, что я не могу загрузить Ubuntu, потому что корневой раздел /dev/mapper/ubuntu (раздел LVM) не может быть найден. Я пробовал несколько раз перезапускать, иногда мне удаётся попасть в Ubuntu, но ничего не работает, даже vi текстового файла показывает ошибку ввода/вывода в команде. В конце концов, я использую режим восстановления, чтобы проверить диск и восстановить пакеты. Затем я могу загрузить Ubuntu как обычно.
(2) Однако Chrome снова замораживает Ubuntu. Первоначальные симптомы, описанные в начале поста, возвращаются. Команда, echo 0 | sudo dd of=/sys/module/i915/parameters/semaphores
похоже, только продлевает время, когда Chrome работает нормально. Однако в конечном итоге, через полчаса или час, система зависнет или все снова станет только для чтения. Если я использую Google Maps, то через несколько минут система зависнет. Тогда мне приходится выключать машину методом грубой силы. После перезагрузки в Ubuntu содержимое файла /sys/module/i915/parameters/semaphores снова меняется на "-1" вместо "0", как я написал ранее. Использование grep i915_hangcheck_hung /var/log/*
не нашло соответствующих ошибок для времени сбоя. Я также подозреваю, что проблема связана с плагином Flash в Chrome, поэтому я переключил плагин Flash с Adobe на встроенный в Chrome. Но проблема осталась.
Так что я не уверен, что это на 100% из-за Chrome. Пока что я буду использовать Firefox и посмотрю, стабильна ли система.
решение1
Вероятно, вы используете драйвер i915 для интегрированного видео, и я уверен, что это как-то связано с этой ошибкой:
https://bugzilla.kernel.org/show_bug.cgi?id=58381
Поскольку "зависание" - это паника ядра. Попробуйте:
grep i915_hangcheck_hung /var/log/*
И посмотрите, что получится. Вы можете попробовать отключить «использовать аппаратное ускорение, если доступно» в Chrome (в разделе «Дополнительные настройки...Система»).
Есть также предложениездесь(ошибка выше, похоже, считается дубликатом этой, но у ошибки выше есть лучший первоначальный отчет, связанный с Chrome) попробуйте это:
echo 0 | sudo dd of=/sys/module/i915/parameters/semaphores
Если вы сделаете это, su root
то все будет немного проще:
echo 0 > /sys/module/i915/parameters/semaphores
Помните, что файлы в папке /sys
не являются реальными файлами на диске.sysfs— это интерфейс ядра. Чтение файла — это запрос на получение актуальной информации от ядра, а запись в файл — это актуальный запрос на установку параметра. Так что это не постоянная конфигурация, которая сохранится при перезагрузках. Вы можете включить команду echo в загрузочный скрипт или добавить параметр командной строки ядра в ваш grub.conf, как указано во второй ссылке на отчет об ошибке:
i915.semaphores=0
Который установит этот параметр при загрузке.