抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

[Manjaro]彻底禁用独立显卡

已知的问题

我在使用chrome时应用启动非常迅速,但图形界面却出现的非常慢,准确来说,是一个全屏透明占用了整个屏幕,把它最小化(通过点击应用图标等方法)在屏幕上拖动会有重影,重影是buffer未清除,应该是图形(GPU)渲染的问题。

然而,在firefox上却完全没有这个问题。

我难以准确描述我遇到的问题,在google上搜不到任何和我相似的情况,只有类似”启动慢“的问题,我尝试关闭了所有硬件加速相关的只要用到GPU的功能,还是无法解决问题。

尝试换了edge,但依旧是同样的效果,又尝试换了vivaldi, 也是同样的问题,区别就是vivaldi不是透明的而是白屏窗口,可能只是启动实现上的不同。共同点在于,它们都是基于chromium的,于是我又尝试使用chromium,但chromium却没有这个问题,我实在不知道如何排查,我尝试使用debug日志的模式启动chrome、edge,一大堆的日志中除了一些不太重要的warning之外,没有什么不正常的信息。

chrome启动慢实在影响了我的操作体验。。。而chromium被阉割了同步功能,以及现在的版本下在linux中输入存在问题(fcitx),不过在当前的chrome版本中已经修复,我还是觉得我应该使用chrome。

事情在我从kde换到awesome wm后有了进展,在某一次开机后我在awesome wm下的chrome彻底打不开了,edge等也是,我

意识到这样的不同表现来源于我的启动配置,于是我认为应该是我坏掉的独显在暗中作怪。

彻底禁用独显

尝试

manjaro并没有提供类似设备管理器一样的可以直接把显卡禁用的功能,我也没有找到。

我在网上找到的选择使用集成显卡的方案是通过bumblebee来实现的。

对于ubuntu,可以使用prime-select命令来选择显卡,在manjaro(arch系)下,可以通过

1
sudo mhwd -a pci nonfree 0300

来安装推荐的显卡驱动,一般双显卡就是video-hybrid-intel-nvidia-prime,但并没有prime-select,arch系采用了不同的方法来处理NVIDIA Optimus技术,可以使用Bumblebee作为Optimus支持的默认解决方案。

在论坛中得知应该使用bbswitch来代替Bumblebee来做这件事比较好,Bumblebee已经过时了。

于是尝试一系列操作:

1
2
3
4
5
6
7
8
sudo pacman -S bbswitch

sudo nvim /etc/modprobe.d/bbswitch.conf
options bbswitch load_state=0 unload_state=1

sudo modprobe bbswitch
sudo tee /proc/acpi/bbswitch <<< OFF
cat /proc/acpi/bbswitch

按道理应该显示OFF,但我这里一直显示ON。得知大概是由于程序占用了nvidia,导致无法禁用。

1
2
3
4
sudo fuser -v /dev/nvidia*

用户 进程号 权限 命令
/dev/nvidiactl: root 298314 F.... Xorg

尝试设置xorg使用集显启动。

1
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
sudo nvim /etc/X11/xorg.conf

Section "ServerLayout"
Identifier "layout"
Screen 0 "intel"
Inactive "nvidia"
EndSection

Section "Device"
Identifier "intel"
Driver "modesetting"
BusID "PCI:0:2:0"
EndSection

Section "Screen"
Identifier "intel"
Device "intel"
EndSection

Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID "PCI:1:0:0"
Option "ConstrainCursor" "off"
EndSection

Section "Screen"
Identifier "nvidia"
Device "nvidia"
Option "AllowEmptyInitialConfiguration" "on"
Option "IgnoreDisplayDevices" "CRT"
EndSection

然后重启,依旧无效。

我无法得知原因,但毕竟是独显坏了,奇奇怪怪的事情确实会发生hhh

有效的做法

既然它已经坏了,那么我就只需要把它彻底禁用就好了

先安装intel集显的驱动,保证我至少有一个能用的驱动可以打开图形界面

1
sudo mhwd -i pci video-linux

然后阻止nvidia模块加载

1
2
3
4
5
6
sudo nvim /etc/modprobe.d/blacklist-nvidia.conf

blacklist nvidia
blacklist nvidia-drm
blacklist nvidia-modeset
blacklist nvidia-uvm

卸载nvidia相关的驱动

1
2
sudo mhwd -r pci video-nvidia
sudo mhwd -r pci video-hybrid-intel-nvidia-prime

以及残留配置

1
sudo rm /etc/X11/xorg.conf

reboot,然后飞快的启动了chrome,真棒。

评论