Nixpkgs: add option for silent boot

Created on 11 Dec 2017  路  13Comments  路  Source: NixOS/nixpkgs

Issue description

I don't want to see the boot messages on my desktop systems. The Login manager should appear directly after the Grub menu (when there are no critical errors).

I tried several things like:

  # less verbose boot log
  boot.consoleLogLevel = 3;
  boot.kernelParams = [ "quiet" "udev.log_priority=3" ];

and

  boot.loader.grub.extraConfig = "GRUB_CMDLINE_LINUX_DEFAULT=\"quiet loglevel=3 vga=current\"";

It has no effect.

Source: https://wiki.archlinux.org/index.php/silent_boot

Steps to reproduce

Have NixOS system with Grub 2.

virtualbox_nixos_11_12_2017_06_02_11

Technical details

  • system: "x86_64-linux"
  • host os: Linux 4.9.66, NixOS, 17.09.2281.b4a0c011e81 (Hummingbird)
  • multi-user?: yes
  • sandbox: yes
  • version: nix-env (Nix) 1.11.15
  • nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs
nixos

Most helpful comment

Theses messages come from /nixos/modules/system/boot/stage-1-init.sh and /nixos/modules/system/boot/stage-2-init.sh. So it'll show up even with:

  boot.kernelParams = [ "quiet" ];
  boot.consoleLogLevel = 0;

We probably need to patch those scripts to not use echo but a logging function where the verbosity can be controlled.

All 13 comments

Ubuntu uses Plymouth.

It can get enabled in NixOS but looks broken (that is another issue).

  boot.plymouth.enable = true;

Should we enable it by default for any displayManager?

It's also the case that the default Plymouth theme is incredibly ugly (I'm reluctant to make it the default while it is so). I've been meaning to submit a PR to make the default a nicer one, I should get around to that.

A NixOS theme would be nice.

There are also others that can get packaged.

Tux:
https://www.gnome-look.org/p/1189328/
https://www.gnome-look.org/p/1000026/

this would be nice for apple devices: https://www.gnome-look.org/p/1009320/

Windows boot screens are funny:
https://www.gnome-look.org/p/1202357/
https://www.gnome-look.org/p/1202116/

I packaged a nice one from KDE-land that works with NixOS branding, just need to make it available by default.

That still doesn't do anything about the stage 1 messages, though.

It seems that only messages from systemd are hidden if quiet and loglevel=4 are present in the kernel parameters with quiet mentioned before loglevel=4 as mentioned here. However, I'm not sure whether the NixOS configuration option boot.consoleLogLevel ensures that quiet is present before loglevel=4 is appended.
Moreover, as @michaelpj mentioned, I'm also not sure how I can hide the non-critical NixOS Stage 1 and NixOS Stage 2 messages.

The description of the boot.consoleLogLevel option should also be changed from ... a priority numerically less than ... to ... a priority numerically greater than ....

Theses messages come from /nixos/modules/system/boot/stage-1-init.sh and /nixos/modules/system/boot/stage-2-init.sh. So it'll show up even with:

  boot.kernelParams = [ "quiet" ];
  boot.consoleLogLevel = 0;

We probably need to patch those scripts to not use echo but a logging function where the verbosity can be controlled.

Thank you for your contributions.

This has been automatically marked as stale because it has had no activity for 180 days.

If this is still important to you, we ask that you leave a comment below. Your comment can be as simple as "still important to me". This lets people see that at least one person still cares about this. Someone will have to do this at most twice a year if there is no other activity.

Here are suggestions that might help resolve this more quickly:

  1. Search for maintainers and people that previously touched the related code and @ mention them in a comment.
  2. Ask on the NixOS Discourse.
  3. Ask on the #nixos channel on irc.freenode.net.

We probably need to patch those scripts to not use echo but a logging function where the verbosity can be controlled.

That's what I did locally but I really shoudl clean that up and upstream it.

I tried to set up quiet boot but still got the stage1 logging, thankfully I quickly encountered this post :+1:

I found the patch to the initrd sh script in your nixpkgs fork @peterhoeg, thanks a lot. I'll be stealing that for the moment.

Should be enough to get lazy fbcon init to work, which would allow keeping the grub splash image until getty or the DM start.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

samueldr picture samueldr  路  88Comments

Infinisil picture Infinisil  路  146Comments

timokau picture timokau  路  66Comments

peti picture peti  路  75Comments

nico202 picture nico202  路  70Comments