在深度上看視頻或瀏覽網頁的時候顯示總是有點問題,特別讓我這個強迫癥患者受不鳥的就是會出現撕裂的現象。(現在無法重現,有機會再上錄屏)。我覺得可能是核顯的問題(系統默認使用核顯,但我的pc是有獨顯的)于是。。。。。。。
開始作死
在驅動管理器安裝獨顯的驅動,嗯~成功安裝。然后忘了當時是咋想的,在圖形界面重啟了一下lightdm(顯示管理器),后果就是瞬間黑屏,我強行重啟,然而進不了登錄界面(deepin-greeter)了。一系列的自我折騰后,成功登錄桌面,繼續折騰獨顯!這里我就直接引用深度論壇里的帖子了。
## Deepin 15.4 筆記本安裝顯卡驅動(I卡+N卡)
linux下有兩種N+I雙卡的方案,一個是ubuntu下的nvidia-prime,另一個就是debian下的bumblebee。目前deepin基于debian,而debian只打包了第三種bumblebee,所以只能用后者。
ubuntu的nvidia-prime如果要切換顯卡,必須要重啟X session,因為在X啟動的時候nvidia的驅動模塊就已經加載了,也就是說獨顯是一直在工作的。而debian采用bumblebee,開機加載的是intel的驅動,程序默認也都是用intel的集顯,如果需要用獨顯要用optirun運行程序,這樣能做到最大程度的提高電池續航能力。目前debian的nvidia-driver,nvidia-legacy-driver都是默認bumblebee解決雙顯卡,X啟動時,驅動是intel,glx是mesa的glx,但是有些硬件可能會出現驅動是intel,glx卻是nvidia的情況,這就會導致opengl的程序跑不起來,需要手動執行sudo update-alternatives --config glx來選擇。
兩種實現其實各有利弊,debian當前也沒有打包prime的打算打包方式不同,debian這邊沒有打包適配prime的驅動,加prime支持要改東西太多,所以就只用大黃蜂了。
* 刪除以往所有安裝的驅動/大黃蜂
```
sudo apt remove --purge nvidia*
sudo apt remove --purge bumblebee*
```
* 打開驅動管理器,點擊驅動進行安裝
* 再確保安裝一些相關軟件
```
sudo apt-get install bumblebee-nvidia bumblebee primus
sudo apt-get install nvidia-driver nvidia-settings
```
* 檢查驅動是否安裝成功,安裝mesa-utils這個包,用來顯示系統的glx相關信息。用optirun調用獨顯輸出系統的glxinfo來查看驅動是否安裝成功。
```
sudo apt-get install mesa-utils
optirun glxinfo|grep NVIDIA
```
* 使用獨顯啟動程序
```
optirun command #使用獨顯運行command程序
primusrun command #另外一種使用獨顯運行程序方法
optirun -b primus command #使用獨顯運行command程序,提升性能
```
* 可以安裝 nvidia-smi,sudo nvidia-smi執行之,可以看到驅動已經安裝,設備正常運轉
* 測試 Bumblebee 是否支持你的 Optimus 系統:如果在終端中看到一個關于你的 Nvidia 的提示和齒輪,恭喜你,Bumblebee 和 Optimus 已經開始工作了。
```
optirun glxgears -info
```
* 執行 sudo lspci -v 可以查看到詳細信息
* 在使用optirun命令開啟獨顯前,可以使用lspci命令查看設備,可以看到獨顯最后的信息為(rev ff).ff代表設備關閉
使用optirun命令后,再次lspci,可以看到獨顯最后的信息為(rev a2),這代表獨顯已經正常使用了
* bumblebee配置下所有需要獨顯的操作都需要調用optirun或者primusrun.如果打開nvidia-settings時提示“You do not appear to be using the NVIDIA X driver”,在terminal中運行如下命令
```
optirun -b none nvidia-settings -c :8
```
這里解釋一下上述命令.man optirun可以看到如下關于-b的信息
```
-b, --bridge METHOD
acceleration/displaying??bridge to use. Valid values are auto, virtualgl and primus. The --vgl-* options only make sense
when using the virtualgl bridge, while the --primus-* options apply only when using the??primus??bridge.? ?Additionally,
value??none is recognized, and its effect is to add paths to driver libraries to LD_LIBRARY_PATH (useful for nvidia-set‐
tings and CUDA applications)
```
man nvidia-settings可以看到如下信息
```
-c CTRL-DISPLAY, --ctrl-display=CTRL-DISPLAY
Control the specified X display.??If this option is not given, then nvidia-settings will control the display specified by '--dis‐
play' ; if that is not given, then the $DISPLAY environment variable is used.
```
由此可見-c后面跟的:8是屏幕顯示的代碼。查看bumblebee文件
```
sudo gedit /etc/bumblebee/bumblebee.conf
```
可以發現如下一段,由此可以解釋上述命令了。
```
[bumblebeed]
# The secondary Xorg server DISPLAY number
VirtualDisplay=:8
```
* 在steam中使用獨顯來運行游戲,在游戲上右鍵,set launch options中加入
```
optirun -b primus %command%
```
* 開機黑屏拯救方法
```
sudo apt remove --purge nvidia*??//適用于安裝了不正確的閉源驅動
sudo rm /etc/X11/xorg.conf??//適用于生成了不正確的xorg.conf文件
sudo apt install xorg??//適用于刪除nvidia時誤刪了xorg
我按著上面的教程做……重啟可以顯示登錄界面但無法輸入密碼又是什么情況T-T試著sudo apt install xorg,誒!成功登錄!果然是刪除nvidia時誤刪了xorg。
然后optirun glxinfo|grepNVIDIA,嗯驅動安裝成功,optirun glxgears -info,顯示小齒輪動畫,可以愉快地使用optirun命令調用獨顯運行程序了,感覺顯示效果好了不少 ;)
*TIPS*
有時因為界面跳的太快進不了tty的時候,可以開機選擇“Advanced options for *****”這一行按回車,然后選中最后是“(recovery mode)”這一行按“E”進入編輯頁面,把ro改成rw,按F10,然后進入root shell。
不知是不是我個人的問題,如果待機后再登錄就無法使用optirun來切換獨顯了,重啟之后又可以,奇怪
相關鏈接
安裝驅動教程 ,關于bumblebee ,deepin的構架設計
最重要的東西當然要放在最后
感謝在深度論壇以及深度百科上默默奉獻的everybody:)