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 …)
Remove/Disable Plymouth
See [HowTo] Disable or Remove Plymouth (boot splash) by @cscs