Intel IOMMU driver (DMAR) GFX hiba javítása

kimarite képe

Vélhetően javítva lesz az Intel processzoroknál és bizonyos kernel verzióknál jelentkező hiba, de a javításig is érdemes lépni.

Hiba (dmesg kimenet):

[drm:intel_set_cpu_fifo_underrun_reporting [i915]] *ERROR* uncleared fifo underrun on pipe A
[drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun
[drm:intel_set_pch_fifo_underrun_reporting [i915]] *ERROR* uncleared pch fifo underrun on pch transcoder A
[drm:cpt_irq_handler [i915]] *ERROR* PCH transcoder A FIFO underrun
[Console: switching to colour frame buffer device 170x48
i915 0000:00:02.0: fb0: i915drmfb frame buffer device

GRUB beállítás szerkesztése

A javításra használt kernel paraméter (nem parancssor):

intel_iommu=igfx_off

A kernel paraméterek beállításáról itt olvashatsz:
https://linuxmint.hu/blog/2018/03/kernel-kapcsolok-alkalmazasa-a-grub-fajl-szerkesztesevel

Ezeknél a kernel verzióknál jelentkezik a bug (a GRUB frissítéssel mutatom):

sudo update-grub
GRUB beállítófájl előállítása…
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Megtalált linux lemezkép: /boot/vmlinuz-5.6.0-0.bpo.2-amd64
Megtalált initrd lemezkép: /boot/initrd.img-5.6.0-0.bpo.2-amd64
Megtalált linux lemezkép: /boot/vmlinuz-5.4.0-0.bpo.4-amd64
Megtalált initrd lemezkép: /boot/initrd.img-5.4.0-0.bpo.4-amd64
Megtalált linux lemezkép: /boot/vmlinuz-4.19.0-9-amd64
Megtalált initrd lemezkép: /boot/initrd.img-4.19.0-9-amd64
kész

A javítás után (a hibák nem mutatkoznak):

sudo dmesg | grep drm
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] Driver supports precise vblank timestamp query.
[drm] Initialized i915 1.6.0 20200114 for 0000:00:02.0 on minor 0
fbcon: i915drmfb (fb0) is primary device
i915 0000:00:02.0: fb0: i915drmfb frame buffer device

... a fenti parancssor az általános vizsgálatra is kiválóan alkalmas.

Ha Intel CPU van a számítógépedben, teszteld!

A CPU hómérséklet alapértékek nem mentek lejjebb:

sensors
acpitz-acpi-0
Adapter: ACPI interface
temp1:        +60.0°C  (crit = +128.0°C)
temp2:         +0.0°C  (crit = +128.0°C)
temp3:        +47.0°C  (crit = +128.0°C)
temp4:        +44.0°C  (crit = +128.0°C)
temp5:        +20.0°C  (crit = +128.0°C)
temp6:       +127.0°C  (crit = +128.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +61.0°C  (high = +87.0°C, crit = +105.0°C)
Core 0:        +60.0°C  (high = +87.0°C, crit = +105.0°C)
Core 1:        +55.0°C  (high = +87.0°C, crit = +105.0°C)

... azonban remélhető, hogy nem fut fel 100 °C fölé, mint korábban.

A teszt rendszer: Debian 10 Buster

Enjoy :-)

Intel IOMMU és hasonló kernel paraméterek:

        intel_iommu=    [DMAR] Intel IOMMU driver (DMAR) option
                on
                        Enable intel iommu driver.
                off
                        Disable intel iommu driver.
                igfx_off [Default Off]
                        By default, gfx is mapped as normal device. If a gfx
                        device has a dedicated DMAR unit, the DMAR unit is
                        bypassed by not enabling DMAR with this option. In
                        this case, gfx device will use physical address for
                        DMA.
                forcedac [x86_64]
                        With this option iommu will not optimize to look
                        for io virtual address below 32-bit forcing dual
                        address cycle on pci bus for cards supporting greater
                        than 32-bit addressing. The default is to look
                        for translation below 32-bit and if not available
                        then look in the higher range.
                strict [Default Off]
                        With this option on every unmap_single operation will
                        result in a hardware IOTLB flush operation as opposed
                        to batching them for performance.
                sp_off [Default Off]
                        By default, super page will be supported if Intel IOMMU
                        has the capability. With this option, super page will
                        not be supported.
                ecs_off [Default Off]
                        By default, extended context tables will be supported if
                        the hardware advertises that it has support both for the
                        extended tables themselves, and also PASID support. With
                        this option set, extended tables will not be used even
                        on hardware which claims to support them.
                tboot_noforce [Default Off]
                        Do not force the Intel IOMMU enabled under tboot.
                        By default, tboot will force Intel IOMMU on, which
                        could harm performance of some high-throughput
                        devices like 40GBit network cards, even if identity
                        mapping is enabled.
                        Note that using this option lowers the security
                        provided by tboot because it makes the system
                        vulnerable to DMA attacks.

        intel_idle.max_cstate=  [KNL,HW,ACPI,X86]
                        0       disables intel_idle and fall back on acpi_idle.
                        1 to 9  specify maximum depth of C-state.

        intel_pstate=  [X86]
                       disable
                         Do not enable intel_pstate as the default
                         scaling driver for the supported processors
                       passive
                         Use intel_pstate as a scaling driver, but configure it
                         to work with generic cpufreq governors (instead of
                         enabling its internal governor).  This mode cannot be
                         used along with the hardware-managed P-states (HWP)
                         feature.
                       force
                         Enable intel_pstate on systems that prohibit it by default
                         in favor of acpi-cpufreq. Forcing the intel_pstate driver
                         instead of acpi-cpufreq may disable platform features, such
                         as thermal controls and power capping, that rely on ACPI
                         P-States information being indicated to OSPM and therefore
                         should be used with caution. This option does not work with
                         processors that aren't supported by the intel_pstate driver
                         or on platforms that use pcc-cpufreq instead of acpi-cpufreq.
                       no_hwp
                         Do not enable hardware P state control (HWP)
                         if available.
                hwp_only
                        Only load intel_pstate on systems which support
                        hardware P state control (HWP) if available.
                support_acpi_ppc
                        Enforce ACPI _PPC performance limits. If the Fixed ACPI
                        Description Table, specifies preferred power management
                        profile as "Enterprise Server" or "Performance Server",
                        then this feature is turned on by default.
                per_cpu_perf_limits
                        Allow per-logical-CPU P-State performance control limits using
                        cpufreq sysfs interface

A 4.14-es kernelben alapértelmezett az intel_iommu=igfx_off beálítás, az általam használt kernelekben azonban nem.

Forrás: https://www.kernel.org/doc/html/v4.14/admin-guide/kernel-parameters.html

-----

Keresés az ERROR kifejezésre az összes rendszer naplóban (terminálban):

sudo grep -insr "ERROR" /var/log

Ugyanezzel a módszerrel rákereshetsz a WARNING, a failed, a drm vagy más kifejezésre.

A grep kézikönyve (a paraméterek magyarázataival -> -insr):

man grep