[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 | sudo pacman -S bbswitch |
按道理应该显示OFF,但我这里一直显示ON。得知大概是由于程序占用了nvidia,导致无法禁用。
1 | sudo fuser -v /dev/nvidia* |
尝试设置xorg使用集显启动。
1 | sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup |
1 | sudo nvim /etc/X11/xorg.conf |
然后重启,依旧无效。
我无法得知原因,但毕竟是独显坏了,奇奇怪怪的事情确实会发生hhh
有效的做法
既然它已经坏了,那么我就只需要把它彻底禁用就好了
先安装intel集显的驱动,保证我至少有一个能用的驱动可以打开图形界面
1 | sudo mhwd -i pci video-linux |
然后阻止nvidia模块加载
1 | sudo nvim /etc/modprobe.d/blacklist-nvidia.conf |
卸载nvidia相关的驱动
1 | sudo mhwd -r pci video-nvidia |
以及残留配置
1 | sudo rm /etc/X11/xorg.conf |
reboot,然后飞快的启动了chrome,真棒。