NVIDIA早启动

早启动

对于基本功能,只需添加内核参数就足够了。如果您希望确保驱动能被最早加载,或者遇到了启动问题(例如 nvidia 内核模块在显示管理器启动后才被加载),可以将 nvidia、nvidia_modeset、nvidia_uvm 和 nvidia_drm 添加到 initramfs 中。请参阅内核模块#早期模块加载以了解如何配置您的 initramfs 生成器。mkinitcpio用户可能还需要在每次nvidia包驱动程序更新时重新生成 initramfs映像

编辑mkinitcpio配置文件

1
sudo vim /etc/mkinitcpio.conf

[!IMPORTANT]

MODULES 添加模块

1
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)

如果你将驱动添加到了initramfs中,记得每次更新nvidia包驱动程序后都要运行mkinitcpio

Pacman 钩子

为了避免更新NVIDIA驱动之后忘了更新initramfs,你可以使用Pacman Hooks:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/etc/pacman.d/hooks/nvidia.hook
[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
Target=nvidia
Target=linux
# Change the linux part above and in the Exec line if a different kernel is used
# 如果使用不同的内核,请更改上面的 linux 部分和 Exec 行中的内容,例如更改为Target=nvidia-open

[Action]
Description=Updating Nvidia module in initcpio
Depends=mkinitcpio
When=PostTransaction
NeedsTargets
Exec=/bin/sh -c 'while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -P'

务必保证Target项所设置的软件包与你在前面的安装过程中所使用的相符(例如nvidia 或 nvidia-dkms 或 nvidia-lts 或 nvidia-ck-something等)

以上设置完毕,需要运行一次mkinitcpio

1
sudo mkinitcpio -P

DRM 内核级显示模式设置

由于NVIDIA不支持自动KMS晚加载,要正常运行Wayland合成器或没有root权限的 Xorg,您必须启用DRM (直接渲染管理器)内核级显示模式设置,nvidia-utils包560.35.03-5版本后默认启用DRM (Direct Rendering Manager) 内核级显示模式设置,如您使用更旧的驱动版本,请为nvidia_drm模块设置以下内核模块参数:modeset=1

1
sudo vim /etc/default/grub

[!IMPORTANT]

在 GRUB_CMDLINE_LINUX_DEFAULT的quiet后面添加nvidia_drm.modeset=1

您可以使用以下命令验证DRM是否自动启用:

1
cat /sys/module/nvidia_drm/parameters/modeset

其应当返回 Y

最后更新一下Grub

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

NVIDIA早启动
http://huishao.net/2025/08/30/早启动/
作者
huishao
发布于
2025年8月30日
许可协议