nvidia-xrun
nvidia-xrun是一个实用的独立显卡与独立的NVIDIA图形完全性能。bumblebee目前的状态提供了非常糟糕的表现,nvidia-xrun这个解决方案提供了一个更复杂的程序,拥有更好的GPU利用效率。
安装[编辑 | 编辑源代码]
安装:
- nvidia包
- bbswitch包
- nvidia-xrunAUR 或者 nvidia-xrun-gitAUR
- 一个窗口管理器, 例如 openbox包 可选,仅用来运行需要使用nvidia的程序,因为直接使用nvidia-xrun运行一些程序(如steam)表现较差,使用一些像Openbox窗口管理器会好一些。
配置[编辑 | 编辑源代码]
设置nvidia的bus id[编辑 | 编辑源代码]
如果安装nvidia-xrun完毕后,/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf
文件中已经设置好bus id,可直接跳过本步。
如果你从[nvidia-xrun github repo]下载安装的nvidia-xrun,你应该需要进行手动设置bus id。
获取ID:一般的设备的总线ID是1:0:0,为了确保正确,使用一下命令获取ID:
lspci | grep NVIDIA
在输出内容中第行首即可看到ID。
新增文件/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf
,添加类似如下内容:
/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf
Section "Device" Identifier "nvidia" Driver "nvidia" BusID "PCI:1:0:0" EndSection
同样的,如果遇到问题你可以调整一些NVIDIA设置:
/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf
Section "Screen" Identifier "nvidia" Device "nvidia" # Option "AllowEmptyInitialConfiguration" "Yes" # Option "UseDisplayDevice" "none" EndSection
自动y运行窗口管理器[编辑 | 编辑源代码]
编辑~/.nvidia-xinitrc,例如使用openbox,在其中添加:
openbox-session
在tty登录后,通过以下命令启动openbox桌面环境,在openbox中运行程序即可使用NVIDIA渲染:
nvidia-xrun
使用bbswitch在管理nvidia显卡[编辑 | 编辑源代码]
平时使用bbswitch关闭nvidia显卡,在需要使用nvidia运行程序时,运行nvidia-xrun
就会唤醒nvidia显卡,并自动打开设定好的窗口管理器。
- 在启动时载入bbswitch模块
# echo 'bbswitch ' > /etc/modules-load.d/bbswitch.conf
- 关闭nvidia显卡的选项
# echo 'options bbswitch load_state=0 unload_state=1' > /etc/modprobe.d/bbswitch.conf
- 将nvidia相关模块加入黑名单
$ 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 # cp /tmp/nvidia.conf /etc/modprobe.d/nvidia.conf #移动
重启系统即可。 查看状态:
cat /proc/acpi/bbswitch
开关显卡可以使用bbswitch相关命令
# tee /proc/acpi/bbswitch <<<OFF # tee /proc/acpi/bbswitch <<<ON
更多bbswitch信息查看 Bumblebee-Project/bbswitch
使用[编辑 | 编辑源代码]
- 切换到tty
- 登录
- 运行
nvidia-xrun [app]
问题[编辑 | 编辑源代码]
直接使用nvidia-xrun运行steam表现较差,使用一些像Openbox窗口管理器会更好。