Deprecated hooks in mkinitcpio.conf

I am running Manjaro from a December 2021 installation. During the last January 13 stable update through pacman, I got a message. This is what it looks like from pacman.log:

[2024-01-15T23:34:17-0500] [ALPM] upgraded plymouth (22.02.122-15 → 22.02.122-16.2)
[2024-01-15T23:34:17-0500] [ALPM-SCRIPTLET] WARNING: The ‘plymouth-encrypt’ and ‘sd-plymouth’ hooks are depreciated. You should replace them with ‘encrypt’ and ‘plymouth’ hooks in your ‘mkinitcpio.conf’. The ‘lxdm-plymouth.service’, ‘lightdm-plymouth.service’ and ‘sddm-plymouth.service’ systemd service files are no longer recommended. You should enable ‘lxdm.service’, ‘lightdm.service’ or ‘sddm.service’ instead.

Anything I should change? Here is my mkinitcpio.conf file:

# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run.  Advanced users may wish to specify all system modules
# in this array.  For instance:
#     MODULES=(usbhid xhci_hcd)
MODULES=()

# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image.  This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()

# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way.  This is useful for config files.
FILES=(/crypto_keyfile.bin)

# HOOKS
# This is the most important setting in this file.  The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
##   This setup specifies all modules in the MODULES setting above.
##   No RAID, lvm2, or encrypted root is needed.
#    HOOKS=(base)
#
##   This setup will autodetect all modules for your system and should
##   work as a sane default
#    HOOKS=(base udev autodetect modconf block filesystems fsck)
#
##   This setup will generate a 'full' image which supports most systems.
##   No autodetection is done.
#    HOOKS=(base udev modconf block filesystems fsck)
#
##   This setup assembles a mdadm array with an encrypted root file system.
##   Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices.
#    HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck)
#
##   This setup loads an lvm2 volume group.
#    HOOKS=(base udev modconf block lvm2 filesystems fsck)
#
##   NOTE: If you have /usr on a separate partition, you MUST include the
#    usr and fsck hooks.
HOOKS=(base udev autodetect modconf block keyboard keymap consolefont plymouth encrypt filesystems fsck)

# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
#COMPRESSION="zstd"

# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()

# MODULES_DECOMPRESS
# Decompress kernel modules during initramfs creation.
# Enable to speedup boot process, disable to save RAM
# during early userspace. Switch (yes/no).
#MODULES_DECOMPRESS="yes"

As a result, I have left off updating mkinitcpio to mkinitcpio-37.2-1.6 for now until I can get some clarification.

Sorry if I’m being too inquisitive, I’ve had some rough experiences before and I can’t afford to have an unbootable work computer. Thanks to everyone who responds :slightly_smiling_face:

It’s just saying what to do if you have those hooks. You don’t so all is fine.

Okay, that’s good with hooks, thanks for clarifying.

But I have lxdm-plymouth.service, lightdm-plymouth.service, and sddm-plymouth.service, and I don’t have lxdm.service, lightdm.service, or sddm.service.

What now? Can I still update mkinitcpio package?

Surely you havent enabled all of them and/or you dont have all of lxdm, lightdm and sddm display managers…

(I took a look and those services are provided by the plymouth package itself … appearing as now deprecated helpers to those display managers)

If your current profile information is correct then you are using gdm … so I would not expect any of those to be present.

I dont use plymouth … but everything on its wiki page seems to indicate you need only set the hooks and boot options.

https://wiki.archlinux.org/title/Plymouth

Once you have the correct things in /etc/mkinitcpio.conf and /etc/default/grub then

sudo mkinitcpio -P
sudo update-grub

Too bad that the plymouth-encrypt hook was removed, this already provided a smooth transition in the boot process. If encrypted Root Partion is used.

I am using an encrypted laptop on unstable with the hooks

HOOKS=(systemd plymouth modconf keyboard block filesystems btrfs sd-vconsole sd-encrypt fsck)

which gives me a plymouth screen for entering passphrase

Setup described in [root tip] [Utility Script] Encrypted Manjaro Linux using Verifed Boot

plymouth version 24.004.60-5

1 Like

Okay, very nice so it’s avaible on a newer Version due I use stable.
Or maybe not, boot path is on my system:
UEFI → LUKS2 → GRUB → Plymouth → Loginscreen
So my boot partion is encrypted as well.