這是我在想讓Ubutnu用dual screen時所遇到的問題(Laptop主螢幕,)。
NB/Laptop: HP Pavilion 15 bc026tx
Display card: Intel HD Graphic 530(NB embedded screen) | NVidia GeForce GTX 960M(HDMI port)
OS: Ubuntu 14.04
Windows Manager: lightdm
好了,主要就是這兩個折磨人的小妖精顯卡了
內建螢幕的輸出是使用intel HD graphic 530這張卡,而HDMI輸出則是靠NVidia GTX 960M
這對Windows 10是沒甚麼問題,但是對ubuntu的lightdm(Xorg)來說就是搞死人的問題了。
因為Xorg的輸出只認一張顯卡,所以要不,全讓Intel去弄,或是全讓NVidia去弄,一人分一半好像是不成啊~~
好在,NVidia被Linux的老大Linus靠北之下,就推了一個Bumblebee(for Laptop)| Optimus(for Desktop)
這些主要是讓Desktop| Laptop可以全靠一張卡(Intel內顯或是NVidia獨顯)來處理視訊輸出。
在這過程有遇到PCI bus error的問題,所以就從這個東西先開始。
PCI error通常是你裝了NVidia顯卡的driver後(用Synaptic裝)
大概會像這樣的訊息:
0000:00:1c.5: PCIe Bus Error: severity=Corrected, type=Physical Layer, id=00e5(Receiver ID)
這個解法先從grub去解決,重點就是boot with pci=nomsi 這個參數做起
sudo cp /etc/default/grub /etc/default/grub.bak //備份grub設定
sudo vim /etc/default/grub //編輯grub設定檔
grub檔案裡面有一行
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
改成
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=nomsi"
最後一定要下
sudo update-grub
這樣grub的設定才會吃進系統
之後重開機
sudo reboot
好,開始進入重頭戲。
1. 先安裝bumblebee(用synaptic安裝bumblebee-nvidia),它會自動幫你裝其他dependency
裝完後記得把你的user id加到bumblebee的user group裡面
sudo gpasswd -a YOUR_USER_ID bumblebee
2. 使用Additional driver來確認目前Ubuntu在你機器上使用的NVidia driver的版本,像我的就是nvidia-352,一樣用synaptic去裝driver,用additional driver選你剛剛裝的driver,然後重開機
3. 沒意外筆電螢幕在進入lightdm後會一片黑(因為這時候輸出會切到HDMI),這時候就用Ctrl+ALT+F1切到terminal登入,修改
/etc/bumblebee/bumblebee.conf
改下列幾行設定(請記住,driver版本不一定是352請確認自己的版本修改)
Driver=nvidia
KernelDriver=nvidia-352
XorgModulePath=/usr/lib/nvidia-352/xorg,/usr/lib/xorg/modules
4. 修改 /etc/modprobe.d/bumblebee.conf
加入這行
blacklist nvidia-352
5. 修改/etc/bumblebee/xorg.conf.nvidia,改兩行
Option "UseEDID" "true" //本來是false
把Option "UseDisplayDevice" "none"加#號註解掉
6. 重開機
7. 進入桌面後,下指令(先確定HDMI接到外接螢幕了)
sudo intel-virtual-output(適用於HDMI主要由NVidia顯卡輸出的NB)
8. 使用xradr確認顯示裝置狀態,如果有VIRTUAL1 connected的話,沒意外就是成功了,看一下你的外接螢幕吧!
**例外處理: 要是不幸,進入lightdm登入畫面,而你NB螢幕沒畫面,外接螢幕也沒畫面,莫急莫慌莫害怕,你需要:
1. Ctrl+ALT+F1(F2 or F3)進入其他terminal介面,登入帳號
2. 移除有NVidia driver
sudo apt-get purge $(dpkg -l | awk '$2~/nvidia/ {print $2}')
3. 重開機
參考資料:
https://wiki.archlinux.org/index.php/Bumblebee
http://askubuntu.com/questions/748078/nvidia-geforce-930m-driver-and-pci-bus-error
https://wiki.ubuntu.com/Bumblebee
http://askubuntu.com/questions/452556/how-to-set-up-nvidia-optimus-bumblebee-in-14-04
NB/Laptop: HP Pavilion 15 bc026tx
Display card: Intel HD Graphic 530(NB embedded screen) | NVidia GeForce GTX 960M(HDMI port)
OS: Ubuntu 14.04
Windows Manager: lightdm
好了,主要就是這兩個折磨人的小妖精顯卡了
內建螢幕的輸出是使用intel HD graphic 530這張卡,而HDMI輸出則是靠NVidia GTX 960M
這對Windows 10是沒甚麼問題,但是對ubuntu的lightdm(Xorg)來說就是搞死人的問題了。
因為Xorg的輸出只認一張顯卡,所以要不,全讓Intel去弄,或是全讓NVidia去弄,一人分一半好像是不成啊~~
好在,NVidia被Linux的老大Linus靠北之下,就推了一個Bumblebee(for Laptop)| Optimus(for Desktop)
這些主要是讓Desktop| Laptop可以全靠一張卡(Intel內顯或是NVidia獨顯)來處理視訊輸出。
在這過程有遇到PCI bus error的問題,所以就從這個東西先開始。
PCI error通常是你裝了NVidia顯卡的driver後(用Synaptic裝)
大概會像這樣的訊息:
0000:00:1c.5: PCIe Bus Error: severity=Corrected, type=Physical Layer, id=00e5(Receiver ID)
這個解法先從grub去解決,重點就是boot with pci=nomsi 這個參數做起
sudo cp /etc/default/grub /etc/default/grub.bak //備份grub設定
sudo vim /etc/default/grub //編輯grub設定檔
grub檔案裡面有一行
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
改成
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=nomsi"
最後一定要下
sudo update-grub
這樣grub的設定才會吃進系統
之後重開機
sudo reboot
好,開始進入重頭戲。
1. 先安裝bumblebee(用synaptic安裝bumblebee-nvidia),它會自動幫你裝其他dependency
裝完後記得把你的user id加到bumblebee的user group裡面
sudo gpasswd -a YOUR_USER_ID bumblebee
2. 使用Additional driver來確認目前Ubuntu在你機器上使用的NVidia driver的版本,像我的就是nvidia-352,一樣用synaptic去裝driver,用additional driver選你剛剛裝的driver,然後重開機
3. 沒意外筆電螢幕在進入lightdm後會一片黑(因為這時候輸出會切到HDMI),這時候就用Ctrl+ALT+F1切到terminal登入,修改
/etc/bumblebee/bumblebee.conf
改下列幾行設定(請記住,driver版本不一定是352請確認自己的版本修改)
Driver=nvidia
KernelDriver=nvidia-352
XorgModulePath=/usr/lib/nvidia-352/xorg,/usr/lib/xorg/modules
4. 修改 /etc/modprobe.d/bumblebee.conf
加入這行
blacklist nvidia-352
5. 修改/etc/bumblebee/xorg.conf.nvidia,改兩行
Option "UseEDID" "true" //本來是false
把Option "UseDisplayDevice" "none"加#號註解掉
6. 重開機
7. 進入桌面後,下指令(先確定HDMI接到外接螢幕了)
sudo intel-virtual-output(適用於HDMI主要由NVidia顯卡輸出的NB)
8. 使用xradr確認顯示裝置狀態,如果有VIRTUAL1 connected的話,沒意外就是成功了,看一下你的外接螢幕吧!
**例外處理: 要是不幸,進入lightdm登入畫面,而你NB螢幕沒畫面,外接螢幕也沒畫面,莫急莫慌莫害怕,你需要:
1. Ctrl+ALT+F1(F2 or F3)進入其他terminal介面,登入帳號
2. 移除有NVidia driver
sudo apt-get purge $(dpkg -l | awk '$2~/nvidia/ {print $2}')
3. 重開機
參考資料:
https://wiki.archlinux.org/index.php/Bumblebee
http://askubuntu.com/questions/748078/nvidia-geforce-930m-driver-and-pci-bus-error
https://wiki.ubuntu.com/Bumblebee
http://askubuntu.com/questions/452556/how-to-set-up-nvidia-optimus-bumblebee-in-14-04
留言