LinuxForum.Fans
Тема

[HOWTO] Plymouth на Slackware

Автор: yars 2 сообщений 2537 просмотров
03.11.2023 15:37 #439115

Всем ДВС, слакварщики! Однажды, долгим зимним вечером, поставил я 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 этого модуля ранний запуск не заработает, потому что у модуля есть зависимости. Поэтому смотрим, кто от кого зависит и добавляем всех причастных (Ну, почти всех, кроме тех, кто, в моем случае, за дискретное видео отвечает):

Показать
[console=root]# lsmod
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
text
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
text
--- 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
text
--- 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] и оно при загрузке выводит нечто вроде

text
early console in decompress_kernel
Decompressing Linux... Parsing ELF... done.
Booting the kernel.

Ну и LILO добавляет свои 5 копеек :)

P.S. Написанное справедливо для Slackware-15.0, для -current и будущих релизов может и не работать.

07.11.2023 12:59 #439125

yars,
гладко было на бумаге:

text

Q=""
if [ $Q = "" ]
  then echo Empty
fi

Это так не работает... Когда в Q пусто, получится:

text

if [ = "" ]

и [ обматерит за синтаксис ;)
Потому или

text

if [ "$Q" = "" ]

или как диды завещали (в кавычках или без):

text

if [ x$Q = x ]
Войдите или зарегистрируйтесь, чтобы ответить.