diff -Nuar mkinitcpio-v41.orig/hooks/meson.build mkinitcpio-v41/hooks/meson.build
--- mkinitcpio-v41.orig/hooks/meson.build	2026-04-30 00:02:10.000000000 +0300
+++ mkinitcpio-v41/hooks/meson.build	2026-05-14 22:53:55.935962384 +0300
@@ -10,6 +10,7 @@
     'sleep',
     'udev',
     'usr',
+    'plymouth',
 ]
 
 foreach hook: hooks
diff -Nuar mkinitcpio-v41.orig/hooks/plymouth mkinitcpio-v41/hooks/plymouth
--- mkinitcpio-v41.orig/hooks/plymouth	1970-01-01 02:00:00.000000000 +0200
+++ mkinitcpio-v41/hooks/plymouth	2026-05-14 22:32:24.104992307 +0300
@@ -0,0 +1,22 @@
+run_earlyhook(){
+        # first trigger graphics subsystem
+        udevadm trigger --action=add --attr-match=class=0x030000 >/dev/null 2>&1
+        # first trigger graphics and tty subsystem
+        udevadm trigger --action=add --subsystem-match=graphics --subsystem-match=drm --subsystem-match=tty >/dev/null 2>&1
+ 
+        udevadm settle --timeout=30 2>&1
+       
+	/bin/mknod /dev/fb c 29 &>/dev/null
+        /bin/plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session
+}
+ 
+run_hook() {
+        /bin/plymouth --show-splash
+}
+ 
+run_latehook(){
+        /bin/plymouth update-root-fs --new-root-dir=/new_root      
+}
+
+# vim: set ft=sh:
+
diff -Nuar mkinitcpio-v41.orig/init_functions mkinitcpio-v41/init_functions
--- mkinitcpio-v41.orig/init_functions	2026-04-30 00:02:10.000000000 +0300
+++ mkinitcpio-v41/init_functions	2026-05-14 20:47:27.520167347 +0300
@@ -536,6 +536,8 @@
     mount -t sysfs sys /sys -o nosuid,noexec,nodev
     mount -t devtmpfs dev /dev -o mode=0755,nosuid
     mount -t tmpfs run /run -o nosuid,nodev,mode=0755
+    mkdir -m 0755 /dev/pts
+    mount -t devpts -o gid=5,mode=620 devpts /dev/pts
     mkdir -m755 /run/initramfs
 
     if [ -e /sys/firmware/efi ]; then
diff -Nuar mkinitcpio-v41.orig/install/base mkinitcpio-v41/install/base
--- mkinitcpio-v41.orig/install/base	2026-04-30 00:02:10.000000000 +0300
+++ mkinitcpio-v41/install/base	2026-05-14 22:01:27.047961678 +0300
@@ -16,9 +16,9 @@
         add_symlink "/usr/bin/$applet" kmod
     done
 
-    add_binary blkid
+    add_binary /sbin/blkid
     map add_binary mount umount
-    add_binary switch_root
+    add_binary /sbin/switch_root
 
     add_initcpio_binary "init_functions" "/init_functions"
     add_initcpio_binary "init" "/init" 755
diff -Nuar mkinitcpio-v41.orig/install/fsck mkinitcpio-v41/install/fsck
--- mkinitcpio-v41.orig/install/fsck	2026-04-30 00:02:10.000000000 +0300
+++ mkinitcpio-v41/install/fsck	2026-05-14 22:01:55.887960342 +0300
@@ -7,7 +7,7 @@
     add_fsck() {
         case "$1" in
             ext[234])
-                add_binary e2fsck
+                add_binary /sbin/e2fsck
                 add_symlink /usr/bin/fsck.ext2 e2fsck
                 add_symlink /usr/bin/fsck.ext3 e2fsck
                 add_symlink /usr/bin/fsck.ext4 e2fsck
@@ -49,7 +49,7 @@
         return
     fi
 
