====== nVidia + Linux X Window 雙螢幕(延伸桌面) ====== 常見的雙螢幕使用方式有三種 - dual screen:所有螢幕顯示同樣的內容,也就是 Windows 上稱的「鏡像模式」。 - Separate X screen:個別螢幕使用不同解析度,即為「延伸桌面」。 - TwinView:所有螢幕合成一個大解析度的畫面,空間不足的部份滑鼠移過去時畫面會捲動,有用過 vncviewer 的全螢幕模式瀏覽大解析度桌面的人應該不陌生。 ===== nVidia Driver on Debian ===== 下載最新的 nVidia for Linux 官方驅動程式:http://www.nvidia.com/object/unix.html 會有一個 NVIDIA-Linux-*-pkg1.run 檔案。接著在 cosole 中直接執行: sh [path_to]/NVIDIA-Linux-*-pkg1.run 過程會問很多問題,沒特殊需求的話一直下一步或 YES 就可以了。 裝好後 /etc/X11/xorg.conf 檔案中應該會有類似的設定值: Section "Device" ... Driver "nvidia" ... EndSection 啟動 X Window 的時候如果有出現 nVidia 的 Logo 就是安裝成功了! ===== nvidia-setting ===== 成功安裝 nVidia 驅動後,「應用程式」→「系統工具」中應該會有「NVIDIA X Server Settings」,打開後就可以用 GUI 設定顯示的模式(一開始視窗很小,要自己拉大),終於不用自己手動刻 xorg.conf 了! 要設定雙螢幕,主要會用到「X Server Display Configuration」這個標籤裡面的功能,Linux 應該可以正常偵測到所使用的螢幕名稱以及解析度,Layout 上面應該會出現所有已經接上的螢幕,每設定一次就可以按下「Apply」鈕套用設定值,但是不適合需要重新啟動 X Window 才會生效的設定。 先勾選「Enable Xinerama」。參考:http://en.wikipedia.org/wiki/Xinerama Model 中切換要設定的螢幕,或者在 Layout 上面選擇要設定的螢幕。 Configuration 指螢幕要用哪種運作模式,Disable 是不使用,Separate X screen 及 TwinView 一開始有提到。 Resolution 是設定各個螢幕的解析度,如果 Auto 的結果不是想要的,可以自己改。 「Advanced...」 按鈕點開後還有一些進階設定值可以改。 「X Screen」標籤內可以設定 Color Depth(現在的螢幕應該都支援 Depth 24 以上)以及螢幕的位置,這部份可以直接拉上面的 Layout 的螢幕,直接拉成想要的位置。Screen Number 是螢幕代號,在 GDM 登入畫面,輸入帳號密碼的對話框會出現在編號 0 的螢幕。如果要修改編號,要先把其他螢幕 Disable 掉,然後再依序啟用,不能直接改編號。 ===== 匯出 xorg.conf ===== 最後按「Save to X Configuration File」匯出設定檔,如果不是使用 super user 執行 nvidia-settings 的話,會無法直接把設定值寫入 /etc/X11/xorg.conf,可以先在別的地方(如桌面)存好設定檔,再 sudo 搬過去。 重新啟動 X Window 應該就可以看到新的設定了!左邊放 Gnome,右邊放 VMware Player 下的 Windows。:-D {{:linux:img_0764_mod.jpg?640x480|}} ===== xorg.conf ===== 參考用,直接抄去用應該是不會 work。畢竟是程式產生的設定檔,有些地方可以更簡潔。而且我找不到他把解析度寫哪去了... Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" 0 0 Screen 1 "Screen1" 1680 26 InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" EndSection Section "ServerFlags" Option "Xinerama" "1" EndSection Section "Monitor" # HorizSync source: edid, VertRefresh source: edid Identifier "Monitor0" VendorName "Unknown" ModelName "DELL 2208WFP" HorizSync 30.0 - 83.0 VertRefresh 56.0 - 76.0 Option "DPMS" EndSection Section "Monitor" Identifier "Monitor1" VendorName "Unknown" ModelName "BenQ FP737s-D" HorizSync 31.0 - 83.0 VertRefresh 56.0 - 76.0 EndSection Section "Device" Identifier "Videocard0" Option "NoLogo" "True" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce 6600" BusID "PCI:1:0:0" Screen 0 EndSection Section "Device" Identifier "Videocard1" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce 6600" BusID "PCI:1:0:0" Screen 1 EndSection Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 24 Option "TwinView" "0" Option "TwinViewXineramaInfoOrder" "DFP-0" Option "metamodes" "DFP: nvidia-auto-select +0+0" SubSection "Display" Depth 24 EndSubSection EndSection Section "Screen" Identifier "Screen1" Device "Videocard1" Monitor "Monitor1" DefaultDepth 24 Option "TwinView" "0" Option "TwinViewXineramaInfoOrder" "CRT-0" Option "metamodes" "CRT: nvidia-auto-select +0+0" EndSection ===== Rotating the screen in Xorg/Nvidia ===== http://nkour.wordpress.com/2006/12/13/rotating-the-screen-in-xorgnvidia/ cat /etc/X11/xorg.conf | grep Rand -B 5 -A 5 Section "Device" Identifier "nvidia" Driver "nvidia" Option "NoLogo" "true" # AVOID LOGO [nvidia == idiots on this one] Option "DPMS" "true" # well, good to have.. google it Option "RandRRotation" "true" # for rotate to work !EndSection restart Xorg, then do: xrandr -o left ===== 參考資料 ===== ==== Envy ==== http://albertomilone.com/nvidia_scripts1.html 如果是用 Ubuntu 的人可以用用看 Envy 這個程式,先下載包好的程式,用 dpkg -i 安裝好後,Debian 把套件庫的 contrib 打開,然後使用 apt-get 或 aptitude 把相依性補齊,「應用程式」→「系統工具」中應該會有「Envy」,開啟後就可以自動幫你安裝 nVidia 或 ATI 顯示卡的驅動程式了! 但是我執行的時候他出現: Envy - Version 0.9.10 ENVY ERROR: Your Operating System does not seem to be supported by Envy 看起來這套件比較喜歡 Ubuntu,對於新版的 Debian(我目前用 testing)就不支援了...... ==== Microsoft Windows 的雙螢幕 ==== http://www.microsoft.com/taiwan/atwork/stayconnected/multiplemonitors.mspx ==== 其他人 ==== http://julian14632.wordpress.com/2007/12/30/ 裡面提到的 TwinView 和 Seperate X screen 跟我測試的結果不一樣,我的 Seperate X screen 視窗是可以在兩個螢幕間移動的,我印象中也是不行,但是測試的結果竟然可以,應該是 Xinerama 的效果吧! http://cha.homeip.net/blog/archives/2008/02/xinerama.html ===== 過時的資料 ===== 曾經是用很複雜的方式慢慢刻設定檔... ==== NVIDIA Accelerated Linux Driver Set README and Installation Guide ==== http://us.download.nvidia.com/XFree86/Linux-x86/1.0-9755/README/index.html I. Installation Instructions 3. Configuring X for the NVIDIA Driver Editing the configuration file by hand III. Appendices G. Configuring TwinView P. Configuring Multiple X Screens on One Card ==== Ubuntu Dual Monitors TwinView HowTo ==== http://www.ublug.org/ubuntu/twinview/twinview-howto-breezy.html ==== nVidia TwinView ==== http://ubuntuforums.org/showthread.php?p=1773584 ==== HOWTO Dual Monitors ==== http://gentoo-wiki.com/HOWTO_Dual_Monitors ==== HOWTO nVidia TwinView ==== http://gentoo-wiki.com/HOWTO_nVidia_TwinView ==== xorg.conf ==== MetaModes 為兩個螢幕的解析度,可以有多組設定值。 Option "MetaModes" ", ; , " Option "MetaModes" "1024x768, 1280x1024" 若後面再接一個小老鼠的桌面解析度「Panning Domain」,當 Panning Domain 大於螢幕解析度時仍可正常顯示,空間不足無法顯示的部份,當滑鼠移動過去時,視窗會跟著移動。 Option "MetaModes" "1024x768 @1024x1024, 1280x1024" # 第一個螢幕的桌面解析度為 1024x1024 Section "Device" Option "NoLogo" "True" Identifier "NVIDIA Corporation NV36.2 [GeForce FX 5700]" Driver "nvidia" BusID "AGP:1:0:0" Option "ConnectedMonitor" "DFP-0, CRT-0" # 想要使用哪些輸出 Option "TwinView" "true" Option "TwinViewXineramaInfoOrder" "DFP-0" # 以哪個輸出為主(工具列所在) Option "MetaModes" "1024x768 @1024x1024, 1280x1024" Option "TwinViewOrientation" "CRT-0 LeftOf DFP-0" # 螢幕的相對位置 Option "SecondMonitorHorizSync" "28.0 - 64.0" Option "SecondMonitorVertRefresh" "43.0 - 60.0" EndSection Section "Screen" Identifier "Default Screen" Device "NVIDIA Corporation NV36.2 [GeForce FX 5700]" Monitor "Generic Monitor" DefaultDepth 24 Option "UseDisplayDevice" "DFP-0, CRT-0" Option "UseEdidFreqs" "True" SubSection "Display" Depth 24 Modes "1280x1024" EndSubSection EndSection ==== Clone Monitor ==== Section "Device" Identifier "Generic Video Card" Driver "nvidia" Option "UseEdidFreqs" "true" Option "RenderAccel" "false" Option "TwinView" Option "NoTwinViewXineramaInfo" "true" Option "MetaModes" "1280x1024,1280x1024" Option "TwinViewOrientation" "Clone" Option "ConnectedMonitor" "DFP,CRT" EndSection ==== IBM X60 ==== 外接螢幕或投影機 Section “Device” Identifier “Intel Corporation 82852/855GM Integrated Graphics Device” Driver “i810″ Option “MonitorLayout” “CRT,LFP” Option “Clone” “true” BusID “PCI:0:2:0″ EndSection ====== 新增字型 ====== 將字型檔放在 /usr/share/fonts/turetype 然後執行 # fc-cache -v -f ===== 更換桌面字型 ===== http://www.openfoundry.org/index.php?option=com_content&task=view&id=1949&Itemid=144