正如您所知,从Linux生态系统中的传统Xorg服务器过渡到Wayland一直是一个热门话题,引起了很多争议,无可否认,也引起了相当多的故障排除。
虽然Wayland承诺提供比其前身Xorg更精简、更安全的界面,但用户经常遇到障碍,尤其是在与NVIDIA显卡的兼容性方面。
换言之,从渲染问题到兼容性怪癖,这段旅程并非总是一帆风顺。然而,越来越明显的是,NVIDIA和Wayland的组合虽然还不是完美的匹配,但正在发展成为一种可行的、有效的解决方案。
尽管如此,只要有适当的指导和耐心,在Arch上与Wayland一起使用NVIDIA不仅是一种可能性,而且是一种基本可行的解决方案。你可以满怀信心地完成这一转变。
本指南旨在做到这一点:引导您完成设置过程,并提供解决方案,以确保您可以在Arch Linux上获得NVIDIA和Wayland的大部分体验。所以,让我们开始吧。
设置环境变量
随着NVIDIA引入GBM(Generic Buffer Management,通用缓冲区管理)支持,这是Linux图形堆栈的一个关键组件,为图形渲染和显示分配缓冲区提供了API,许多合成器都采用了它作为默认值。因此,为了强制GBM作为后端,我们需要设置一些环境变量。
打开“
/etc/环境
“文件,粘贴以下两行,然后保存文件并退出。
sudo nano/etc/environment
代码语言:
猛击
(
猛击
)
GBM_BACKEND=环境数据
__GLX_VENDOR_IBRARY_NAME=nvidia
代码语言:
猛击
(
猛击
)
设置环境变量。
在系统引导时加载NVIDIA模块
为了确保NVIDIA模块在尽可能早的阶段加载,即在系统引导时,我们需要添加
nvidia
,’ ‘
nvidia_deset
,’ ‘
nvidia_vm
和
nvidia_rm
'模块到initramfs——在安装真正的根文件系统之前,作为引导过程的一部分,将临时根文件系统加载到内存中。
这可以通过在“
模块
“的部分”
/etc/mkinitcpio.conf
文件这是mkinitcpio的配置文件,Arch使用该工具生成初始ramdisk映像。
所以,打开“
/etc/mkinitcpio.conf
文件
sudo nano/etc/mkinitcpio.conf
代码语言:
猛击
(
猛击
)
然后,输入上面提到的模块,因为最终版本应该是这样的:
模块=(nvidia nvidia_deset nvidia_vm nvidia_drm)
代码语言:
猛击
(
猛击
)
在系统启动时加载NVIDIA模块。
很好,但我们还没有完成这个文件。向下滚动并删除“
千米
“来自”
钩子
部分这确保了initramfs将避免包含开源“
新的
“驱动程序来干扰我们安装并依赖的专有NVIDIA的工作。
从挂钩上卸下KMS。
我们已完成修改“
/etc/mkinitcpio.conf
“。保存您的更改并关闭文件。接下来,我们将继续重新生成initramfs。要执行此操作,请执行以下命令:
sudo mkinitcpio-P
代码语言:
猛击
(
猛击
)
在命令的输出中,您可能会注意到以下消息:
警告:模块可能缺少固件…
“这些不应该引起关注,也与我们目前正在实施的修改无关。
启用DRM
DRM(Direct Rendering Manager)是Linux内核中负责与GPU接口的子系统。它为图形驱动程序提供了一个框架,使其能够直接访问图形硬件,这对渲染任务、3D图形、视频播放等方面的性能至关重要。
NVIDIA为Linux提供了专有的图形驱动程序,这些驱动程序使用DRM子系统与其GPU进行交互。这些驱动程序对于在Linux下的NVIDIA硬件上获得最佳性能和功能支持至关重要。
Wayland合成器需要启用DRM内核模式设置才能正常工作。因此,我们将在Linux内核通过GRUB引导加载程序进行初始引导时,将其作为参数传递给Linux内核。
打开其配置文件:
sudo nano/etc/default/grub
代码语言:
猛击
(
猛击
)
定位以“”开头的行
GRUB_CMDLINE_LINUX_DEFAULT
“并追加”
nvidia drm.modeset=1
”结束。完成的行应类似于下面提供的示例。
通过GRUB启用DRM(直接呈现管理器)。
最后,通过运行以下命令重新生成GRUB配置:
sudo grub mkconfig-o/boot/grub/grub.cfg
代码语言:
猛击
(
猛击
)
正在重新生成主GRUB配置文件。
在Arch Linux上使用NVIDIA测试Wayland
你们都准备好了。现在,重新启动您的Arch系统。在您正在使用的显示管理器的登录屏幕上,选择Wayland Session选项。
在Arch上切换到Wayland会话。
使用NVIDIA和您心爱的Arch Linux登录并享受无缝的Wayland体验。
Arch Linux正在Wayland上使用NVIDIA GPU运行。
此外,要验证NVIDIA DRM设置在重新启动后是否正确应用,请执行以下命令;作为回应,你应该得到“
Y
.”
sudo cat/sys/module/nvidia_drm/parameters/modeset
代码语言:
猛击
(
猛击
)
验证NVIDIA DRM设置。
要旨
最后,必须澄清一个关键点。我们的指南自信地证明了Wayland可以在Arch系统上与NVIDIA一起顺利运行。然而,这并不能保证每个应用程序、游戏或桌面环境都能完美运行。
这些组件与Wayland的兼容性各不相同,取决于它们对其集成支持的程度。
例如,KDE Plasma和GNOME等桌面环境为Wayland提供了非常好的支持,确保了无缝体验。另一方面,像Cinnamon这样只有基本Wayland支持的环境可能无法提供同样的平滑度。因此,考虑这些差异很重要。
同样,使用Hyprland动态平铺Wayland合成器将带来流畅的用户体验,而其他仍然依赖Xorg的用户可能无法为Wayland提供必要的支持。这种兼容性的可变性也适用于单个应用程序,因此在使用特定软件时,意识到潜在问题很重要。
总之,在Arch上设置Wayland的复杂性似乎令人生畏,尤其是对于那些拥有NVIDIA GPU力量的人来说,他们历来面临着从渲染故障到兼容性问题等各种障碍。
然而,有了适当的知识、一点毅力和我们的指导,曾经看似不可能的障碍开始缩小到这样的水平:通过正确的设置,NVIDIA和Wayland确实可以创造协同效应,在您的Arch设置中发挥最佳效果。
最后,我们建议参考官方Arch wiki上的特定Wayland和NVIDIA部分,以获得更全面的了解。它们提供了有关在Arch上设置和排除Wayland和NVIDIA故障的详细信息,使它们成为进一步探索的宝贵资源。
当然,我们很想听听你的反馈或想法,所以请毫不犹豫地在下面的评论框中分享。
相关推荐
理解每个Linux命令的细微差别对于新手和经验丰富的用户来说都是一项艰巨的任务。然而,一个突出的工具作为一个重要的资源是人的命令。以下是您需要了解的关于Linux上的man命令的所有内容,包括如何使用它,以及如何在完成后摆脱它的控制。 Linux中的man命令是什么? man命令是“manual”的缩写,是Linux不可或缺的命令。它作为一个内置文档系统,提供有关其他Linux命令、函数和配置文件
你想控制你的域名解析吗?你来对地方了!在本指南中,我们将引导您完成在Linux上将静态条目添加到主机文件的简单步骤。 掌握主机文件的操作是一项宝贵的技能。这个看似小的文件可以重定向网络流量,屏蔽不需要的网站,甚至创建指向您喜爱的服务器的快捷方式。但在我们进一步讨论之前,我们需要介绍一些理论。 什么是Linux主机文件? hosts文件是一个纯文本文件,几乎每个操作系统,包括所有版本的Linux,都
如果您经常使用Python,最近又改用Ubuntu 23.04或Fedora版本38,那么在使用Python包管理器pip安装包时,很可能会遇到“外部管理环境”错误。 这可能是令人沮丧和相当令人惊讶的,因为这个错误永远不会出现在旧版本的Ubuntu,Fedora和其他发行版中。让我们来了解到底是什么导致了这个错误,以及如何快速修复它。 为什么会出现“外部管理的环境”错误 所有Linux发行版的最新
您是否注意到,您的iPhone 14或iPhone 14 Pro的电池健康状况在长期使用后比平时更快地恶化?你并不孤单,因为许多关于这个问题的报道已经在网上浮出水面。以下是你需要知道的关于iPhone 14电池问题的一切。 IPhone 14用户报告电池健康问题 在iPhone 14发布几个月后,用户开始注意到他们的iPhone电池退化的速度有多快。Reddit、X(前Twitter)和其他社交媒
Flowblade是一款强大的视频编辑软件,以其Linux兼容性和广泛的功能而闻名,它刚刚发布了最新版本Flowblade 2.14。 如果这是你第一次听说它,这里有几个词。这是一款多音轨非线性视频编辑器,旨在提供快速、精确的编辑体验。它的主要重点是为编辑视频内容的专业用户提供一个响应迅速、强健的环境。 Flowblade 2.14亮点 Flowblade 2.14中最显著的新增功能之一是支持US
回到顶部