整个安装就是:构建软件包、加一个内核命令行参数、重启。本指南遵循项目自己的 README,包括大家通常会略过的部分——验证与回滚。
基于 gpu-unlock README v1.0.0 · 核对日期:2026-10-25 · 源项目
开始之前
仅限 Linux。本模块没有 Windows 版本。你的显卡必须是 GA102、GA103、GA104 或 GA106 型号(RTX 30 系列)——先查你的显卡。该项目是实验性的、非官方的;你将修改硬件在启动时的初始化方式。开始前先读回滚一节,确认退路存在且很简单。
本指南适用于什么
上游项目 gpu-unlock v1.0.0,以其 README 为准,README 固定在 commit af28cbb(2026-10-24),适用于 README 覆盖的发行版家族(Arch、Debian/Ubuntu、Fedora/RHEL)。一个诚实的缺口:README 没有记录 Secure Boot(安全启动)或模块签名的行为——如果你的发行版强制 Secure Boot,请在重启前按你发行版自己的文档解决本地构建模块的签名问题。还有一条常驻披露:本站没有实际执行过一次安装——这里没有第一方的安装日志;这些步骤是对上游 README 的忠实总结,README 仍是权威来源。
已知的安装注意事项
Ubuntu 24.04 打包:至少一位用户报告 make install-deb 在 Ubuntu 24.04 上因 dh-sequence-dkms 构建依赖无法满足而失败,最后改为手动完成安装——在自己想变通办法之前,先看上游 issue #59。
验证启用确实生效:改完引导加载器配置后,重启后检查 cat /proc/cmdline。云镜像和重新生成的启动项可能会覆盖引导加载器设置,悄悄把参数弄丢。
lspci -D 并记下来(如 0000:21:00.0)。指定特定显卡时你需要它,事后验证也靠它。cat /proc/cmdline)到一个离线也能拿到的地方,这样你能原样恢复它。all——点名你想处理的那几张卡,其余的不碰。make install 会从 /etc/os-release 自动检测。在其他发行版上,使用下面的显式构建目标。注意:克隆拉取的是当前的默认分支,可能比本指南审校时依据的 commit(af28cbb)更新。
git clone https://github.com/Zagitta/gpu-unlock
cd gpu-unlock
make install
make install 会检测你的发行版并选对安装方式。显式变体如下:
make install-arch # makepkg -sif
make install-deb # apt-get build-dep, dpkg-buildpackage, apt-get install
make install-rpm # dnf builddep, rpmbuild, dnf install
make arch、make deb 和 make rpm 只构建软件包而不安装(Debian 和 RPM 软件包分别落在 build/deb 和 build/rpm)。安装会把模块及其固件放进你的 initramfs——在 mkinitcpio 下,一个 drop-in 会把 gpu_unlock 放在 MODULES 中 nvidia 的紧前面,让显示输出显卡黑屏的时间尽可能短;initramfs-tools 和 dracut 也有等价的 drop-in。镜像会在安装时重建。
模块在你告诉它要解锁哪些卡之前什么都不会做。把 gpu_unlock.targets=all 追加到你的内核命令行,保留你现有的选项:
/etc/default/grub 的 GRUB_CMDLINE_LINUX_DEFAULT 里,然后运行 sudo update-grub。sudo grub-mkconfig -o /boot/grub/grub.cfg。sudo grubby --update-kernel=ALL --args="gpu_unlock.targets=all"。options 行(bootctl status 会显示它在哪)。/etc/kernel/cmdline 并重新生成你的启动镜像(如 mkinitcpio UKI 用 sudo mkinitcpio -P)。除了 all,你也可以用完整的 PCI 地址指定具体的卡,就像 lspci -D 打印的那样:
gpu_unlock.targets=all # every unbound GA102/103/104/106 card
gpu_unlock.targets=0000:21:00.0 # only this card
gpu_unlock.targets=0000:21:00.0,0000:22:00.0 # comma-separated list
地址与 GPU 编号和显示角色无关。任何不是 GA102/GA103/GA104/GA106 的卡——包括把 all 和地址混用——都会被记录并忽略。不管你有几张卡,解锁总共大约需要一秒;每张卡单独处理,已经被绑定或已断电的卡会被跳过。
重启,然后查看内核日志:
journalctl -k -b | grep gpu_unlock
lspci -nnk -s 0000:21:00.0 # your card's address
然后运行你常用的 FP16/BF16 工作负载或 GEMM 基准测试做对比。有几个行为值得知道:
nvidia-drm 接管之间屏幕会黑屏——这和驱动稍后自己会做的事一样。gpu_unlock.resume=0 关掉这一行为。休眠不在覆盖范围内。常规退路就是一个参数
从内核命令行里删掉 gpu_unlock.targets= 再重启——就不会发生解锁。想临时用原厂方式启动一次,就在引导加载器的编辑界面里删掉这个参数。卸载软件包也会移除模块和 initramfs 的 drop-in。按设计,显卡、它的固件或 NVIDIA 驱动都不会被永久修改——这就是上游文档描述的回滚路径。
有一种失败模式要认真对待:如果某张卡上运行的固件始终没有停下来,模块会记录下来,并刻意保留那固件可能仍在使用的 DMA 缓冲区,直到下一次关机。重试前先关机——不要一直去戳它。
内核模块和本地打包是 GPL-2.0-only。生成的载荷派生自固定的 CMP 参考实现;NVIDIA 固件仍受其自身条款约束——归属说明见项目的 firmware/NOTICE.md 和 licenses/ 目录。如果它对你有用,项目页里有支持其作者的方式。
发现问题,或者有张卡能用?
项目明确征集兼容性报告——不管成功还是失败。尤其是 GA103 显卡目前还没有任何报告。提交你的报告是让这份列表更快变准的最快方式。