如何限制Firefox浏览器只用intel核显?

我使用wayland gnome,有intel核显和nvidia独显,nvidia使用闭源驱动。

开机不加载nvidia模块,因为有时候需要独显直通虚拟机。需要nvidia的时候我才手动加载

sudo modprobe nvidia_modeset
sudo modprobe nvidia_uvm
sudo modprobe nvidia

比如想在Linux host打游戏的时候。

firefox浏览器使用intel核显, env MOZ_DRM_DEVICE=/dev/dri/renderD128 /usr/lib/firefox-developer-edition/firefox 大部分时间都是没有问题的(浏览器一直在用intel)。

但有时候加载nvidia后,在一段时间内没有需要独显直通,也就是nvidia没有卸载模块一直在加载着。本来使用intel的firefox(加载nvidia模块前就已经在开启并使用)在后面某个时刻,会有一个叫 RDD 的进程在占用nvidia,导致我需要卸载nvidia模块的时候,要先关掉firefox,才能卸载模块。

这个情况发生并不规律,有时候很长时间都没有出现。

有朋友知道这是什么情况有解决方案吗?

Telegram也会这样。大概除了用bwrap把nvidia的文件藏起来之外没有别的办法。

1 Like

我测试了很多,目前貌似有两个操作疑似解决了我的问题:

  1. MOZ_DISABLE_RDD_SANDBOX=1 删掉这个变量。我忘记为什么会加这个变量了,可能是wayland早期需要?这个变量删掉之后 rdd 进程没有使用nvidia了,但firefox本身还是有占用。
  2. VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/intel_icd.x86_64.json 貌似加了这个之后就疑似firefox彻底没有占用nvidia的情况

如果后面又“复发”,可能只有类似依云猜想的方案了。