Screen flickers during boot after removing splash from grub

I wanted to remove the boot splash screen and Plymouth, so I followed a recent post on removing plymouth if it’s not needed and got to work with it. I already had removed the quiet parameter from /etc/default/grub and the plymouth hook from /etc/mkinitcpio.conf and regenerated both before. But today I removed splash from grub and ran sudo update-grub but didn’t remove plymouth or plymouth-theme-manjaro as I wanted to wait and see if the reboot goes OK.

Afterwards when rebooting, before I even entered my UEFI boot password, my screen would turn off for 2-3 seconds around every 6 seconds until reaching the login screen, although I could still type (first reboot hung at “Slot 0 opened” right after decrypting my LUKS so I forced shutdown). After hooks would run, it would briefly say something about starting Plymouth. So right now I added back splash and its working fine again. Would removing plymouth and plymouth-theme-manjaro solve this? How can I fix this issue?

I also don’t have Nvidia or any proprietary drivers.

Edit: my system information from inxi -Fazy:

System:
  Kernel: 6.6.32-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 14.1.1
    clocksource: tsc avail: acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.6-x86_64
    root=UUID=[my UUID] rw
    cryptdevice=UUID=[my UUID]
    root=/dev/mapper/luks-[my UUID] splash
    apparmor=1 security=apparmor udev.log_priority=3 page_alloc.shuffle=1
  Desktop: GNOME v: 46.2 tk: GTK v: 3.24.42 wm: gnome-shell
    tools: gsd-screensaver-proxy dm: GDM v: 46.0 Distro: Manjaro base: Arch Linux
Machine:
  Type: Laptop System: Dell product: Latitude 5480 v: N/A
    serial: <superuser required> Chassis: type: 10 serial: <superuser required>
  Mobo: Dell model: 0R75NX v: A00 serial: <superuser required> part-nu: 07A7
    uuid: <superuser required> UEFI: Dell v: 1.31.0 date: 07/03/2023
Battery:
  ID-1: BAT0 charge: 56.9 Wh (99.0%) condition: 57.5/68.0 Wh (84.6%) volts: 8.5
    min: 7.6 model: LGC-LGC8.820 DELL DV9NT84 type: Li-ion serial: <filter>
    status: charging
CPU:
  Info: model: Intel Core i5-7300U bits: 64 type: MT MCP arch: Amber/Kaby Lake
    note: check gen: core 7 level: v3 note: check built: 2017 process: Intel 14nm
    family: 6 model-id: 0x8E (142) stepping: 9 microcode: 0xF4
  Topology: cpus: 1x cores: 2 tpc: 2 threads: 4 smt: enabled cache:
    L1: 128 KiB desc: d-2x32 KiB; i-2x32 KiB L2: 512 KiB desc: 2x256 KiB
    L3: 3 MiB desc: 1x3 MiB
  Speed (MHz): avg: 550 high: 1000 min/max: 400/3500 scaling:
    driver: intel_pstate governor: powersave cores: 1: 1000 2: 400 3: 400 4: 400
    bogomips: 21607
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: gather_data_sampling mitigation: Microcode
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT
    vulnerable
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data mitigation: Clear CPU buffers; SMT vulnerable
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed mitigation: IBRS
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: IBRS; IBPB: conditional; STIBP: conditional;
    RSB filling; PBRSB-eIBRS: Not affected; BHI: Not affected
  Type: srbds mitigation: Microcode
  Type: tsx_async_abort mitigation: TSX disabled