-    add_binary fsck
+    add_binary /sbin/fsck
 }
 
 help() {
diff -Nuar mkinitcpio-v41.orig/install/meson.build mkinitcpio-v41/install/meson.build
--- mkinitcpio-v41.orig/install/meson.build	2026-04-30 00:02:10.000000000 +0300
+++ mkinitcpio-v41/install/meson.build	2026-05-14 22:54:12.156962008 +0300
@@ -24,6 +24,7 @@
     'strip',
     'udev',
     'usr',
+    'plymouth',
 ]
 
 systemd_hooks = [
diff -Nuar mkinitcpio-v41.orig/install/plymouth mkinitcpio-v41/install/plymouth
--- mkinitcpio-v41.orig/install/plymouth	1970-01-01 02:00:00.000000000 +0200
+++ mkinitcpio-v41/install/plymouth	2026-05-14 22:42:32.523978214 +0300
@@ -0,0 +1,63 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: GPL-2.0-only
+
+
+build() {
+	add_dir /dev/pts
+	add_dir /usr/share/plymouth/themes
+	add_dir /var/run/plymouth
+
+	DATADIR="/usr/share"
+	PLYMOUTH_LOGO_FILE="${DATADIR}/pixmaps/plymouth-pisilinux.png"
+	PLYMOUTH_THEME_NAME="$(/usr/sbin/plymouth-set-default-theme)"
+	PLYMOUTH_MODULE_NAME="$(grep "ModuleName *= *" ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/${PLYMOUTH_THEME_NAME}.plymouth | sed 's/ModuleName *= *//')"
+	PLYMOUTH_PLUGIN_PATH="$(plymouth --get-splash-plugin-path)"
+
+	add_binary /sbin/plymouthd
+	add_binary /bin/plymouth
+
+	add_file ${DATADIR}/plymouth/themes/text/text.plymouth
+	add_binary ${PLYMOUTH_PLUGIN_PATH}/text.so
+	add_file ${DATADIR}/plymouth/themes/details/details.plymouth
+	add_binary ${PLYMOUTH_PLUGIN_PATH}/details.so
+
+	add_file "${PLYMOUTH_LOGO_FILE}"
+	add_file /etc/pisilinux-release
+	add_file /etc/plymouth/plymouthd.conf
+    add_file ${DATADIR}/plymouth/plymouthd.defaults
+
+	if [ ! -f ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so ]; then
+	    echo "The default plymouth plugin (${PLYMOUTH_MODULE_NAME}) doesn't exist" > /dev/stderr
+	    exit 1
+	fi
+
+	add_binary ${PLYMOUTH_PLUGIN_PATH}/${PLYMOUTH_MODULE_NAME}.so
+
+	add_binary ${PLYMOUTH_PLUGIN_PATH}/renderers/drm.so
+	add_binary ${PLYMOUTH_PLUGIN_PATH}/renderers/frame-buffer.so
+
+	if [ -d ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME} ]; then
+	    for x in ${DATADIR}/plymouth/themes/${PLYMOUTH_THEME_NAME}/* ; do
+		[ ! -f "$x" ] && break
+		add_file $x
+	    done
+	fi
+	
+
+	# suppress a warning in glib (which the label control uses)
+	# about uid 0 by building a dummy NSS stack (LP #649917)
+	add_file /etc/passwd
+	add_file /etc/nsswitch.conf
+	add_binary "$(readlink -e /lib/libnss_files.so.2)"
+	add_file /lib/libnss_files.so.2
+
+	add_runscript
+}
+
+help() {
+	echo "This hook includes plymouth in the initramfs image."
+}
+
+# vim: set ft=sh:
+#EOF
+
diff -Nuar mkinitcpio-v41.orig/install/udev mkinitcpio-v41/install/udev
--- mkinitcpio-v41.orig/install/udev	2026-04-30 00:02:10.000000000 +0300
+++ mkinitcpio-v41/install/udev	2026-05-14 22:02:22.933959089 +0300
@@ -1,18 +1,12 @@
 #!/bin/bash
 
 build() {
-    map add_binary \
-        '@UDEVD_PATH@' \
-        '/usr/bin/udevadm' \
-        '/usr/lib/udev/ata_id' \
-        '/usr/lib/udev/scsi_id' \
-        '/usr/lib/libkmod.so.2'
+    add_binary /bin/udevadm
+    add_binary /sbin/udevd
+    add_file /lib/udev/ata_id
+    add_file /lib/udev/scsi_id
+    add_file /lib/libkmod.so.2
 
-    # meson-templated path
-    # shellcheck disable=SC2157
-    if [[ -n '@TMPFILES_PATH@' ]]; then
-        add_binary '@TMPFILES_PATH@'
-    fi
 
     map add_udev_rule \
         '50-udev-default.rules' \
@@ -20,11 +14,6 @@
         '64-btrfs.rules' \
         '80-drivers.rules'
 
-    # add hwdb binaries to the initramfs
-    map add_file \
-        /usr/lib/udev/hwdb.bin \
-        /etc/udev/hwdb.bin
-
     add_runscript
 }
 
diff -Nuar mkinitcpio-v41.orig/meson.build mkinitcpio-v41/meson.build
--- mkinitcpio-v41.orig/meson.build	2026-04-30 00:02:10.000000000 +0300
+++ mkinitcpio-v41/meson.build	2026-05-14 22:53:03.882963590 +0300
@@ -146,6 +146,7 @@
     'hooks/sleep',
     'hooks/udev',
     'hooks/usr',
+    'hooks/plymouth',
     'init',
     'init_functions',
     'install/acpi_override',
@@ -175,6 +176,7 @@
     'install/strip',
     'install/systemd',
     'install/udev',
+    'install/plymouth',
     'install/usr',
     'lsinitcpio',
     'mkinitcpio',
