1
0

extract log persistence config from s6 to new module

because it frobs kernel config, it breaks levitate
as levitate evalModules doesn't include the kernel
This commit is contained in:
Daniel Barlow 2025-01-02 23:56:49 +00:00
parent ea5370b3f4
commit 74027b44d7
3 changed files with 21 additions and 9 deletions

View File

@ -33,6 +33,7 @@ let
./modules/busybox.nix ./modules/busybox.nix
./modules/hostname.nix ./modules/hostname.nix
./modules/kernel ./modules/kernel
./modules/logging.nix
./modules/klogd.nix ./modules/klogd.nix
device.module device.module
liminix-config liminix-config

19
modules/logging.nix Normal file
View File

@ -0,0 +1,19 @@
{ config, lib, ... }:
let
inherit (lib) mkIf mkEnableOption mkOption types;
in {
options = {
logging = {
persistent = {
enable = mkEnableOption "store logs across reboots";
};
};
};
config = {
kernel.config = mkIf config.logging.persistent.enable {
PSTORE = "y";
PSTORE_PMSG = "y";
PSTORE_RAM = "y";
};
};
}

View File

@ -17,7 +17,7 @@ let
logger = logger =
let pipecmds = let pipecmds =
["${s6}/bin/s6-log -bpd3 -- ${cfg.script} 1"] ++ ["${s6}/bin/s6-log -bpd3 -- ${cfg.script} 1"] ++
(lib.optional cfg.persistent.enable (lib.optional (cfg ? persistent && cfg.persistent.enable)
"/bin/tee /dev/pmsg0") ++ "/bin/tee /dev/pmsg0") ++
(lib.optional cfg.shipping.enable (lib.optional cfg.shipping.enable
"${pkgs.logshipper}/bin/logtap ${cfg.shipping.socket} logshipper-socket-event"); "${pkgs.logshipper}/bin/logtap ${cfg.shipping.socket} logshipper-socket-event");
@ -215,9 +215,6 @@ let
in { in {
options = { options = {
logging = { logging = {
persistent = {
enable = mkEnableOption "store logs across reboots";
};
shipping = { shipping = {
enable = mkEnableOption "unix socket for log shipping"; enable = mkEnableOption "unix socket for log shipping";
socket = mkOption { socket = mkOption {
@ -269,11 +266,6 @@ in {
)]; )];
config = { config = {
kernel.config = mkIf config.logging.persistent.enable {
PSTORE = "y";
PSTORE_PMSG = "y";
PSTORE_RAM = "y";
};
filesystem = dir { filesystem = dir {
etc = dir { etc = dir {
s6-rc = dir { s6-rc = dir {