linux使用bbswitch+nvidia-xrun取代bumblebee

nvidia-xrun的比bumblebee使用nvidia optimus的性能更好,关键是xrun支持Vulkan。

本文保存并更新在github:levinit/itnotes/linux/arch/archlinux安装-双显卡管理,如有疑问,请提issue。

bbswitch关闭独立显卡

在终端执行以下命令即可:

pacman -S bbswitch
#开机自动加载bbswitch模块
sudo echo 'bbswitch ' > /etc/modules-load.d/bbswitch
#设置bbswitch模块参数
sudo echo 'options bbswitch load_state=0' > /etc/modprobe.d/bbswitch.conf
#获取模块名
lsmod | grep nvidia | cut -d ' ' -f 1 > /tmp/nvidia
lsmod | grep  nouveau | cut -d ' ' -f 1 > > /tmp/nvidia
sort -n /tmp/nvidia | uniq >  /tmp/nvidia.conf#去重
sed -i 's/^\w*$/blacklist &/g' /tmp/nvidia.conf  #添加blacklist
sudo cp /tmp/nvidia.conf /etc/modprobe.d/nvidia.conf  #移动

执行以上命令即可进入下一小节(nvidia-xrun),本节其余内容是对上述命令的详细介绍:

  1. 安装bbswitch

  2. 开机自动加载bbswitch模块

添加文件/etc/modules-load.d/bbswitch ,写入内容bbswitch

  1. 设置bbswitch模块参数

添加/etc/modprobe.d/bbswitch.conf文件,写入内容options bbswitch load_state=0

  1. 添加nvidia相关模块到黑名单

使用lsmod |grep nvidialsmod | grep nouveau找出所有的相关模块的名字;新建文件/etc/modprobe.d/nvidia.conf ,在其中添加模块黑名单。

黑名单写法:每行以blacklist开头,然后一个空格,其后写上一个模块名。

检查:重启后使用lspci grep NVIDIAcat /proc/acpi/bbswitch检查关闭情况。

nvidia-xrun

  1. 安装nvidia-xrun

shell yaourt -S nvidia-xrun #或者nvidia-xrun-git

  1. 配置nvidia-xrun
  • 设置NVIDIA设备的总线ID

    获取ID:一般的设备的总线ID是1:0:0,为了确保正确,使用一下命令获取ID:

    shell lspci | grep NVIDIA

    在输出内容中第行首即可看到ID。

    新增文件/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf ,添加如下内容:

    shell Section "Device" Identifier "nvidia" Driver "nvidia" BusID "PCI:1:0:0" EndSection

    上面的PCI即是获取到的总线ID。

上一篇:Webpack 2 视频教程 016 - Webpack 2 中生成 SourceMaps


下一篇:Eclipse+Pydev环境搭建