出自 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