Black Screen with Plymouth - Cause and Solution

More topics than usual on black screen issues.

This may be caused by not having kms in the initramfs as plymouth relies on KMS.

What we know - Kernel mode setting - ArchWiki

The plymouth package has been downgrade from 24.x to 22.x in stable so ATM only a small subset of users may be affected - mainly those who updated between the snap was made and the package was downgraded.

How to help

Working and non-working configs are equally requested - comparing configurations is one part of the troubleshooting efforts.

We think me may be able to deduce what is going on, if you contribute the content of

  • cat /proc/cmdline
  • cat /etc/mkinitcpio.conf
  • inxi -Gxxxc0
  • pamac info plymouth

snippet to upload the content to a pastebin

echo "cmdline=$(cat /proc/cmdline)" > black-screen-info.txt
echo "mkinitcpio.conf=$(cat /etc/mkinitcpio.conf)" >> black-screen-info.txt
LANG=C pamac info plymouth >> black-screen-info.txt
LANG=C inxi -Gxxxc0 >> black-screen-info.txt
cat black-screen-info.txt | curl -F 'file=@-' http://0x0.st

Create a comment and provide the URL returned - also indicate if this is a black-screen config or a working config

Kernel mode setting

Plymouth primarily uses KMS to display graphics, but on UEFI systems it can utilize the EFI framebuffer.

If you cannot use KMS, e.g. because you are using a proprietary driver, or if you do not want to use the EFI framebuffer, consider using Uvesafb as it works with widescreen resolutions.

If you have neither KMS nor a framebuffer, Plymouth will fall back to text-mode.

Late KMS

With the new ISO kms will be enabled in the mkinitcpio.conf HOOKS=( … kms …)

The following drivers supports late KMS in HOOKS=() array and work OOB

  • Intel (i915)
  • Nouveau (nouveau)
  • ATI (radeon)
  • AMD (amdgpu)

Early KMS

This may be needed if you are still seeing blackscreen - generally if you don’t have an issue - you don’t need this

To get early kms add the driver to the MODULES=() array in mkinitcpio

  • Intel (i915)
  • Nouveau (noveau)
  • ATI (radeon)
  • AMD (amdgpu)

For Nvidia

A single kernel argument may be enough nvidia_drm.modeset=1

New installations

ISO released with 2024 has late KMS enabled by default.

Using Nvidia you need to add a module to the kernel command line

Early KMS can be enabled by adding the driver to MODULES=() array - usually you don’t need this with gpus that have kernel drivers as can be seen from [Kernel mode setting - ArchWiki]

Existing installations

Edit the file /etc/mkinitcpio.conf and apply changes according to your GPU

Too boot a system showing blackscreen with Nvidia - access the grub menu Esc - press e on the boot entry and add nvidia_drm.modeset=1 nvidia_drm.fbdev=1 to kernel command line. Press F10 to continue boot.

All GPU (open source kernel driver)

AMD, ATI, Intel, Nouveau (more info [Kernel mode setting - ArchWiki]) by adding to the existing HOOKS array

HOOKS=(... kms ...)

Optional (early kms)

Add the relevant module to the exisitng MODULES array (it may be empty)

MODULES=(... amdgpu ...)
MODULES=(... radeon ...)
MODULES=(... i915 ...)
MODULES=(... nouveau ...)

Rebuild initramfs

Save the file and run

sudo mkinitcpio -P

Nvidia GPU (proprietary driver)

According to Arch Wiki the framebuffer device driver is experimental.

Note: The proprietary NVIDIA driver (since 364.12) also implements kernel mode-setting, but it does not use the built-in kernel implementation and a fbdev driver for the high-resolution console is only present as an opt-in experimental feature (since 545.29)

Tests by the team shows that editing the default grub config in /etc/default/grub adding could be enough - your mileage may vary.

GRUB_CMDLINE_LINUX_DEFAULT="... nvidia_drm.modeset=1  ..."

Rebuild your grub configuration

sudo grub-mkconfig -o /boot/grub/grub.cfg

If the above is not enough add this in addition to the above and rebuild the grub config

GRUB_CMDLINE_LINUX_DEFAULT="... nvidia_drm.fbdev=1 ..."

IF that doesn’t work see the Arch Wiki

For in-tree modules (kernel provided), make sure kms is included in the HOOKS array in /etc/mkinitcpio.conf (this is the default since mkinitcpio v33).

For out-of-tree modules, place the module names in the MODULES array. For example, to enable early KMS for the NVIDIA graphics driver:

/etc/mkinitcpio.conf

MODULES=(… nvidia nvidia_modeset nvidia_uvm nvidia_drm …)

Kernel mode setting - ArchWiki

Remove/Disable Plymouth

See [HowTo] Disable or Remove Plymouth (boot splash) by @cscs

Hi, I’m one of the lucky ones with this update, so here is the link with the results of the commands from my working config:
http://0x0.st/H5ML.txt
In case it is useful to know, I boot in CSM mode and my Manjaro drive uses MBR (in which is GRUB installed), so I’m not using UEFI/GPT on this machine…

I don’t have plymouth installed on 3 laptops (all intel CPUs) running Manjaro (2 stable and 1 unstable), and they seem to work fine. Here’s the result from the one running unstable:
http://0x0.st/H5un.txt

plymouth was the longest a part of our Gnome edition. Only with recent ISOs also XFCE and KDE is using plymouth now. For community editions it depends on the date the ISO was built.

I think Unstable/Testing users didn’t feel the great impact of faulty plymouth package because they mostly use non GNOME ISOs from old installations.

This is much worse scenario than what happened with grub, because it landed to Stable branch as safe upgrade.

3 posts were split to a new topic: Blackscreen because of plymouth?

Hello,

I have a black screen config. System behavior is it boots to black screen, I then press the hard reset button on my desktop, and then it boots normally. This has been very consistent.

Question regarding the fix for existing installations for Nvidia GPU systems. Do I not need to change anything to the /etc/mkinitcpio.conf file since I have an Nvidia GPU. Only the changes in GRUB?

Thank you.

With the current knowledge

  • Nvidia systems - using proprietary driver - only grub …
  • Nvidia systems - using opensource nouveau then mkinitcpio.conf
1 Like

Edit: 3/1/2024

It seems that a lovely side effect of of this Plymouth update, and having to add a early KMS setting in GRUB for this black screen issue, is that it appears to have finally fixed my long time screen tearing issue with my Nvidia GeForce GTX 970 using the proprietary driver.

From a previous post that I cannot seem to edit to show a fix:

I had dimly recalled after doing this black screen fix that something about early KMS was mentioned for screen tearing. And indeed I was right. User bogdancovaciu mentions it in the first comment after my initial post. Back then I was very new to the Manjaro and Arch based Linux distributions in general, so adding early KMS at the time, was more than I knew how to do.

It is nice that with some time and experience on Manjaro, these fixes become less of an obstacle and challenge.


Thank you for your help linux-aarhus.

It appears that the kernel mode parameter nvidia_drm.modeset=1 was all that was needed for my Nvidia with proprietary driver system.

2 posts were split to a new topic: Problem running grub-mkconfig

2 posts were split to a new topic: Suggestion to remove Plymouth from ISO