Graphics:
  Device-1: Intel HD Graphics 620 vendor: Dell driver: i915 v: kernel
    arch: Gen-9.5 process: Intel 14nm built: 2016-20 ports:
    active: HDMI-A-1,eDP-1 empty: DP-1,HDMI-A-2 bus-ID: 00:02.0
    chip-ID: 8086:5916 class-ID: 0300
  Display: wayland server: X.org v: 1.21.1.13 with: Xwayland v: 24.1.0
    compositor: gnome-shell driver: X: loaded: modesetting alternate: fbdev,vesa
    dri: iris gpu: i915 display-ID: 0
  Monitor-1: HDMI-A-1 model: ASUS VY279 serial: <filter> built: 2022
    res: 1920x1080 dpi: 82 gamma: 1.2 size: 598x336mm (23.54x13.23")
    diag: 686mm (27") ratio: 16:9 modes: max: 1920x1080 min: 720x400
  Monitor-2: eDP-1 model: ChiMei InnoLux 0x14c3 built: 2016 res: 1366x768
    dpi: 112 gamma: 1.2 size: 309x173mm (12.17x6.81") diag: 354mm (13.9")
    ratio: 16:9 modes: 1366x768
  API: EGL Message: EGL data requires eglinfo. Check --recommends.
Audio:
  Device-1: Intel Sunrise Point-LP HD Audio vendor: Dell driver: snd_hda_intel
    v: kernel alternate: snd_soc_skl,snd_soc_avs bus-ID: 00:1f.3
    chip-ID: 8086:9d71 class-ID: 0403
  API: ALSA v: k6.6.32-1-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 1.0.7 status: off with: pipewire-media-session
    status: active tools: pw-cli
  Server-3: PulseAudio v: 17.0 status: active with: 1: pulseaudio-alsa
    type: plugin 2: pulseaudio-jack type: module tools: pacat,pactl
Network:
  Device-1: Intel Ethernet I219-LM vendor: Dell driver: e1000e v: kernel
    port: N/A bus-ID: 00:1f.6 chip-ID: 8086:15d7 class-ID: 0200
  IF: enp0s31f6 state: down mac: <filter>
  Device-2: Intel Wireless 8265 / 8275 driver: iwlwifi v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 bus-ID: 02:00.0 chip-ID: 8086:24fd class-ID: 0280
  IF: wlp2s0 state: up mac: <filter>
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
RAID:
  Hardware-1: Intel 82801 Mobile SATA Controller [RAID mode] driver: ahci
    v: 3.0 port: f060 bus-ID: 00:17.0 chip-ID: 8086:282a rev: N/A class-ID: 0104
Drives:
  Local Storage: total: 238.47 GiB used: 69.28 GiB (29.1%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/sda maj-min: 8:0 vendor: Samsung model: SSD PM871b M.2 2280
    256GB size: 238.47 GiB block-size: physical: 512 B logical: 512 B
    speed: 6.0 Gb/s tech: SSD serial: <filter> fw-rev: 2D0Q scheme: GPT
Partition:
  ID-1: / raw-size: 238.17 GiB size: 233.37 GiB (97.99%)
    used: 69.25 GiB (29.7%) fs: ext4 dev: /dev/dm-0 maj-min: 254:0
    mapped: luks-[my UUID]
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 32.4 MiB (10.8%) fs: vfat dev: /dev/sda1 maj-min: 8:1
Swap:
  Alert: No swap data was found.
Sensors:
  System Temperatures: cpu: 0.0 C pch: 38.0 C mobo: 35.0 C
  Fan Speeds (rpm): cpu: 0
Info:
  Memory: total: 16 GiB available: 15.5 GiB used: 2.06 GiB (13.3%)
  Processes: 228 Power: uptime: 2h 50m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 1 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 6.19 GiB services: gsd-power,
    power-profiles-daemon, upowerd Init: systemd v: 255 default: graphical
    tool: systemctl
  Packages: pm: pacman pkgs: 1460 libs: 446 tools: gnome-software,pamac
    Compilers: N/A Shell: Zsh v: 5.9 running-in: gnome-terminal inxi: 3.3.34

/etc/mkinitcpio.conf:

# 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)
#
##   This will create a systemd based initramfs which loads an encrypted root filesystem.
#    HOOKS=(base systemd autodetect modconf kms keyboard sd-vconsole sd-encrypt block filesystems fsck)
#
##   NOTE: If you have /usr on a separate partition, you MUST include the
#    usr and fsck hooks.
HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block encrypt filesystems fsck)

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

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

# MODULES_DECOMPRESS
# Decompress loadable kernel modules and their firmware during initramfs
# creation. Switch (yes/no).
# Enable to allow further decreasing image size when using high compression
# (e.g. xz -9e or zstd --long --ultra -22) at the expense of increased RAM usage
# at early boot.
# Note that any compressed files will be placed in the uncompressed early CPIO
# to avoid double compression.
#MODULES_DECOMPRESS="no"

/etc/default/grub (after adding back splash):

# GRUB boot loader configuration

GRUB_DEFAULT=saved
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=UUID=[my UUID] root=/dev/mapper/luks-[my UUID] splash apparmor=1 security=apparmor udev.log_priority=3 page_alloc.shuffle=1"
GRUB_CMDLINE_LINUX=""

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable booting from LUKS encrypted devices
GRUB_ENABLE_CRYPTODISK=y

# Set to 'countdown' or 'menu' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=hidden

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command 'videoinfo'
GRUB_GFXMODE=auto

# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper
# modes only.  Entries specified as foreground/background.
GRUB_COLOR_NORMAL="light-gray/black"
GRUB_COLOR_HIGHLIGHT="green/black"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/usr/share/grub/background.png"
GRUB_THEME="/usr/share/grub/themes/manjaro/theme.txt"

# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"

# Uncomment to make GRUB remember the last selection. This requires
# setting 'GRUB_DEFAULT=saved' above.
GRUB_SAVEDEFAULT=true

# Uncomment to disable submenus in boot menu
#GRUB_DISABLE_SUBMENU=y

# Uncomment this option to enable os-prober execution in the grub-mkconfig command
GRUB_DISABLE_OS_PROBER=false

# Uncomment to ensure that the root filesystem is mounted read-only so that
# systemd-fsck can run the check automatically. We use 'fsck' by default, which
# needs 'rw' as boot parameter, to avoid delay in boot-time. 'fsck' needs to be
# removed from 'mkinitcpio.conf' to make 'systemd-fsck' work.
# See also Arch-Wiki: https://wiki.archlinux.org/index.php/Fsck#Boot_time_checking
#GRUB_ROOT_FS_RO=true

you need to:
mkinitcpio -P
and
update-grub
as root (sudo)

after you altered any of these files and expect to see a result

It should not matter whether plymouth is still installed or not - remove it anyway
since that is what you want, no? :sunglasses:

I already ran sudo mkinitcpio -P when I modified /etc/mkinitcpio.conf a few days ago.

I ran sudo update-grub just after modifying /etc/default/grub today. Then I rebooted and that’s when the issue started (until I added back splash to grub).

I don’t get your “issue”.
or - from what I understand, I don’t regard it as an issue
but perhaps I don’t understand it.
… a flicker ?

…that is something I, personally, could really not care less about …

It’s more than a flicker. The screen completely turns off, including the light, for a few seconds, every few seconds. It is very difficult to boot this way, especially considering I have LUKS encryption, as I cannot see what is on my screen and I could not find a reason for why this might be happening.

You probably posted system info already somewhere - but I’m not going to look for it.
post it here - again …

I’m not the one who can and will be of help here.
Someone else may be.

Cheers!

inxi -Fazy:

System:
  Kernel: 6.6.32-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 14.1.1
    clocksource: tsc avail: acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.6-x86_64
    root=UUID=[my UUID] rw
    cryptdevice=UUID=[my UUID]
    root=/dev/mapper/luks-[my UUID] splash
    apparmor=1 security=apparmor udev.log_priority=3 page_alloc.shuffle=1
  Desktop: GNOME v: 46.2 tk: GTK v: 3.24.42 wm: gnome-shell
    tools: gsd-screensaver-proxy dm: GDM v: 46.0 Distro: Manjaro base: Arch Linux
Machine:
  Type: Laptop System: Dell product: Latitude 5480 v: N/A
    serial: <superuser required> Chassis: type: 10 serial: <superuser required>
  Mobo: Dell model: 0R75NX v: A00 serial: <superuser required> part-nu: 07A7
    uuid: <superuser required> UEFI: Dell v: 1.31.0 date: 07/03/2023
Battery:
  ID-1: BAT0 charge: 56.9 Wh (99.0%) condition: 57.5/68.0 Wh (84.6%) volts: 8.5
    min: 7.6 model: LGC-LGC8.820 DELL DV9NT84 type: Li-ion serial: <filter>
    status: charging
CPU:
  Info: model: Intel Core i5-7300U bits: 64 type: MT MCP arch: Amber/Kaby Lake
    note: check gen: core 7 level: v3 note: check built: 2017 process: Intel 14nm
    family: 6 model-id: 0x8E (142) stepping: 9 microcode: 0xF4
  Topology: cpus: 1x cores: 2 tpc: 2 threads: 4 smt: enabled cache:
    L1: 128 KiB desc: d-2x32 KiB; i-2x32 KiB L2: 512 KiB desc: 2x256 KiB
    L3: 3 MiB desc: 1x3 MiB
  Speed (MHz): avg: 550 high: 1000 min/max: 400/3500 scaling:
    driver: intel_pstate governor: powersave cores: 1: 1000 2: 400 3: 400 4: 400
    bogomips: 21607
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: gather_data_sampling mitigation: Microcode
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT
    vulnerable
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data mitigation: Clear CPU buffers; SMT vulnerable
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed mitigation: IBRS
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: IBRS; IBPB: conditional; STIBP: conditional;
    RSB filling; PBRSB-eIBRS: Not affected; BHI: Not affected
  Type: srbds mitigation: Microcode
  Type: tsx_async_abort mitigation: TSX disabled
Graphics:
  Device-1: Intel HD Graphics 620 vendor: Dell driver: i915 v: kernel
    arch: Gen-9.5 process: Intel 14nm built: 2016-20 ports:
    active: HDMI-A-1,eDP-1 empty: DP-1,HDMI-A-2 bus-ID: 00:02.0
    chip-ID: 8086:5916 class-ID: 0300
  Display: wayland server: X.org v: 1.21.1.13 with: Xwayland v: 24.1.0
    compositor: gnome-shell driver: X: loaded: modesetting alternate: fbdev,vesa
    dri: iris gpu: i915 display-ID: 0
  Monitor-1: HDMI-A-1 model: ASUS VY279 serial: <filter> built: 2022
    res: 1920x1080 dpi: 82 gamma: 1.2 size: 598x336mm (23.54x13.23")
    diag: 686mm (27") ratio: 16:9 modes: max: 1920x1080 min: 720x400
  Monitor-2: eDP-1 model: ChiMei InnoLux 0x14c3 built: 2016 res: 1366x768
    dpi: 112 gamma: 1.2 size: 309x173mm (12.17x6.81") diag: 354mm (13.9")
    ratio: 16:9 modes: 1366x768
  API: EGL Message: EGL data requires eglinfo. Check --recommends.
Audio:
  Device-1: Intel Sunrise Point-LP HD Audio vendor: Dell driver: snd_hda_intel
    v: kernel alternate: snd_soc_skl,snd_soc_avs bus-ID: 00:1f.3
    chip-ID: 8086:9d71 class-ID: 0403
  API: ALSA v: k6.6.32-1-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: JACK v: 1.9.22 status: off tools: N/A
  Server-2: PipeWire v: 1.0.7 status: off with: pipewire-media-session
    status: active tools: pw-cli
  Server-3: PulseAudio v: 17.0 status: active with: 1: pulseaudio-alsa
    type: plugin 2: pulseaudio-jack type: module tools: pacat,pactl
Network:
  Device-1: Intel Ethernet I219-LM vendor: Dell driver: e1000e v: kernel
    port: N/A bus-ID: 00:1f.6 chip-ID: 8086:15d7 class-ID: 0200
  IF: enp0s31f6 state: down mac: <filter>
  Device-2: Intel Wireless 8265 / 8275 driver: iwlwifi v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 bus-ID: 02:00.0 chip-ID: 8086:24fd class-ID: 0280
  IF: wlp2s0 state: up mac: <filter>
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
RAID:
  Hardware-1: Intel 82801 Mobile SATA Controller [RAID mode] driver: ahci
    v: 3.0 port: f060 bus-ID: 00:17.0 chip-ID: 8086:282a rev: N/A class-ID: 0104
Drives:
  Local Storage: total: 238.47 GiB used: 69.28 GiB (29.1%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/sda maj-min: 8:0 vendor: Samsung model: SSD PM871b M.2 2280
    256GB size: 238.47 GiB block-size: physical: 512 B logical: 512 B
    speed: 6.0 Gb/s tech: SSD serial: <filter> fw-rev: 2D0Q scheme: GPT
Partition:
  ID-1: / raw-size: 238.17 GiB size: 233.37 GiB (97.99%)
    used: 69.25 GiB (29.7%) fs: ext4 dev: /dev/dm-0 maj-min: 254:0
    mapped: luks-[my UUID]
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 32.4 MiB (10.8%) fs: vfat dev: /dev/sda1 maj-min: 8:1
Swap:
  Alert: No swap data was found.
Sensors:
  System Temperatures: cpu: 0.0 C pch: 38.0 C mobo: 35.0 C
  Fan Speeds (rpm): cpu: 0
Info:
  Memory: total: 16 GiB available: 15.5 GiB used: 2.06 GiB (13.3%)
  Processes: 228 Power: uptime: 2h 50m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 1 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 6.19 GiB services: gsd-power,
    power-profiles-daemon, upowerd Init: systemd v: 255 default: graphical
    tool: systemctl
  Packages: pm: pacman pkgs: 1460 libs: 446 tools: gnome-software,pamac
    Compilers: N/A Shell: Zsh v: 5.9 running-in: gnome-terminal inxi: 3.3.34

I ran what I know best. Let me know if there is something else I can share.

… but you obviously still have it in there …

If you want no or less flicker, make sure the capabilities in the initrd match the ones in the target system.

You’re mistaken. I added back the splash parameter so that the flickering stops. But when I previously removed it that’s when my whole boot process went disco mode until reaching the login screen.

I cannot help you decipher this, my man.
Sorry!

Here’s the series of events:

  1. I had already removed the plymouth hook from /etc/mkinitcpio.conf in the May 29th update to merge the pacnew.

  2. The same day, I removed the quiet parameter from /etc/default/grub so I could see messages instead of a black screen and I ran sudo update-grub. (Plymouth likely still active as I could momentarily see the Manjaro logo below the vendor logo after boot, but just before reaching the login screen).

  3. Today, June 2, I read a post on removing Plymouth. I start following it (changes had already been made to /etc/mkinitcpio.conf on May 29th and I had run that day sudo mkinitcipio -P successfully, so no need to repeat it).

  4. I remove the splash boot parameter from /etc/default/grub and run sudo update-grub. (but before I remove plymouth and plymouth-theme-manjaro I tried rebooting first in case there are any issues).

  5. I reboot, and the screen is constantly turning on and off, but I can still type and get to the LUKS passphrase screen. For some reason, boot gets stuck at “Slot 0 opened” when I successfully entered my passphrase on the first reboot, so I forced shutdown. I reboot again and the screen is still going bonkers (LUKS decrypts OK) until I reach the user login screen.

  6. I immediately add back splash to /etc/default/grub, run sudo update-grub, and rebooted. Screen works OK like before (I didn’t remove the Plymouth packages in case I encounter an unexpected issue like this).

I just want to know how I can safely remove Plymouth without all these problems. It’s unnecessary bloat and a source of many bugs, but I’m afraid removing it may keep causing my screen to fluctuate as it made my boot process very unusable.

sudo update-grub ?

… I just saw you did …

plymouth is indeed unnecessary

but if it worked better for you before … just keep it ?

For me:
I see all the boot messages go by, then a switch to the graphical login screen

I edited my previous reply to show I ran sudo update-grub after every modification to /etc/default/grub.

Does it solve the problem? Removing splash is not supposed to cause the computer screen to turn on and off. If it helps, I’m connected to my monitor which mirrors my computer’s screen (I can see on the monitor everything after decrypting LUKS, just before mkinitcpio hooks start running).

as I said:

I don’t experience any “disco mode”.

No worries. I’ll wait for other replies.

I found this Reddit post about someone having his/her screen clearing multiple times during boot. Admittedly far fetched and a pretty old thread. But they’re advising early-KMS start for the graphics driver over there.

Since you seem to run a DELL laptop screen and an external ASUS monitor as well, I’m just guessing this might be worth a try? Your Intel HD Graphics 620 is using the i915 driver. Reading the part about Early KMS in the Arch Wiki, I’m still not sure if it would be a good idea to try to add i915 to the MODULES variable or if kms in the HOOKS variable is already sufficient.

:arrow_down: EDIT: :arrow_down:
Here’s another thread in the forum advising for adding the i915 module and some other ideas.

There is every need to repeat it - each time you modify boot related parameters; especially when you modify mkinitcpio.conf (with plymouth having such close ties to boot processes).

Technically these flickers are exactly what Plymouth is designed to hide.

Due to a team decision plymouth 24.x is only available in testing and unstable with v22.x being on stable branch.

Perhaps this is due to problems with Nvidia - which I avoid - the systems I run using Intel or AMD on unstable branch has no issues with plymouth - with the added benefit of having a keymap aware encryption passphrase input.

Ensure you have set up early kms as described in the Arch Wiki and plymouth should work without hickups.

Seeing you are using encryption - I highly recommend to use the latest iterations of Plymouth.

 $ pamac info plymouth
Name                  : plymouth
Version               : 24.004.60-9
Description           : Graphical boot splash screen
URL                   : https://www.freedesktop.org/wiki/Software/Plymouth/
Licenses              : GPL-2.0-or-later
Repository            : extra
Installed Size        : 2,2 MB
Groups                : --
Depends On            : bash cairo cantarell-fonts filesystem>=2023.12.21 fontconfig freetype2 glib2 glibc libdrm
                        libevdev libpng libx11 libxkbcommon pango systemd-libs xkeyboard-config
Optional Dependencies : gtk3: x11 renderer [Installed]
Required By           : plymouth-theme-manjaro
Optional For          : dracut pamac-cli
Provides              : --
Replaces              : --
Conflicts With        : --
Packager              : Philip Mueller <philm@manjaro.org>
Build Date            : tor 30 maj 2024 14:46:57 CEST
Install Date          : tor 30 maj 2024 17:53:17 CEST
Install Reason        : Explicitly installed
Validated By          : Signature
Backup files          : /etc/plymouth/plymouthd.conf

The available versions of plymouth upstream and in Manjaro branch repo (space inserted for readablity)

 $ mbn info plymouth -q

Branch         : archlinux
Name           : plymouth
Version        : 24.004.60-7
Repository     : extra
Build Date     : Mon 06 May 2024 10:02:38 
Packager       : Balló György <bgyorgy@archlinux.org>

Branch         : unstable
Name           : plymouth
Version        : 24.004.60-9
Repository     : extra
Build Date     : Thu 30 May 2024 14:46:57 
Packager       : Philip Mueller <philm@manjaro.org>

Branch         : testing
Name           : plymouth
Version        : 24.004.60-9
Repository     : extra
Build Date     : Thu 30 May 2024 14:46:57 
Packager       : Philip Mueller <philm@manjaro.org>

Branch         : stable
Name           : plymouth
Version        : 22.02.122-18
Repository     : extra
Build Date     : Tue 07 May 2024 16:47:12 
Packager       : Philip Mueller <philm@manjaro.org>

Do you have to when updating /etc/default/grub and running sudo update-grub? I said there was no need to run mkinitcpio -P as I already ran it after removing the plymouth hook, and since I never modified /etc/mkinitcpio.conf afterwards.

I don’t have Nvidia hardware.

Yesterday I saw an article that suggested running updates from tty3 to prevent some potential errors. So I reached my login screen (no flickering since I had added back splash) but when I entered the tty, my screen was flickering rapidly the entire time there.

I added my /etc/mkinitcpio.conf in my post. Is that OK or do I need to do something else?

What do you mean? Does Plymouth affect encryption? Plymouth is up to date and I’m on Stable branch.