终端对于有关 Nvidia 显卡的每个命令都会冻结

终端对于有关 Nvidia 显卡的每个命令都会冻结

我有一台(游戏)笔记本电脑(戴尔 G15),它使用混合显卡设置;主要的 Arch Linux 环境显然使用 intel iGPU 驱动程序,但我的笔记本电脑有 RTX 3050m。

我安装了 nvidia 驱动程序和其他 nvidia 相关软件包,但是,每当我尝试在终端上启动 nvidia 相关命令时,它都会完全挂起。做了一些谷歌搜索,这里还有其他人遇到同样的问题(https://bbs.archlinux.org/viewtopic.php?id=274405&p=2)但“解决方案”并不是真正的解决方案,因为该人必须更换笔记本电脑。

因此,以下任何命令都会导致冻结:

nvidia-smi

(在 Windows 上工作正常,但在同一台机器上安装的 Arch 上则不行):

nvidia-settings

(根本打不开)

prime-run glxgears

(这尝试使用 GPU 加速进行渲染,冻结并且没有打开任何内容,同时在没有“prime-run”的情况下运行它可以正常工作并按预期显示,因为它使用的是 Intel 驱动程序而不是 nvidia 的驱动程序)

我根本无法调试它,因为它冻结了没有任何输出。

lspci | grep VGA

输出:

00:02.0 VGA compatible controller: Intel Corporation TigerLake-H GT1 [UHD Graphics] (rev 01)
01:00.0 VGA compatible controller: NVIDIA Corporation GA107M [GeForce RTX 3050 Mobile] (rev a1)

xrandr --listproviders

输出:

Providers: number : 1
Provider 0: id: 0x47 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 5 outputs: 4 associated providers: 0 name:Intel

因此,虽然我的 Nvidia 卡被内核检测到,但由于某种原因它没有显示为 X 的提供者。

您有什么建议以及可能存在什么问题?

谢谢

答案1

感谢您指出@特登

当您拥有 Nvidia 卡和 Intel CPU 时,Linux Kernel 5.18 上会出现此问题。

我设法通过以下步骤修复它:

sudo nano /et/default/grub

然后将 GRUB_CMDLINE_LINUX_DEFAULT 更改为同时包括ibt=关闭参数之中。

然后我保存并执行:

sudo update-grub
reboot

然后笔记本电脑应该可以正常检测 Nvidia 卡。

相关内容