我有一台(游戏)笔记本电脑(戴尔 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 卡。