如何讓 Debian Jessie 使用 nvidia 專有驅動程序?
我按照Debian wiki中的說明通過反向移植在 Debian Jessie 上安裝了 nvidia 專有圖形驅動程序。不幸的是,儘管我盡了最大的努力,X 伺服器還是不會使用新的驅動程序。
正確建構和安裝的核心模組:
$ sudo lsmod | grep nvidia nvidia 8487526 0 drm 249955 5 i915,drm_kms_helper,nvidia i2c_core 46012 12 drm,i915,i2c_i801,snd_soc_rt5640,i2c_hid,i2c_designware_platform,regmap_i2c,drm_kms_helper,i2c_algo_bit,nvidia,v4l2_common,videodev
沒有 xorg.conf 文件,X 工作正常但不使用 nvidia 驅動程序;
nvidia-settings
報告說我“似乎沒有使用 NVIDIA X 驅動程序”。Xorg.log.0:http ://pastebin.com/3Anr3FWU (這是正確的方式嗎?我希望如此)
使用以下 xorg.conf:
# nvidia-xconfig: X configuration file generated by nvidia-xconfig # nvidia-xconfig: version 340.46 (buildd@brahms) Tue Oct 7 08:00:32 UTC 2014 Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" EndSection Section "Files" EndSection Section "InputDevice" # generated from default Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/psaux" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" # generated from default Identifier "Keyboard0" Driver "kbd" EndSection Section "Monitor" Identifier "Monitor0" VendorName "Unknown" ModelName "Unknown" HorizSync 28.0 - 33.0 VertRefresh 43.0 - 72.0 Option "DPMS" EndSection Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" EndSection Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection
(引用的版本低於我對 wiki 的預期,352.79 vs 340.46,但可能什麼都沒有),X 伺服器根本沒有啟動(我得到一個帶有閃爍游標的黑屏,但 tty1-6 可用) . 如果我刪掉除“設備”部分之外的所有內容,結果相同。
Xorg.log.0:http ://pastebin.com/cYLSYiUV
這是具有 nvidia 940M 專用顯卡(和 intel 板載 gfx)的 MSI 筆記型電腦。
$ lspci | egrep -i "vga|nvidia" 00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06) 01:00.0 3D controller: NVIDIA Corporation Device 1347 (rev a2)
那麼:如何讓 X 啟動並使用 nvidia 驅動程序?
似乎工作!謝謝@cas(見問題評論)。我安裝了 bumblebee (來自 backports,因為這是我安裝 nvidia-driver 和從屬的地方,根據wiki):
$ sudo aptitude install -t jessie-backports bumblebee bumblebee-nvidia
並重新啟動以確保一切正常(您可能甚至不需要重新啟動 X 伺服器,但我覺得很慈善)。請注意,如果您尚未安裝 nvidia 驅動程序,我相信這也會拉進來嗎?我還沒有測試過。相反,它可能會拉入新潮。如果您在跑步時在
primusrun glxinfo
任何地方都看不到“nvidia”,這可能就是發生了什麼事;在這種情況下,大概您可以按照 wiki 安裝 debian,它應該可以工作(您需要重新啟動以確定,因為它安裝了一個新的核心模組)。然後用
glxinfo
andglxgears
來測試。$ glxinfo | grep OpenGL OpenGL vendor string: Intel Open Source Technology Center OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.3.2 OpenGL core profile shading language version string: 3.30 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: OpenGL version string: 3.0 Mesa 10.3.2 OpenGL shading language version string: 1.30 OpenGL context flags: (none) OpenGL extensions: OpenGL ES profile version string: OpenGL ES 3.0 Mesa 10.3.2 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.0 OpenGL ES profile extensions:
請注意,執行 glxinfo 裸機使用集成的英特爾顯卡(我認為 mesa 曾經是指軟體 opengl?我現在不知道它是什麼意思。但很明顯它沒有使用獨立卡)。
$ primusrun glxinfo | grep OpenGL OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce 940M/PCIe/SSE2 OpenGL core profile version string: 4.4.0 NVIDIA 352.79 OpenGL core profile shading language version string: 4.40 NVIDIA via Cg compiler OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: OpenGL version string: 4.5.0 NVIDIA 352.79 OpenGL shading language version string: 4.50 NVIDIA OpenGL context flags: (none) OpenGL profile mask: (none) OpenGL extensions:
成功!