Many problems with the i915 module since 4.1

I use the same computer since version 4.0
No hardware changes.

I reinstalled Qubes with the latest version, 4.1 in May.

Since then, many problems, like :

  • Random freeze of firefox and chrome, on Fedora and Debian.
  • No more screen on the laptop (see photo report here )
  • Battery out of order
  • Impossible to resize “Files 3.38.x” on Debian and “Files 41.5” on Fedora. No problem for the different programs (libreoffice, audacity, digikam, calibre…) nor for thunar in dom0
  • non-exhaustive list…

Many of these problems are listed here and the culprit would be i915. But why, for me, only on 4.1, when QubesOS was running like clockwork with 4.0 ?

Questions:

  • I’m looking for what parameter to add in /etc/modprobe.d/i915.conf that could, already, improve the display problem?

I have tried :
options i915 enable_rpc=1 (without success)
then :
options i915 enable_fbc=1 (it worked once and since this morning again white screen on the laptop) (I just realized that the parameter is back to its initial value -1 ? )

I’m looking in vain for a doc of the i915 module with the different options and their uses. Not a fan of testing them all one by one.

Here is some material if you have ideas to help me:

[sad@dom0 ~]$ lsmod
Module                  Size  Used by
binfmt_misc            28672  1
loop                   40960  16
vfat                   24576  1
fat                    86016  1 vfat
snd_hda_codec_hdmi     77824  1
snd_hda_codec_realtek   163840  1
snd_hda_codec_generic   102400  1 snd_hda_codec_realtek
ledtrig_audio          16384  1 snd_hda_codec_generic
ee1004                 20480  0
iTCO_wdt               16384  0
snd_hda_intel          57344  4
intel_rapl_msr         20480  0
intel_pmc_bxt          16384  1 iTCO_wdt
iTCO_vendor_support    16384  1 iTCO_wdt
mei_hdcp               24576  0
snd_intel_dspcfg       28672  1 snd_hda_intel
snd_intel_sdw_acpi     20480  1 snd_intel_dspcfg
intel_rapl_common      32768  1 intel_rapl_msr
snd_hda_codec         176128  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_core          110592  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
iwlwifi               397312  0
snd_hwdep              16384  1 snd_hda_codec
intel_powerclamp       20480  0
snd_seq                94208  0
snd_seq_device         16384  1 snd_seq
snd_pcm               143360  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
cfg80211             1064960  1 iwlwifi
i2c_i801               36864  0
r8169                 106496  0
snd_timer              49152  2 snd_seq,snd_pcm
i2c_smbus              20480  1 i2c_i801
joydev                 28672  0
pcspkr                 16384  0
rfkill                 32768  2 cfg80211
snd                   118784  18 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm
soundcore              16384  1 snd
mei_me                 45056  1
mei                   155648  3 mei_hdcp,mei_me
intel_pch_thermal      20480  0
wmi                    36864  0
fuse                  180224  1
xenfs                  16384  1
ip_tables              36864  0
dm_thin_pool           94208  130
dm_persistent_data    110592  1 dm_thin_pool
dm_bio_prison          24576  1 dm_thin_pool
dm_crypt               61440  1
trusted                40960  1 dm_crypt
asn1_encoder           16384  1 trusted
crct10dif_pclmul       16384  1
i915                 3256320  5
crc32_pclmul           16384  0
rtsx_pci_sdmmc         32768  0
crc32c_intel           24576  4
mmc_core              204800  1 rtsx_pci_sdmmc
i2c_algo_bit           16384  1 i915
ttm                    86016  1 i915
ghash_clmulni_intel    16384  0
xhci_pci               20480  0
xhci_pci_renesas       20480  1 xhci_pci
drm_kms_helper        323584  1 i915
rtsx_pci              114688  1 rtsx_pci_sdmmc
nvme                   53248  3
serio_raw              20480  0
nvme_core             143360  4 nvme
cec                    61440  2 drm_kms_helper,i915
xhci_hcd              344064  1 xhci_pci
drm                   655360  6 drm_kms_helper,i915,ttm
video                  57344  1 i915
xen_acpi_processor     20480  0
xen_privcmd            28672  289 xenfs
xen_pciback            90112  1
xen_blkback            53248  64
xen_gntalloc           20480  7
xen_gntdev             45056  38
xen_evtchn             16384  52
uinput                 20480  0
[sad@dom0 ~]$ modinfo i915 | grep '^parm:'
parm:           modeset:Use kernel modesetting [KMS] (0=disable, 1=on, -1=force vga console preference [default]) (int)
parm:           enable_dc:Enable power-saving display C-states. (-1=auto [default]; 0=disable; 1=up to DC5; 2=up to DC6; 3=up to DC5 with DC3CO; 4=up to DC6 with DC3CO) (int)
parm:           enable_fbc:Enable frame buffer compression for power savings (default: -1 (use per-chip default)) (int)
parm:           lvds_channel_mode:Specify LVDS channel mode (0=probe BIOS [default], 1=single-channel, 2=dual-channel) (int)
parm:           panel_use_ssc:Use Spread Spectrum Clock with panels [LVDS/eDP] (default: auto from VBT) (int)
parm:           vbt_sdvo_panel_type:Override/Ignore selection of SDVO panel mode in the VBT (-2=ignore, -1=auto [default], index in VBT BIOS table) (int)
parm:           reset:Attempt GPU resets (0=disabled, 1=full gpu reset, 2=engine reset [default]) (uint)
parm:           vbt_firmware:Load VBT from specified file under /lib/firmware (charp)
parm:           error_capture:Record the GPU state following a hang. This information in /sys/class/drm/card<N>/error is vital for triaging and debugging hangs. (bool)
parm:           enable_hangcheck:Periodically check GPU activity for detecting hangs. WARNING: Disabling this can cause system wide hangs. (default: true) (bool)
parm:           enable_psr:Enable PSR (0=disabled, 1=enabled) Default: -1 (use per-chip default) (int)
parm:           psr_safest_params:Replace PSR VBT parameters by the safest and not optimal ones. This is helpful to detect if PSR issues are related to bad values set in  VBT. (0=use VBT parameters, 1=use safest parameters) (bool)
parm:           enable_psr2_sel_fetch:Enable PSR2 selective fetch (0=disabled, 1=enabled) Default: 0 (bool)
parm:           force_probe:Force probe the driver for specified devices. See CONFIG_DRM_I915_FORCE_PROBE for details. (charp)
parm:           disable_power_well:Disable display power wells when possible (-1=auto [default], 0=power wells always on, 1=power wells disabled when possible) (int)
parm:           enable_ips:Enable IPS (default: true) (int)
parm:           fastboot:Try to skip unnecessary mode sets at boot time (0=disabled, 1=enabled) Default: -1 (use per-chip default) (int)
parm:           load_detect_test:Force-enable the VGA load detect code for testing (default:false). For developers only. (bool)
parm:           force_reset_modeset_test:Force a modeset during gpu reset for testing (default:false). For developers only. (bool)
parm:           invert_brightness:Invert backlight brightness (-1 force normal, 0 machine defaults, 1 force inversion), please report PCI device ID, subsystem vendor and subsystem device ID to dri-devel@lists.freedesktop.org, if your machine needs it. It will then be included in an upcoming module version. (int)
parm:           disable_display:Disable display (default: false) (bool)
parm:           mmio_debug:Enable the MMIO debug code for the first N failures (default: off). This may negatively affect performance. (int)
parm:           verbose_state_checks:Enable verbose logs (ie. WARN_ON()) in case of unexpected hw state conditions. (bool)
parm:           nuclear_pageflip:Force enable atomic functionality on platforms that don't have full support yet. (bool)
parm:           edp_vswing:Ignore/Override vswing pre-emph table selection from VBT (0=use value from vbt [default], 1=low power swing(200mV),2=default swing(400mV)) (int)
parm:           enable_guc:Enable GuC load for GuC submission and/or HuC load. Required functionality can be selected using bitmask values. (-1=auto [default], 0=disable, 1=GuC submission, 2=HuC load) (int)
parm:           guc_log_level:GuC firmware logging level. Requires GuC to be loaded. (-1=auto [default], 0=disable, 1..4=enable with verbosity min..max) (int)
parm:           guc_firmware_path:GuC firmware path to use instead of the default one (charp)
parm:           huc_firmware_path:HuC firmware path to use instead of the default one (charp)
parm:           dmc_firmware_path:DMC firmware path to use instead of the default one (charp)
parm:           enable_dp_mst:Enable multi-stream transport (MST) for new DisplayPort sinks. (default: true) (bool)
parm:           enable_dpcd_backlight:Enable support for DPCD backlight control(-1=use per-VBT LFP backlight type setting [default], 0=disabled, 1=enable, 2=force VESA interface, 3=force Intel interface) (int)
parm:           enable_gvt:Enable support for Intel GVT-g graphics virtualization host support(default:false) (bool)
parm:           request_timeout_ms:Default request/fence/batch buffer expiration timeout. (uint)
parm:           mitigations:Selectively enable security mitigations for all Intel® GPUs in the system.
[sad@dom0 ~]$ 
[sad@dom0 ~]$ cat /etc/default/grub
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="gfxterm"
GRUB_CMDLINE_LINUX="rd.luks.uuid=luks-5a86135e-9aea-469c-b64a-5bdb2f700dc5 rd.lvm.lv=qubes_dom0/root rd.lvm.lv=qubes_dom0/swap plymouth.ignore-serial-consoles rd.driver.pre=btrfs rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
GRUB_THEME="/boot/grub2/themes/qubes/theme.txt"
GRUB_CMDLINE_XEN_DEFAULT="console=none dom0_mem=min:1024M dom0_mem=max:4096M ucode=scan smt=off gnttab_max_frames=2048 gnttab_max_maptrack_frames=4096"
GRUB_DISABLE_OS_PROBER="true"
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX rd.qubes.hide_all_usb"
[sad@dom0 ~]$ efibootmgr -v
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0001,0003,0000
Boot0000* Windows Boot Manager	VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...h................
Boot0001* Qubes OS	HD(1,GPT,86fe43db-ab54-4c65-9216-4502b9ce70cf,0x800,0x12c000)/File(\EFI\qubes\grubx64.efi)
Boot0003* Qubes	VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
[sad@dom0 ~]$ 

DId you try to add more RAM to the qubes?

yes, but it’s not a RAM problem.
the problem has appeared since 4.1 and it is known for i915 modules

https://wiki.archlinux.org/title/Intel_graphics#Corruption_or_unresponsiveness_in_Chromium_and_Firefox

1 Like

So, it’s not Qubes’ specific?

Did you try to search this forum, for example:
https://forum.qubes-os.org/search?q=modprobe%20i915

Did you try:

I guess not :wink:

Hello,
Well in the end it’s a hardware problem! :roll_eyes:

When I folded my screen, the image reappeared. :face_with_raised_eyebrow:
From now on, I have to press regularly on the back of the screen so that I can have a nice picture. So Qubes Os 4.1 is at the top :heart_eyes:

A thousand apologies for the inconvenience.

1 Like