在Linux(Arch)下配置Nvidia,并在Wayland下运行Minecraft
在linux下使用nvidia的体验确实是一言难尽,有着许多的bug,经常会屏幕撕裂,不过经过仔细的检查,发现是有很多窗口跑在xwayland兼容层了,兼容层的垂直同步做的不太行(也有可能是我没配置好)
安装驱动
驱动我在安装好arch后就打上了,根据arch linux官方的教程配置一下就差不多了,不过有个雷点,就是wiki中提到的
Basic support 基本支持
There are two kernel parameters for the
nvidia_drm
module to be considered:modeset
andfbdev
. Both are enabled by default when using the nvidia-utils package. NVIDIA also plans to enable them by default in a future release.
要考虑nvidia_drm
模块有两个内核参数:modeset
和fbdev
。在使用 nvidia-utils 软件包时,两者都默认启用 。NVIDIA 还计划在未来版本中默认启用它们 。
默认启用其实是没有的,还是要自己往引导文件内追加这两个参数。
nvidia_drm.modeset=1 nvidia_drm.fbdev=1
这边有个小坑,很多教程都说fbdev不是必选项,但是根据我的测试,要正常使用nvidia渲染画面(尤其是opengl),必须打开,我就是在这边被坑了好久(6个月)!!!!
fbdev
Enabling
fbdev
is necessary for some Wayland configurations.
启用fbdev
对于某些 Wayland 配置是必要的。It is specifically a hard requirement on Linux 6.11 and later, but it is currently unclear whether this is intended behavior or a bug, see [2] for more details.
这在 Linux 6.11 及更高版本上是一个硬性要求,但目前尚不清楚这是有意为之还是错误,有关详细信息,请参见 [2]。It can be set the same way as the modesetting parameter, with the difference that executing:
它可以像 modesetting 参数一样进行设置,区别在于执行:# cat /sys/module/nvidia_drm/parameters/fbdev
Will return a missing file error if it is not set at all, instead of
N
.
如果根本没有设置,将返回 missing file 错误,而不是N
。
让Minecraft在wayland下使用nvidia跑起来
首先我们得知道minecraft依赖glfw渲染,但是glfw在最近(2025-04-03)对于wayland的适配还属于半能用状态,尤其是有个大bug:程序无法控制鼠标位置,也就是说mc打开物品栏后鼠标不会居中,飘得到处都是,这非常影响使用,此外,假如跑在xwayland下,mc经常会屏幕撕裂(垂直同步开了也没用,只要出low帧就会撕裂,但是mc的low帧还是非常平常的)。
所以,该怎么办呢?
安装补丁
寻找办法之后发现archlinux的aur中有一个软件,解决了鼠标和wayland的问题,于是我赶快yay了下来
直接尝试发现没变化,仔细搜索后发现有好几个雷没避哈哈!
配置MC
首先你得确保你使用hmcl启动器或者你确保你的启动器有对应设置(应该都有的,有能力自己找一找)
对于HMCL,你需要进入到一个全局游戏设置或者独立游戏设置
拖到最下面,点击编辑高级设置
更改为系统glfw
拖到最下面打开最后两个选项
设置环境变量
Use it on Minecraft 在 Minecraft 上使用它
In order to use it on Minecraft, just add this to your VM options.
-Dorg.lwjgl.glfw.libname=/your_download_path/libglfw.so.3.4
为了在 Minecraft 上使用它,只需将其添加到您的 VM 选项中。-Dorg.lwjgl.glfw.libname=/your_download_path/libglfw.so.3.4
To use the patched GLFW library with Nvidia GPUs the
__GL_THREADED_OPTIMIZATIONS
environment variable needs to be set to0
.
要将修补后的 GLFW 库与 Nvidia GPU 一起使用,__GL_THREADED_OPTIMIZATIONS
环境变量需要设置为0
。The shared library is downloadable from our release page
共享库可从我们的发布页面下载
使用nvidia启动
请确保你安装或者配置好nvidia的prime-run以允许应用程序切换渲染卡(需要自己配置或安装)
forge启动崩溃补丁
-Dfml.earlyprogresswindow=false
大概遇到的问题就这么些,希望能帮到你在linux下愉快的使用nvidia在没有屏幕撕裂的wayland下玩MC!!
有帮到你的话请评论支持下吧!