Ошибки PCIe Bus Error: severity=Corrected при выключении в Linux

Июль, 27th 2020Рубрика: *NIX 12680
Подписаться на комментарии по RSS

ошибки PCIe Bus Error: severity=Corrected

После обновления Linux, при следующем выключении компьютера на экран повалилась куча одинаковых сообщений об ошибке: "pcieport 0000:00:1c.3: PCIe Bus Error: severity=Corrected, type=Physical Layer". Причём длится это безобразие довольно долго, так что рука тянется принудительно выключить компьютер с кнопки, что я пару раз и проделал, пока не нашёл решения проблемы.

Как я уже сказал выше, выключение или перезагрузка компьютера стала адовой процедурой — лог повторяющихся ошибок бежал по экрану в течении (!) двух минут. Оказалось, что данная проблема постигла практически всех владельцев интеловских процессоров и, по всей видимости, связана с попытками понизить питание на порту PCIe. На тематических Linux-форумах предлагается добавить следующие два параметра при загрузке ядра:

pci = nomsi — отключает использование прерываний MSI;
pci = noaer — отключает расширенный отчёт об ошибках ядра.

Однако, возвращаться к использованию устаревших методов доставки прерываний мне совсем не хотелось — костыли, так себе. Решил пойти другим путём и просто отключить технологию ASPM (Active-State Power Management).

ASPM позволяет управлять энергопотреблением шин PCI Express (PCIe) посредством их перевода в энергосберегающий режим, если устройство не используются. В то же время, активация ASPM приводит к задержке ответа от устройств, так как требуется некоторое время на переключение режимов работы шины.

Поведением ASPM можно управлять, добавив параметр pcie_aspm в загрузчик или внеся изменения в файле /sys/module/pcie_aspm/parameters/policy (pcie_aspm=off отключает ASPM, а pcie_aspm=force принудительно задействует, даже на поддерживающих технологию устройствах). Я подправил загрузчик GRUB:

# открываем файл настроек grub в текстовом редакторе
sudo editor /etc/default/grub
# добавляем параметр pcie_aspm=off
GRUB_CMDLINE_LINUX_DEFAULT="quiet pcie_aspm=off"
# сохраняем и обновляем загрузчик
sudo update-grub

В моём случае, ошибку выдавал встроенный Wi-Fi адаптер, который в принципе не отличался стабильностью в работе и постоянно отваливался. Отдельно отключить энергосбережение для WiFi поможет продвинутая консольная утилита для управления питанием TLP (/etc/default/tlp):

WIFI_PWR_ON_AC=off
WIFI_PWR_ON_BAT=off
Подписывайтесь на канал Яндекс.Дзен и узнавайте первыми о новых материалах, опубликованных на сайте.

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

ваш комментарий будет опубликован после проверки
на указанный адрес будет отправлено письмо с кодом активации. Вы можете настроить собственный профиль и стать активным участником или автором.