Nvidia

帶有 Nouveau 驅動程序的 Nvidia Optimus

  • February 26, 2020

我正在嘗試讓該optirun命令與我的電腦上的 FOSS Nouveau 驅動程序一起使用,該電腦具有嵌入式圖形單元和獨立圖形處理單元。lspci | egrep -i 'vga|3d'這是命令提供的我的設置:

00:02.0 VGA compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07)
01:00.0 3D controller: NVIDIA Corporation GK208BM [GeForce 920M] (rev a1)

根據Nouveau CodeNames 網站頁面,我的 GPU 由 NV108 (GK208) Nouveau 驅動程序支持。所以我沒有理由不能讓它與optirun命令一起工作,對吧?但是,在遵循經典安裝過程之後

  1. 解除安裝專有驅動程序
  2. 安裝bumblebeemesa-utils
  3. 安裝VirtualGL

我無法讓optirun命令工作。例如,optirun glxgears 給出錯誤

[ERROR]Cannot access secondary GPU - error: [XORG] (EE) 
[ERROR]Aborting because fallback start is disabled

問題似乎出在核心中的 Nouveau 模組上:

$ optirun -vv glxgears
----------------------
[DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
[DEBUG]optirun version 3.2.1 starting...
[DEBUG]Active configuration:
[DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
[DEBUG] X display: :8
[DEBUG] LD_LIBRARY_PATH: 
[DEBUG] Socket path: /var/run/bumblebee.socket
[DEBUG] Accel/display bridge: auto
[DEBUG] VGL Compression: proxy
[DEBUG] VGLrun extra options: 
[DEBUG] Primus LD Path: /usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus:/usr/lib/primus:/usr/lib32/primus
[DEBUG]Using auto-detected bridge virtualgl
[INFO]Response: No - error: [XORG] (EE) 
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) 
[DEBUG]Socket closed.
[ERROR]Aborting because fallback start is disabled.
[DEBUG]Killing all remaining processes.

我試過的

我試圖強制 Optimus 在/etc/bumblebee/bumblebee.confby 設置中使用 Nouveau 驅動程序Driver=nouveau。沒有什麼不同的。


我修復了什麼

最初我在執行命令時遇到另一個錯誤:

[ERROR]Cannot access secondary GPU - error: [XORG] (EE) 
[ERROR]Failed to load module "mouse" (module does not exist, 0)

我通過安裝缺少的包來修復它xserver-xorg-input-mouse

通過繼續研究,我終於找到了解決問題的方法。

解決方法:不要使用Optimus切換GPU

Primus 和 Optimus 程序可與 Nvidia 專有驅動程序一起使用。因此,不建議將它們與 Nouveau 驅動程序一起使用。Linux 核心有一些工具可以讓你在不安裝額外程序的情況下切換 GPU。有問題的工具是VGA Switcheroo。請注意,此工具僅適用於開源驅動程序。

預設情況下,該工具在您的系統上可能未啟動,因此需要進行一些操作。要檢查該工具是否已啟用,請使用以下命令查找開關文件

# cat /sys/kernel/debug/vgaswitcheroo/switch

就我而言,該工具未啟動,我只需要解除安裝 Bumblebee 即可解決問題。如果解除安裝 Bumblebee 後問題仍然存在,請按照本文中的說明進行操作。

現在vga_switcheroo已啟用,您可以使用以下命令關閉活動 GPU

# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

並啟動專用卡

# echo DIS > /sys/kernel/debug/vgaswitcheroo/switch

或啟動集成卡

# echo IGD > /sys/kernel/debug/vgaswitcheroo/switch

參考

引用自:https://unix.stackexchange.com/questions/568378