Subject: bug#43078: linux-libre-arm64-generic lacks CONFIG_CGROUP_FREEZER=y

From: Vagrant Cascadian <[email-masked]>
Date: Thu, 27 Aug 2020 16:25:38 -0700

On 2020-08-28, Vitaliy Shatrov wrote:
>    1. had linux-libre-arm64-generic as my kernel.
>    2. added only (elogind-service-type) to my Guix System's config.
>    3. ran `guix system reconfigure`.
>    4. get some errors: "///sys/something/freezer cannot be something".
>    5. rebooted, and were unable to log-in (get no prompt).
>
> The issue was solved by using the same linux-libre-arm64-generic, but
> customized: i set a 'CONFIG_CGROUP_FREEZER=y' in kconfig.
>
> As this is only one config related to logind that not enabled, i want us
> to have it enabled by default on linux-libre-arm64-generic, or as Vagrant
> wrote on IRC, "added to gnu/packages/linux.scm: %default-extra-linux-options".

Given that this is present in all the "linux-libre" packages
(e.g. without arm-generic or arm64-generic ...), I think it makes sense
to add this to %default-extra-linux-options.

*Untested* patch attached.

I did at one point try to enable this on arm-generic and it required
additional features I couldn't track down... and at some point this was
enabled on arm64-generic (I tested on "pinebook" with arm64-generic a
while back).

live well,
  vagrant

From d91a90a667262b6e0ab82542a28c48b70eee37fc Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <[email-masked]>
Date: Thu, 27 Aug 2020 14:47:43 -0700
Subject: [PATCH] gnu: %default-extra-linux-options: Enable
 CONFIG_CGROUP_FREEZER.

Fixes: https://issues.guix.gnu.org/43078

* gnu/packages/linux (%default-extra-linux-options): Enable
  CONFIG_CGROUP_FREEZER.
---
 gnu/packages/linux.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 26ce379568..1f6236163f 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -641,6 +641,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
     ("CONFIG_USER_NS" . #t)
     ("CONFIG_PID_NS" . #t)
     ("CONFIG_NET_NS" . #t)
+    ;; cgroup freezer needed for elogind: https://issues.guix.gnu.org/43078
+    ("CONFIG_CGROUP_FREEZER" . #t)
     ;; Modules required for initrd:
     ("CONFIG_NET_9P" . m)
     ("CONFIG_NET_9P_VIRTIO" . m)
-- 
2.20.1