diff --git a/artwork/splash.stage-1.png b/artwork/splash.stage-1.png new file mode 100644 index 00000000..04a45b66 Binary files /dev/null and b/artwork/splash.stage-1.png differ diff --git a/artwork/splash.png b/artwork/splash.stage-2.png similarity index 100% rename from artwork/splash.png rename to artwork/splash.stage-2.png diff --git a/modules/initrd-splash.nix b/modules/initrd-splash.nix index f21108a8..ed2ba832 100644 --- a/modules/initrd-splash.nix +++ b/modules/initrd-splash.nix @@ -5,6 +5,7 @@ with import ./initrd-order.nix; let cfg = config.mobile.boot.stage-1.splash; + image = name: ../artwork + "/${name}.png"; mkSplash = at: name: { init = lib.mkOrder at '' @@ -12,7 +13,7 @@ let ''; contents = [ { - object = (builtins.path { path = ../artwork + "/${name}.png"; }); + object = (builtins.path { path = image name; }); symlink = "/${name}.png"; } ]; @@ -49,7 +50,14 @@ in } (mkSplash AFTER_FRAMEBUFFER_INIT "loading") - (mkSplash (READY_INIT - 1) "splash") + (mkSplash (READY_INIT - 1) "splash.stage-1") (mkIf cfg.rgb-debug (mkSplash (READY_INIT) "rgb-debug")) ]); + + # This happens in stage-2. This is why we're not using `mkSplash`. + # This is the earliest in stage-2 we can show, for vt-less devices, that + # stage-2 is really happening. + config.boot.postBootCommands = '' + ${pkgs.ply-image}/bin/ply-image --clear=0x000000 ${image "splash.stage-2"} > /dev/null 2>&1 + ''; }