帶有 Nouveau 驅動程序的 Nvidia Optimus
我正在嘗試讓該
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
命令一起工作,對吧?但是,在遵循經典安裝過程之後
- 解除安裝專有驅動程序
- 安裝
bumblebee
和mesa-utils
包- 安裝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.conf
by 設置中使用 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
參考
- HybridGraphics - Ubuntu 的社區幫助 Wiki
- VGA Switcheroo - Linux 核心文件
- Chibi-nah 的VGA_Switcheroo