supergfxctl

来自 Arch Linux 中文维基

这篇文章的某些内容需要扩充。

原因: 本文需要更多针对非 NVIDIA 设备的混合图形笔记本的指导。 (在 Talk:Supergfxctl 中讨论)

supergfxctlAUR 是由 ASUS Linux 提供的,用于在混合图形笔记本上管理显卡切换功能的实用工具。

尽管 supergfxctl 最初是为华硕的 Optimus 笔记本设计的,它也逐渐成为了能在任何使用混合图形技术的笔记本上使用的独立工具。

安装之前[编辑 | 编辑源代码]

对于使用 Optimus 的笔记本,请确保已安装 NVIDIA 私有显卡驱动。请勿安装 xf86-video-intel。 如果安装了 optimus-managerAURbumblebee ,请卸载并确保在以下路径没有残余的 NVIDIAIntel 或其他 PRIME 管理器的配置文件:

  • /etc/X11/xorg.conf.d/
  • /etc/modprobe.d/
  • /etc/udev/rules.d/

Initramfs 和内核参数[编辑 | 编辑源代码]

如果您的笔记本使用 NVIDIA 独立显卡, 您需要设置一些内核参数,方法见 NVIDIA#DRM 内核级显示模式设置。 如果您的笔记本使用 AMD 独立显卡,您无需进行额外操作。

安装[编辑 | 编辑源代码]

您可以使用由 ASUS Linux 提供的软件仓库来安装。您也可以安装 supergfxctlAUR 软件包,然后启用 supergfxd.service

配置[编辑 | 编辑源代码]

配置文件保存在 /etc/supergfxd.conf。以下是一个样例配置文件:

supergfxd.conf
{
  "mode": "Hybrid",
  "vfio_enable": false,
  "vfio_save": false,
  "always_reboot": false,
  "no_logind": false,
  "logout_timeout_s": 180,
  "hotplug_type": "None"
}

用法[编辑 | 编辑源代码]

Supergfxctl 支持以下模式:IntegratedHybridVFIO。它可以自行检测 MUX switch 是否处于 AsusMuxDgpu 模式。选项 NvidiaNoModeSet 会在重启系统时禁用 NVIDIA GPU 内核模块

若要使用 MUX switch,您必须确保 asusctl 正在运行,详见 asusctl#Using the MUX switch

显示支持的模式[编辑 | 编辑源代码]

以下命令可以显示您的笔记本支持的所有模式:

$ supergfxctl -s

获取当前模式[编辑 | 编辑源代码]

以下命令可以查询您显卡当前的模式:

$ supergfxctl -g

切换模式[编辑 | 编辑源代码]

以下命令可以将您显卡的模式切换为 Hybrid:

$ supergfxctl -m hybrid

预启动配置[编辑 | 编辑源代码]

使用 supergfxctl 配置显卡直通 (VFIO)[编辑 | 编辑源代码]

VFIO 显卡直通(GPU passthrough)可以通过编辑 /etc/supergfxd.conf 启用。在此配置文件中,上游建议将 hotplug_type 的值更改为 Asus,而不是 None

/etc/supergfxd.conf
{
"vfio_enable": true,
"hotplug_type": "Asus"
}

详见 ASUS Linux VFIO guide

使用 supergfxctl 与 MUX switch[编辑 | 编辑源代码]

当系统处于 Hybrid 模式时,nvidia-prime 提供的 prime-run 命令可以让程序运行在独立显卡上。只要 MUX switch 已经启用,应用就不会出错,所以很适合需要高图形性能的场景。

在 Wayland 中使用 supergfxctl[编辑 | 编辑源代码]

自从 Wayland 支持多显卡同步以来, 用户不再需要安装 supergfxctl,除非他们想使用 VFIO 或进一步限制耗电量。 可以使用 asusctl 切换到AsusMuxDgpu 模式,详见 asusctl#Using the MUX switch

图形化工具[编辑 | 编辑源代码]

如果您正在使用 GNOMEKDE,您可以使用桌面环境插件来管理 supergfxctl。下面列出了一些插件与其链接:

名称 桌面环境 链接
supergfxctl-gex Gnome https://extensions.gnome.org/extension/5344/supergfxctl-gex/
GPU Supergfxctl Switch Gnome (46) https://extensions.gnome.org/extension/7018/gpu-supergfxctl-switch/
plasma6-applets-supergfxctl KDE Plasma plasma6-applets-supergfxctlAUR
rog-control-center Any rog-control-centerAUR