openEuler22.03禁用独立显卡

安装openEuler22.03后,笔记本续航从10多个小时下降到6个小时,还发热严重,作为Ubuntu老用户,一猜就知道是独立显卡耗电导致的,为解决这个问题,经历了一下过程

一、卸载开源显卡驱动

sudo dnf remove xorg-x11-drv-nouveau

之后,发热依然严重

二、安装Nvidia官方驱动
查看自己的显卡型号

lspci | grep NVIDIA

然后去官网
https://www.nvidia.cn/geforce/drivers/
下载对应驱动程序,并安装
安装后,发现nvidia-setting中去掉了禁用独立显卡的选项,没办法,只能用bbswitch自己禁用了
先卸载nvidia驱动

sudo nvidia-uninstall

三、安装bbswitch
https://github.com/Bumblebee-Project/bbswitch
下载源码,因为openEuler22.03的内核是5.1所以master分支和release版都编译失败,只能用develop分支了
按照README,进行编译安装

make
sudo make load
sudo tee /proc/acpi/bbswitch <<<OFF
cat /proc/acpi/bbswitch

结果发现第四行输出了ON,表示没关上,查看原因

dmesg

发现是nvidia驱动还在生效,写个service自动执行吧

[Unit]
Description=Turn Off Nvidia
After=systemd-modules-load.service

[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
ExecStart=/home/local/opt/bbswitch/off_nvidia.sh
ExecReload=/home/local/opt/bbswitch/off_nvidia.sh

[Install]
WantedBy=multi-user.target
#!/bin/bash
# off_nvidia.sh

cd `dirname $0`

rmmod nvidia_drm
rmmod nvidia_modeset
rmmod nvidia
insmod bbswitch.ko
tee /proc/acpi/bbswitch <<<OFF

其中,bbswitch.ko是bbswitch编译生成的

sudo systemctl enable nvidiaoff.service

然后重启

sudo systemctl status nvidiaoff.service

输出正常

lspci | grep NVIDIA

输出 “01:00.0 3D controller: NVIDIA Corporation GP108M [GeForce MX250] (rev ff)”,ff表示显卡也关闭了

续航也提高了,成功

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