Всем ДВС, слакварщики! Однажды, долгим зимним вечером, поставил я Arch на посмотреть. Ну, а там -- всякие плюшки и красивости, вроде обсуждаемого здесь Plymouth. И вот, погуглив, не нашел я в Сети материала, который бы рассказал, что да как делать, чтобы получить искомое. Увидел, что на SBo присутствует пакет, поставил и начал разбираться, как его запустить. Скажу сразу, задачу можно решать по-разному: все зависит от желания, возможностей и наличия времени. Ну что ж, начнем.
0. Подготовка.
Для успешной работы Plymouth нужен initrd с ранней активацией KMS или framebuffer. Все знают, что в дистрибутиве есть два ядра -- huge и generic. Первое монстрообразно и предназначено в основном для ремонтных работ. Оно способно загружаться без initrd, включает в себя поддержку максимального количества устройств, драйверы которых есть в ядре, умеет и загружать модули сторонних драйверов. Второе -- намного компактнее, включает в себя только самое необходимое, требует для успешной загрузки initrd и предназначено для обычного использования. Особо заострять внимание на создании initrd для этого ядра я не буду, но основные моменты надо прояснить.
0.1. [console=root]
# /usr/share/mkinitrd/mkinitrd_command_generator.sh -l /boot/vmlinuz-generic >> /etc/lilo.conf # Создаем пункт меню для Lilo
# /usr/share/mkinitrd/mkinitrd_command_generator.sh -c /boot/vmlinuz-generic >> /etc/mkinitrd.conf # Создаем базовый конфигурационный файл для mkinitrd
# mkinitrd -F # Собираем базовый initrd
# lilo # Сохраняем новую конфигурацию загрузчика
[/console]
Подразумевается, что пакет kernel-generic установлен. После проделанного выше можно перезагрузиться с ядром generic, хотя это и необязательно.
0.2 Нужно изменить в [console=inline]/etc/mkinitrd.conf[/console] значение параметра [console=inline]CLEAR_TREE[/console] на [console=inline]0[/console], чтобы при сборке нового initrd каталог [console=inline]/boot/initrd_tree[/console] не очищался: с этим деревом еще предстоит поработать.
0.3 Теперь надо добавить в initrd ранний запуск KMS/framebuffer. Для этого с помощью [console=inline]lspci[/console] смотрим, каким модулем ядра поддерживается видекарта: [console=root] lspci -knns 00:02.0
00:02.0 VGA compatible controller [0300]: Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09)
Subsystem: Lenovo 3rd Gen Core processor Graphics Controller [17aa:3902]
Kernel driver in use: i915
Kernel modules: i915
[/console]
Видим, что в данном случае работа встроенного видеоядра обеспечивается модулем [console=inline]i915[/console]. Но тут вам не Arch, и с добавлением в initrd этого модуля ранний запуск не заработает, потому что у модуля есть зависимости. Поэтому смотрим, кто от кого зависит и добавляем всех причастных (Ну, почти всех, кроме тех, кто, в моем случае, за дискретное видео отвечает): Показать
Module Size Used by
...
i915 4108288 12
i2c_algo_bit 20480 2 i915,nouveau
drm_buddy 20480 1 i915
video 77824 3 ideapad_laptop,i915,nouveau
ttm 110592 3 drm_ttm_helper,i915,nouveau
drm_display_helper 229376 2 i915,nouveau
cec 86016 2 drm_display_helper,i915
intel_gtt 28672 2 intel_agp,i915
...
[/console]
Можно, конечно, положить этих товарищей напрямую в initrd-tree в правильные места, но проще и лучше вписать их в [console=inline]/etc/mkinitrd.conf[/console], в строку [console=inline]MODULE_LIST[/console], через двоеточия. Теперь можно снова собрать initrd, скомандовать [console=inline]lilo[/console], перезагрузиться в только что созданный initrd, передав ядру параметр [console=inline]rescue[/console] и убедиться в существовании [console=inline]/dev/fb0[/console]. Теперь, чтобы не перезагружаться, монтируем корневой раздел -- [console=inline]mount -r /dev/root /mnt[/console] и даем команду [console=inline]exit[/console]. На этом подготовка завершена.
1. Установка и настройка.
1.1 Устанавливаем собственно plymouth: [console=root]sbopkg -i plymouth[/console]
1.2 Теперь c помощью входящего в состав пакета [console=inline]/usr/libexec/plymouth/plymouth-generate-initrd[/console] создаем в [console=inline]/boot[/console] образ [console=inline]initrd-plymouth.img[/console], распаковываем его: [console]# mkdir -pv /boot/initrd-plymouth
# cd /boot/initrd-plymouth
# gzip -cdkS .img ../initrd-plymouth.img | cpio -i .[/console] И теперь нужно раскидать файлы из этого initrd в [console=inline]initrd-tree[/console]. Бинарники -- в [console=inline]initrd_tree/{bin,sbin}[/console], библиотеки -- в [console=inline]initrd_tree/lib{,64}[/console], остальное -- по соответствующим местам. Бибилотеки нужно скопировать только те, которых в [console=inline]initrd-tree[/console] нет. Снова собираем свой initrd командой [console=inline]mkinitrd -F[/console], не забываем скомандовать [console=inline]lilo[/console] и перезагружаемся в новый initrd.
1.3. Теперь начинается самый сок :) Нам нужно пропатчить [console=inline]initrd-tree/init [/console] и rc-скрипты [console=inline]/etc/rd.d/rc.{6,M,S}[/console], и, возможно, пересобрать ядро (тут уж на вкус и цвет :D )
1.3.1. Патчим:
full_initrd.patch
diff -urN initrd-tree/command_line initrd-tree-nodebug/command_line
--- initrd-tree/command_line 2023-11-03 14:55:30.931000000 +0300
+++ initrd-tree-nodebug/command_line 2023-11-03 10:30:55.379000000 +0300
@@ -1 +1 @@
-/sbin/mkinitrd -c -s /boot/initrd-tree -F
+/sbin/mkinitrd -F
File initrd-tree/dev/console is a character special file while file initrd-tree-nodebug/dev/console is a character special file
File initrd-tree/dev/null is a character special file while file initrd-tree-nodebug/dev/null is a character special file
File initrd-tree/dev/ram is a block special file while file initrd-tree-nodebug/dev/ram is a block special file
File initrd-tree/dev/ram0 is a block special file while file initrd-tree-nodebug/dev/ram0 is a block special file
File initrd-tree/dev/ram1 is a block special file while file initrd-tree-nodebug/dev/ram1 is a block special file
File initrd-tree/dev/ram10 is a block special file while file initrd-tree-nodebug/dev/ram10 is a block special file
File initrd-tree/dev/ram11 is a block special file while file initrd-tree-nodebug/dev/ram11 is a block special file
File initrd-tree/dev/ram12 is a block special file while file initrd-tree-nodebug/dev/ram12 is a block special file
File initrd-tree/dev/ram13 is a block special file while file initrd-tree-nodebug/dev/ram13 is a block special file
File initrd-tree/dev/ram14 is a block special file while file initrd-tree-nodebug/dev/ram14 is a block special file
File initrd-tree/dev/ram15 is a block special file while file initrd-tree-nodebug/dev/ram15 is a block special file
File initrd-tree/dev/ram2 is a block special file while file initrd-tree-nodebug/dev/ram2 is a block special file
File initrd-tree/dev/ram3 is a block special file while file initrd-tree-nodebug/dev/ram3 is a block special file
File initrd-tree/dev/ram4 is a block special file while file initrd-tree-nodebug/dev/ram4 is a block special file
File initrd-tree/dev/ram5 is a block special file while file initrd-tree-nodebug/dev/ram5 is a block special file
File initrd-tree/dev/ram6 is a block special file while file initrd-tree-nodebug/dev/ram6 is a block special file
File initrd-tree/dev/ram7 is a block special file while file initrd-tree-nodebug/dev/ram7 is a block special file
File initrd-tree/dev/ram8 is a block special file while file initrd-tree-nodebug/dev/ram8 is a block special file
File initrd-tree/dev/ram9 is a block special file while file initrd-tree-nodebug/dev/ram9 is a block special file
File initrd-tree/dev/random is a character special file while file initrd-tree-nodebug/dev/random is a character special file
File initrd-tree/dev/sda is a block special file while file initrd-tree-nodebug/dev/sda is a block special file
File initrd-tree/dev/sda1 is a block special file while file initrd-tree-nodebug/dev/sda1 is a block special file
File initrd-tree/dev/sda2 is a block special file while file initrd-tree-nodebug/dev/sda2 is a block special file
File initrd-tree/dev/sr0 is a block special file while file initrd-tree-nodebug/dev/sr0 is a block special file
File initrd-tree/dev/systty is a character special file while file initrd-tree-nodebug/dev/systty is a character special file
File initrd-tree/dev/tty1 is a character special file while file initrd-tree-nodebug/dev/tty1 is a character special file
File initrd-tree/dev/tty2 is a character special file while file initrd-tree-nodebug/dev/tty2 is a character special file
File initrd-tree/dev/tty3 is a character special file while file initrd-tree-nodebug/dev/tty3 is a character special file
File initrd-tree/dev/tty4 is a character special file while file initrd-tree-nodebug/dev/tty4 is a character special file
File initrd-tree/dev/urandom is a character special file while file initrd-tree-nodebug/dev/urandom is a character special file
diff -urN initrd-tree/init initrd-tree-nodebug/init
--- initrd-tree/init 2022-01-26 23:33:29.000000000 +0300
+++ initrd-tree-nodebug/init 2023-11-03 10:30:21.274000000 +0300
@@ -94,7 +94,7 @@
if grep devtmpfs /proc/filesystems 1>/dev/null 2>/dev/null ; then
DEVTMPFS=1
mount -n devtmpfs /dev -t devtmpfs -o size=8M
-fi
+fi
# Parse command line
for ARG in $(cat /proc/cmdline); do
@@ -135,6 +135,9 @@
waitforroot=*|rootdelay=*)
WAIT=$(echo $ARG | cut -f2 -d=)
;;
+ quiet)
+ QUIET=1
+ ;;
esac
done
@@ -152,25 +155,42 @@
if [ ! -d /lib/modules/$(uname -r) ]; then
echo "No kernel modules found for Linux $(uname -r)."
elif [ -x ./load_kernel_modules ]; then # use load_kernel_modules script:
- echo "${INITRD}: Loading kernel modules from initrd image:"
+ if [ ${QUIET} = "" ]; then
+ echo "${INITRD}: Loading kernel modules from initrd image:"
+ ARG="-v"
+ else
+ ARG="-q"
+ fi
. ./load_kernel_modules
else # load modules (if any) in order:
if ls /lib/modules/$(uname -r)/*.*o 1> /dev/null 2> /dev/null ; then
- echo "${INITRD}: Loading kernel modules from initrd image:"
+ if [ ${QUIET} = "" ]; then
+ echo "${INITRD}: Loading kernel modules from initrd image:"
+ fi
for module in /lib/modules/$(uname -r)/*.*o ; do
- /sbin/modprobe $module
+ /sbin/modprobe $ARG $module
done
unset module
fi
fi
+# Run plymouthd:
+if [ -x ./start_plymouthd ]; then
+ if [ ${QUIET} = "" ]; then
+ echo "${INITRD}: Starting plymouthd: "
+ fi
+ . ./start_plymouthd
+fi
+
# Sometimes the devices need extra time to be available.
# A root filesystem on USB is a good example of that.
sleep $WAIT
# Load a custom keyboard mapping:
if [ -n "$KEYMAP" ]; then
- echo "${INITRD}: Loading '$KEYMAP' keyboard mapping:"
+ if [ ${QUIET} = "" ]; then
+ echo "${INITRD}: Loading '$KEYMAP' keyboard mapping:"
+ fi
tar xzOf /etc/keymaps.tar.gz ${KEYMAP}.bmap | loadkmap
fi
@@ -304,7 +324,7 @@
umount -l /mountkey
rmdir /mountkey 2>/dev/null
fi
-
+
# Resume state from swap
if [ "$RESUMEDEV" != "" ]; then
# Find resume device if a label or UUID was given:
@@ -323,7 +343,10 @@
/sbin/udevadm settle --timeout=10
echo 0x0100 > /proc/sys/kernel/real-root-dev
mount -o ro${ROOTFLAGS:+,$ROOTFLAGS} -t $ROOTFS $ROOTDEV /mnt
-
+
+ # Tell plymouthd that rootfs is mounted read-only now:
+ plymouth --newroot=/mnt
+
if [ ! -r /mnt/sbin/init ]; then
echo "ERROR: No /sbin/init found on rootdev (or not mounted). Trouble ahead."
echo " You can try to fix it. Type 'exit' when things are done."
@@ -356,5 +379,9 @@
mount -o move /run /mnt/run
[ "$DEVTMPFS" = "1" ] && mount -o move /dev /mnt/dev
-echo "${INITRD}: exiting"
+
+if [ ${QUIET} = "" ]; then
+ echo "${INITRD}: exiting"
+fi
+
exec switch_root /mnt $INIT $RUNLEVEL
Binary files initrd-tree/lib64/librt-2.33.so and initrd-tree-nodebug/lib64/librt-2.33.so differ
Binary files initrd-tree/lib64/librt.so.1 and initrd-tree-nodebug/lib64/librt.so.1 differ
diff -urN initrd-tree/load_kernel_modules initrd-tree-nodebug/load_kernel_modules
--- initrd-tree/load_kernel_modules 2023-11-03 14:55:33.336000000 +0300
+++ initrd-tree-nodebug/load_kernel_modules 2023-11-03 10:27:19.176000000 +0300
@@ -1,20 +1,22 @@
+#!/bin/ash
+
# This is a script used to load the kernel modules.
# To use it, chmod it 755, and then add the insmod
# lines needed to load your modules, like this:
-modprobe -v jbd2
-modprobe -v mbcache
-modprobe -v ext4
-modprobe -v i2c-core
-modprobe -v sysimgblt
-modprobe -v sysfillrect
-modprobe -v syscopyarea
-modprobe -v fb_sys_fops
-modprobe -v agpgart
-modprobe -v drm
-modprobe -v drm_kms_helper
-modprobe -v ttm
-modprobe -v drm_ttm_helper
-modprobe -v qxl
-modprobe -v intel-gtt
-modprobe -v intel-agp
+modprobe $ARG jbd2
+modprobe $ARG mbcache
+modprobe $ARG ext4
+modprobe $ARG i2c-core
+modprobe $ARG sysimgblt
+modprobe $ARG sysfillrect
+modprobe $ARG syscopyarea
+modprobe $ARG fb_sys_fops
+modprobe $ARG agpgart
+modprobe $ARG drm
+modprobe $ARG drm_kms_helper
+modprobe $ARG ttm
+modprobe $ARG drm_ttm_helper
+modprobe $ARG qxl
+modprobe $ARG intel-gtt
+modprobe $ARG intel-agp
diff -urN initrd-tree/start_plymouthd initrd-tree-nodebug/start_plymouthd
--- initrd-tree/start_plymouthd 1970-01-01 03:00:00.000000000 +0300
+++ initrd-tree-nodebug/start_plymouthd 2023-11-02 23:59:53.618000000 +0300
@@ -0,0 +1,11 @@
+#!/bin/ash
+
+# This script runs both plymouth and its daemon
+if [ -x /usr/sbin/plymouthd ]; then
+ plymouthd \
+ --pid-file=/run/plymouthd.pid
+fi
+
+if [ -x /usr/bin/plymouth ]; then
+ /usr/bin/plymouth --show-splash &
+fi
Binary files initrd-tree/usr/bin/plymouth and initrd-tree-nodebug/usr/bin/plymouth differ
Binary files initrd-tree/usr/bin/yes and initrd-tree-nodebug/usr/bin/yes differ
Binary files initrd-tree/usr/lib64/libdrm.so and initrd-tree-nodebug/usr/lib64/libdrm.so differ
Binary files initrd-tree/usr/lib64/libdrm.so.2 and initrd-tree-nodebug/usr/lib64/libdrm.so.2 differ
Binary files initrd-tree/usr/lib64/libdrm.so.2.4.0 and initrd-tree-nodebug/usr/lib64/libdrm.so.2.4.0 differ
Binary files initrd-tree/usr/lib64/libply-splash-core.so and initrd-tree-nodebug/usr/lib64/libply-splash-core.so differ
Binary files initrd-tree/usr/lib64/libply-splash-core.so.4 and initrd-tree-nodebug/usr/lib64/libply-splash-core.so.4 differ
Binary files initrd-tree/usr/lib64/libply-splash-core.so.4.0.0 and initrd-tree-nodebug/usr/lib64/libply-splash-core.so.4.0.0 differ
Binary files initrd-tree/usr/lib64/libply-splash-graphics.so and initrd-tree-nodebug/usr/lib64/libply-splash-graphics.so differ
Binary files initrd-tree/usr/lib64/libply-splash-graphics.so.4 and initrd-tree-nodebug/usr/lib64/libply-splash-graphics.so.4 differ
Binary files initrd-tree/usr/lib64/libply-splash-graphics.so.4.0.0 and initrd-tree-nodebug/usr/lib64/libply-splash-graphics.so.4.0.0 differ
Binary files initrd-tree/usr/lib64/libply.so and initrd-tree-nodebug/usr/lib64/libply.so differ
Binary files initrd-tree/usr/lib64/libply.so.4 and initrd-tree-nodebug/usr/lib64/libply.so.4 differ
Binary files initrd-tree/usr/lib64/libply.so.4.0.0 and initrd-tree-nodebug/usr/lib64/libply.so.4.0.0 differ
Binary files initrd-tree/usr/lib64/libpng16.so and initrd-tree-nodebug/usr/lib64/libpng16.so differ
Binary files initrd-tree/usr/lib64/libpng16.so.16 and initrd-tree-nodebug/usr/lib64/libpng16.so.16 differ
Binary files initrd-tree/usr/lib64/libpng16.so.16.37.0 and initrd-tree-nodebug/usr/lib64/libpng16.so.16.37.0 differ
Binary files initrd-tree/usr/lib64/plymouth/details.so and initrd-tree-nodebug/usr/lib64/plymouth/details.so differ
Binary files initrd-tree/usr/lib64/plymouth/renderers/drm.so and initrd-tree-nodebug/usr/lib64/plymouth/renderers/drm.so differ
Binary files initrd-tree/usr/lib64/plymouth/renderers/frame-buffer.so and initrd-tree-nodebug/usr/lib64/plymouth/renderers/frame-buffer.so differ
Binary files initrd-tree/usr/lib64/plymouth/text.so and initrd-tree-nodebug/usr/lib64/plymouth/text.so differ
Binary files initrd-tree/usr/lib64/plymouth/two-step.so and initrd-tree-nodebug/usr/lib64/plymouth/two-step.so differ
Binary files initrd-tree/usr/sbin/plymouthd and initrd-tree-nodebug/usr/sbin/plymouthd differ
diff -urN initrd-tree/usr/share/plymouth/plymouthd.defaults initrd-tree-nodebug/usr/share/plymouth/plymouthd.defaults
--- initrd-tree/usr/share/plymouth/plymouthd.defaults 1970-01-01 03:00:00.000000000 +0300
+++ initrd-tree-nodebug/usr/share/plymouth/plymouthd.defaults 2023-11-02 00:17:14.000000000 +0300
@@ -0,0 +1,6 @@
+# Distribution defaults. Changes to this file will get overwritten during
+# upgrades.
+[Daemon]
+Theme=spinner
+ShowDelay=5
+DeviceTimeout=5
diff -urN initrd-tree/usr/share/plymouth/themes/details/details.plymouth initrd-tree-nodebug/usr/share/plymouth/themes/details/details.plymouth
--- initrd-tree/usr/share/plymouth/themes/details/details.plymouth 1970-01-01 03:00:00.000000000 +0300
+++ initrd-tree-nodebug/usr/share/plymouth/themes/details/details.plymouth 2023-11-02 00:17:21.000000000 +0300
@@ -0,0 +1,4 @@
+[Plymouth Theme]
+Name=Details
+Description=Verbose fallback theme
+ModuleName=details
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0001.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0001.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0002.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0002.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0003.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0003.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0004.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0004.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0005.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0005.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0006.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0006.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0007.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0007.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0008.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0008.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0009.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0009.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0010.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0010.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0011.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0011.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0012.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0012.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0013.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0013.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0014.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0014.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0015.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0015.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0016.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0016.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0017.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0017.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0018.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0018.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0019.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0019.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0020.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0020.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0021.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0021.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0022.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0022.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0023.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0023.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0024.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0024.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0025.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0025.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0026.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0026.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0027.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0027.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0028.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0028.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0029.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0029.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0030.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0030.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0031.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0031.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0032.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0032.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0033.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0033.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0034.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0034.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0035.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0035.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/animation-0036.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/animation-0036.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/background-tile.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/background-tile.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/box.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/box.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/bullet.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/bullet.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/entry.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/entry.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/lock.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/lock.png differ
diff -urN initrd-tree/usr/share/plymouth/themes/spinner/spinner.plymouth initrd-tree-nodebug/usr/share/plymouth/themes/spinner/spinner.plymouth
--- initrd-tree/usr/share/plymouth/themes/spinner/spinner.plymouth 1970-01-01 03:00:00.000000000 +0300
+++ initrd-tree-nodebug/usr/share/plymouth/themes/spinner/spinner.plymouth 2023-11-02 00:17:21.000000000 +0300
@@ -0,0 +1,13 @@
+[Plymouth Theme]
+Name=Spinner
+Description=A theme designed by jimmac that features a simple spinner.
+ModuleName=two-step
+
+[two-step]
+ImageDir=/usr/share/plymouth/themes/spinner
+HorizontalAlignment=.5
+VerticalAlignment=.75
+Transition=none
+TransitionDuration=0.0
+BackgroundStartColor=0x202020
+BackgroundEndColor=0x202020
Binary files initrd-tree/usr/share/plymouth/themes/spinner/throbber-0001.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/throbber-0001.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/throbber-0002.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/throbber-0002.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/throbber-0003.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/throbber-0003.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/throbber-0004.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/throbber-0004.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/throbber-0005.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/throbber-0005.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/throbber-0006.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/throbber-0006.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/throbber-0007.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/throbber-0007.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/throbber-0008.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/throbber-0008.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/throbber-0009.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/throbber-0009.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/throbber-0010.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/throbber-0010.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/throbber-0011.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/throbber-0011.png differ
Binary files initrd-tree/usr/share/plymouth/themes/spinner/throbber-0012.png and initrd-tree-nodebug/usr/share/plymouth/themes/spinner/throbber-0012.png differ
diff -urN initrd-tree/usr/share/plymouth/themes/text/text.plymouth initrd-tree-nodebug/usr/share/plymouth/themes/text/text.plymouth
--- initrd-tree/usr/share/plymouth/themes/text/text.plymouth 1970-01-01 03:00:00.000000000 +0300
+++ initrd-tree-nodebug/usr/share/plymouth/themes/text/text.plymouth 2023-11-02 00:17:21.000000000 +0300
@@ -0,0 +1,4 @@
+[Plymouth Theme]
+Name=Text
+Description=Text mode theme with a 3 box countdown
+ModuleName=text
rc.M.patch
--- rc.M_orig 2021-11-12 21:52:01.000000000 +0300
+++ rc.M_plymouth 2023-11-03 00:21:54.442000000 +0300
@@ -420,4 +420,7 @@
/etc/rc.d/rc.local
fi
+# End plymouth batch:
+/usr/bin/plymouth --quit
+
# All done.rc.S.patch
--- rc.S_orig 2022-01-28 01:32:52.000000000 +0300
+++ rc.S_plymouth 2023-11-03 00:56:16.490000000 +0300
@@ -251,6 +251,8 @@
if grep -q ' / f2fs ' /proc/mounts ; then
echo "Remounting root device with read-write enabled."
/sbin/mount -w -v -n -o remount /
+ # Tell plymouth to knew that rootfs was remounted read-write:
+ /usr/bin/plymouth --sysinit
elif [ ! $READWRITE = yes ]; then
# Check the root filesystem:
RETVAL=0А вот [console=inline]rc.6.patch[/console] предлагаю создать самостоятельно ;)
1.3.2. Ядро пересобирать, в принципе, необязательно, но я пересобрал, потому что дистрибутивное ядро собрано с [console=inline]CONFIG_X86_VERBOSE_BOOTUP=y, CONFIG_EARLY_PRINTK=y[/console] и оно при загрузке выводит нечто вроде
early console in decompress_kernel
Decompressing Linux... Parsing ELF... done.
Booting the kernel. Ну и LILO добавляет свои 5 копеек :)
P.S. Написанное справедливо для Slackware-15.0, для -current и будущих релизов может и не работать.