.pacnew: mkinitcpio and plymouthd

From last update, I have two .pacnew-files that I cant solve by my-own, even after checking the tutorial:

1. /etc/mkinitcpio.conf.pacnew
The .conf-file has

#    HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole sd-encrypt block filesystems fsck)
HOOKS=(systemd autodetect microcode modconf kms keyboard block filesystems fsck)

The .pacnew-file shows:

#    HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole block sd-encrypt filesystems fsck)
HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck)

2. /etc/plymouth/plymouthd.conf.pacnew
The .conf-file

# Distribution defaults. Changes to this file will get overwritten during upgrades.
[Daemon]
Theme=manjaro
ShowDelay=0
DeviceTimeout=8

The .pacnew-file:

# Administrator customizations go in this file
#[Daemon]
#Theme=manjaro

What do you recommend?

I have uninstalled the Plymouth abomination and removed the hook for it. Besides showing 3 dots the only other function is to make asking for password on encrypted systems nicer. In that case you should check how to savely remove it. Otherwise there will be no complications if you remove the hook and uninstall the package.

If you decide to keep it i cannot help with config.

P.s. the new hooks on question 2 are fine, the old are fine too, you do not need base with systemd (it is kinda broken anyway).

1 Like

Thank you @Teo,

Is this your proposal for

  1. /etc/plymouth/plymouthd.conf.pacnew:
sudo pacman -R plymouth-theme-manjaro
sudo pacman -R plymouth-kcm
sudo pacman -R plymouth
sudo rm /etc/plymouth/plymouthd.conf.pacnew
sudo rm /etc/plymouth/plymouthd.conf

And what about

  1. /etc/mkinitcpio.conf.pacnew

That is what i would do (and did). Most effective if you also remove quiet splash from the boot line in /etc/default/grub (after that a sudo update-grub is needed) so that you can see the log. Not that one can read anything at that speed, but you can see if it stops somewhere or if something is yellow or red.
Do it after you uninstall Plymouth before rebooting (it do not think if you have splash without Plymouth it will not boot, but who knows, never tested this combo since it is pretty unlogical to require splash after you uninstall the splash :wink:)

For mkinitcpio - you can leave your version and delete the pacnew. Base does not really matter in this context (i removed it).

P.s. as a rule of a thumb, one does not need to sudo rm files from /etc, that are parts of the package. On uninstall, the system will make a .pacsave backup file, in case you decide to reinstall in the future.
Again, it doesn’t matter in that case, but don’t learn bad habits because with some other package it might matter.

2 Likes

Your mkinitcpio.conf.pacnew not only adds ‘base’, but also ‘sd-vconsole’, which is a good thing on a systemd-based setup.

If unsure, consider to read the arch wiki article on mkinitcpio.

Mind that modifications to mkinitcpio.conf bear the risk of a non-booting system, particularly after removing words from the HOOKS= line. It may be wise to keep a Manjaro boot stick at hand, just in case a repair becomes necessary.

2 Likes

Thank you @bearman. @Teo: Your opinion about base and sd-vconsole? (To be honest, I did not work on this yet due to other obligations)

My version in comparison:
.conf-file  : HOOKS=(     systemd autodetect microcode modconf kms keyboard             block filesystems fsck)
.pacnew-file: HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems fsck)

Let’s try this one more time, even though I’ve already explained it about a gazillion times by now. :stuck_out_tongue:

1. OLD :backhand_index_pointing_down:

HOOKS=(base udev resume autodetect microcode modconf kms keyboard keymap consdolefont block filesystems encrypt fsck)

2. NEW :backhand_index_pointing_down:

HOOKS=(systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems sd-encrypt fsck)

3. THE DIFFERENCE :backhand_index_pointing_down:

  • The old base and udev hooks have been replaced by the systemd hook.

  • When using the new systemd hook…
    – the base hook is no longer useful — see the note farther down.
    – the resume hook is no longer needed.
    – the keymap and consolefont hooks have been replaced by the sd-vconsole hook.
    – the encrypt hook has been replaced by the sd-encrypt hook.
    – the syntax in /etc/default/grub for opening a LUKS-encrypted container is now different — see the documentation, or look for one of the 7’498 forum threads on that particular subject.


Note: All the base hook does is provide you with an emergency busybox root shell, with the initramfs as its root filesystem. In other words, your real root filesystem is not mounted yet, and you only have a limited set of shell commands.

However, the systemd hook disables this emergency root shell provided by base for security reasons, so if you do still want to have it available, then you need to add “SYSTEMD_SULOGIN_FORCE=1” as a boot parameter to the kernel in /etc/default/grub, and — of course — include the base hook.

More information can be found at the Arch Wiki link below… :backhand_index_pointing_down:

3 Likes

I have always found the table in 3.3.4. in the above wiki very clear. One just have to pick a column (not even that now that systemd is the new default) and go down…from top to bottom… and omit hooks only if absolutely sure (encryption? Raid? Llvm?).

So yes, sd-vconsole is kinda obligatory.

And since the wiki is constantly updated, an acpi hook came at the end, unfortunately not applicable to everyone. I looked at the mentioed locations but there were no files for my lenovo so i left out the acpi hook fo now.

And last but not least the latest modulejail has a hook but it adds it automatically. The only hook that has the purpose to remove something :slight_smile: Every other hook adds functionality.

2 Likes

Thanks a lot @Aragorn for the detailed explanations. Nevertheless, remaining questions comparing the versions:

.conf-file   : HOOKS=(     systemd autodetect microcode modconf kms keyboard             block filesystems            fsck)
.pacnew-file : HOOKS=(base systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems            fsck)
NEW (Aragorn): HOOKS=(     systemd autodetect microcode modconf kms keyboard sd-vconsole block filesystems sd-encrypt fsck)
  • Why does the .pacnew-file (which should be a proposal for an update) bring back base, although it is
  • My system is not encrypted, but cryptsetup is installed. Should I use sd-encrypt in this case?
  1. It is only a suggestion based upon new upstream defaults, not a recommended replacement.

  2. It brings back base because whoever created that .pacnew doesn’t really understand things either. (Seriously, I’ve seen more goof-ups like this in the past.)

If you don’t use encryption, then you need neither encrypt nor sd-encrypt. Not every hook is required in every situation, and there are certain hooks which are not included in the suggested defaults but which may still be needed for certain use cases.

An example of this would for instance be the btrfs hook, which is only needed — but in that case, required — if the boot device is a btrfs volume composed of multiple distinct volumes, such as a btrfs RAID or volume group.

2 Likes

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.