The i915 driver will try to load the GuC firmware, at least for Iris Xe chips. Loading the GuC firmware fails because it is non-free and deblobbed. As a result, some software, like sway, will not work.
It is possible to manually pass the i915.enable_guc=0 kernel parameter at boot from grub. Then everything works as intended. However, it seems not possible to set this parameter from config.scm. So at the moment my system is not fully declarative, as I have to type in a kernel parameter at boot; does anyone perhaps have advice on how can this be done better? Details below. Thanks, Hugo guix version: guix 27c2ebd repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: 27c2ebd7cebba22b7acd341d7ce402f6beb02733 ### Attempt 1, out-of-the box configuration ### dmesg output: [ 10.028684] i915 0000:00:02.0: [drm] *ERROR* GT0: GuC firmware /*(DEBLOBBED)*/: fetch failed -ENOENT [ 10.028692] i915 0000:00:02.0: [drm] GT0: GuC firmware(s) can be downloaded from /*(DEBLOBBED)*/ [ 10.029541] i915 0000:00:02.0: [drm] GT0: GuC firmware /*(DEBLOBBED)*/ version 0.0.0 [ 10.029613] i915 0000:00:02.0: [drm] *ERROR* GT0: GuC initialization failed -ENOENT [ 10.029615] i915 0000:00:02.0: [drm] *ERROR* GT0: Enabling uc failed (-5) [ 10.029617] i915 0000:00:02.0: [drm] *ERROR* GT0: Failed to initialize GPU, declaring it wedged! [ 10.029973] i915 0000:00:02.0: [drm:add_taint_for_CI [i915]] CI tainted:0x9 by intel_gt_set_wedged_on_init+0x38/0x50 [i915] sway-greeter.log: error: Kernel is too old (4.16+ required) or unusable for Iris. Check your dmesg logs for loading failures. libEGL warning: egl: failed to create dri2 screen 00:00:00.185 [ERROR] [wlr] [EGL] command: eglInitialize, error: EGL_NOT_INITIALIZED (0x3001), message: "DRI2: failed to create screen" ### Attempt 2: manually disabling guc ### dmesg when passing i915.enable_guc=0 at boot (roughly instead of the errors from attempt 1): [ 9.233275] Setting dangerous option enable_guc - tainting kernel sway works ### Attempt 3: through config.scm ### attempt to set the kernel parameter in config.scm: (modify-services %base-services (sysctl-service-type config => (sysctl-configuration (settings (append '(("i915.enable_guc" . "0")) %default-sysctl-settings))))) dmesg output (in addition to the errors from attempt 1): [ 7.759922] sysctl: cannot stat /proc/sys/i915/enable_guc: No such file or directory sway does not work