linux自动切换核显和独显,在Ubuntu 18.04上切换独显/集显 您所在的位置:网站首页 独显不工作默认核显 linux自动切换核显和独显,在Ubuntu 18.04上切换独显/集显

linux自动切换核显和独显,在Ubuntu 18.04上切换独显/集显

2024-07-01 20:07| 来源: 网络整理| 查看: 265

对于笔记本来说,独立显卡太耗电了,非常影响续航;但有时候我们又需要用它来运行一些计算密集型程序。这里推荐两种方法来实现显卡切换。

查看独立显卡是否正在使用

在终端输入

lspci | grep NVIDIA

如果跟在显卡型号最后的括号中是rev ff,那么独立显卡已被禁用。 如果是其他数字(如rev 07), 那么独立显卡已被启用。

prime-select / nvidia-settings切换显卡

我是使用ubuntu-drivers autoinstall安装的Nvidia显卡驱动。安装完显卡驱动后,这两个软件就同时安装了。这时你可以在命令行输入

nvidia-settings

之后通过GUI的PRIME Profiles页面来选择使用集显或独显。 等价地,你可以在命令行使用prime-select: 查询当前选择的显卡

prime-select query

切换独显

sudo prime-select nvidia

切换集显

sudo prime-select intel

你需要重启使得上述选择生效。 这种方案的弊端:

当你启动独显时,所有图形程序(比如系统UI)都会在独显上运行;而启用集显时,又完全无法访问独显。因此不能实现集显负责显示,独显负责计算。

每次更改需要重启生效。

为了实现更灵活的管理,你需要Bumblebee。

Bumblebee

安装和使用

安装方法参考这里。 简单来说,如果你使用Ubuntu 14.04以后的系统,那么直接执行

sudo apt-get install bumblebee bumblebee-nvidia primus linux-headers-generic

然后重启就可以了。 此后默认情况下独立显卡被禁用。此时运行

lspci | grep NVIDIA

你应该看到末尾显示rev ff。要使用显卡运行程序,在要运行的程序钱加上optirun, 例如

optirun python

保持python解释器的运行状态,在另一个terminal窗口中执行lspci检查显卡状态,应该发现此时显卡已经被启动了。当使用显卡的程序全部结束后,显卡又随之被禁用.

trouble shooting

然而事情可能并没有这么顺利,我使用Ubuntu18.04 + nvidia-430驱动,运行optirun时遇到了下面的错误:

[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected.

如果你的情况类似,那么可以继续参考下面的部分解决。

在/etc/environment最后添加一行

__GLVND_DISALLOW_PATCHING=1

编辑/etc/bumblebee/bumblebee.conf, 修改对应的两行配置:

LibraryPath=/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu

XorgModulePath=/usr/lib/x86_64-linux-gnu/nvidia-430/xorg,/usr/lib/xorg/modules,/usr/lib/xorg/modules/input

你最好检查上面配置的各个路径在你的系统中是否都存在,如果不存在则对应修改。比如,根据你所安装的驱动,/usr/lib/x86_64-linux-gnu/nvidia-430/xorg可能要改为其它值。

编辑/etc/modprobe.d/blacklist-nvidia.conf(如果不存在则创建它)如下:

blacklist nvidia

blacklist nvidia-drm

blacklist nvidia-modeset

#alias nvidia off

alias nvidia-drm off

#alias nvidia-modeset off

然后记得执行

sudo update-initramfs

如果不执行,那么下次开机时,/etc/modprobe.d/blacklist-nvidia.conf 就消失了。至于为什么你可以man update-initramfs 查看改命令的description。

编辑/etc/default/grub,添加 nogpumanager 到GRUB_CMDLINE_LINUX_DEFAULT参数,然后

update-grub

执行

sudo systemctl disable nvidia-persistenced

参考



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有