在 Clevo N871EJ1 筆記型電腦上使用 NVidia GPU
我這裡有一台 Clevo N871EJ1 (Schenker Media 17) 筆記型電腦,這讓我很頭疼。我嘗試安裝 Ubuntu 18.10、Debian Stretch 和 Debian Buster(測試版),並且在安裝期間或安裝後都被鎖定,並顯示“CPU 卡住”核心消息。通過呼叫
lspci
立即鎖定機器的命令行很容易重現。我可以通過指定pci=noacpi
核心參數來解決這個問題,現在一切正常,除了 NVidia GPU,這就是我的問題所在(剛剛提到了最初的鎖定問題,以防它相關)。筆記型電腦有兩個 GPU:
$ lspci | grep VGA 00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile) 01:00.0 VGA compatible controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile] (rev a1)
機器的韌體(僅限 UEFI,無傳統模式)幾乎沒有配置選項,因此無法選擇專用 GPU。所以我猜這個可怕的 NVidia Optimus 東西在這裡被使用了。
英特爾 GPU 在影片加速和 3D 加速方面沒有問題,所以沒問題。但如果不在那裡使用這款 GTX 1050,那就太可惜了。
所以我安裝
bumblebee
了專有的 nvidia 驅動程序(Debian 軟體包nvidia-driver
版本 390.87-6,核心 4.19.12-1),確保 nouveau 驅動程序被正確列入黑名單,但它不起作用:$ optirun glxinfo [29571.477699] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver [29571.477772] [ERROR]Aborting because fallback start is disabled.
在核心日誌中,我看到:
[29571.206327] nvidia: module license 'NVIDIA' taints kernel. [29571.206329] Disabling lock debugging due to kernel taint [29571.224868] nvidia-nvlink: Nvlink Core is being initialized, major device number 240 [29571.225080] nvidia 0000:01:00.0: can't find IRQ for PCI INT A; please try using pci=biosirq [29571.225082] NVRM: Can't find an IRQ for your NVIDIA card! [29571.225083] NVRM: Please check your BIOS settings. [29571.225083] NVRM: [Plug & Play OS] should be set to NO [29571.225083] NVRM: [Assign IRQ to VGA] should be set to YES [29571.225085] nvidia: probe of 0000:01:00.0 failed with error -1 [29571.225095] NVRM: The NVIDIA probe routine failed for 1 device(s). [29571.225095] NVRM: None of the NVIDIA graphics adapters were initialized! [29571.266406] nvidia-nvlink: Unregistered the Nvlink Core, major device number 240
當我按照輸出中的提示進行設置
pci=biosirq
時,機器會在啟動過程中再次鎖定。韌體中也沒有“Plug & Play OS”或“Assign IRQ to VGA”選項(僅限 UEFI,無傳統模式)。那麼我還能嘗試什麼讓 NVidia GPU 正常工作呢?
為了回答我自己的問題,我終於在這裡找到了解決方案:
所以實際的問題是 X 伺服器和 lspci 在遇到關閉的 NVidia GPU 時會凍結系統。我猜設置核心選項
pci=noacpi
只是通過完全中斷對 NVidia GPU 的訪問(無法載入驅動程序)意外地解決了這個問題。修復方法是修改
/etc/bumblebee/bumblebee.conf
:
- 設置
PMMethod
為none
- 設置
AlwaysUnloadKernelDriver
為true
在此之後,我能夠刪除
pci=noacpi
核心選項並且系統正確啟動,lspci
不再凍結並且我能夠將 NVidia GPU 與optirun
.